Skip to content

Commit 25072d3

Browse files
committed
Hide settings nodes when a user has insufficient permissions
1 parent c8dc28b commit 25072d3

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

src/treeViews/settings/environmentNode.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import * as vscode from "vscode";
22
import {GitHubRepoContext} from "../../git/repository";
3+
import {hasAdminPermission} from "../../git/repository-permissions";
34
import {Environment} from "../../model";
45
import {EnvironmentSecretsNode} from "./environmentSecretsNode";
56
import {EnvironmentVariablesNode} from "./environmentVariablesNode";
67
import {SettingsExplorerNode} from "./types";
78

89
export class EnvironmentNode extends vscode.TreeItem {
910
constructor(public readonly gitHubRepoContext: GitHubRepoContext, public readonly environment: Environment) {
10-
super(environment.name, vscode.TreeItemCollapsibleState.Collapsed);
11+
const state = hasAdminPermission(gitHubRepoContext.permissionLevel)
12+
? vscode.TreeItemCollapsibleState.Collapsed
13+
: vscode.TreeItemCollapsibleState.None;
14+
super(environment.name, state);
1115

1216
this.contextValue = "environment";
1317
}

src/treeViews/settings/settingsRepoNode.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import * as vscode from "vscode";
22

33
import {EnvironmentsNode} from "./environmentsNode";
44
import {GitHubRepoContext} from "../../git/repository";
5+
import {hasWritePermission} from "../../git/repository-permissions";
56
import {SecretsNode} from "./secretsNode";
67
import {SettingsExplorerNode} from "./types";
78
import {VariablesNode} from "./variablesNode";
@@ -22,8 +23,11 @@ export function getSettingNodes(gitHubContext: GitHubRepoContext): SettingsExplo
2223
const nodes: SettingsExplorerNode[] = [];
2324

2425
nodes.push(new EnvironmentsNode(gitHubContext));
25-
nodes.push(new SecretsNode(gitHubContext));
26-
nodes.push(new VariablesNode(gitHubContext));
26+
27+
if (hasWritePermission(gitHubContext.permissionLevel)) {
28+
nodes.push(new SecretsNode(gitHubContext));
29+
nodes.push(new VariablesNode(gitHubContext));
30+
}
2731

2832
return nodes;
2933
}

0 commit comments

Comments
 (0)