Skip to content

Commit 2ab9b97

Browse files
geroplroboquat
authored andcommitted
[server] Minor Refactor for RepositoryResourceGuard
1 parent 67b73c2 commit 2ab9b97

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

components/server/src/auth/resource-access.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -463,16 +463,26 @@ export class RepositoryResourceGuard implements ResourceAccessGuard {
463463
constructor(protected readonly user: User, protected readonly hostContextProvider: HostContextProvider) {}
464464

465465
async canAccess(resource: GuardedResource, operation: ResourceAccessOp): Promise<boolean> {
466-
if (resource.kind !== "workspaceLog" && resource.kind !== "snapshot") {
467-
return false;
468-
}
469-
// only get operations are supported
466+
// Only get operations are supported
470467
if (operation !== "get") {
471468
return false;
472469
}
473470

471+
// Get Workspace from GuardedResource
472+
let workspace: Workspace;
473+
switch (resource.kind) {
474+
case "workspaceLog":
475+
workspace = resource.subject;
476+
break;
477+
case "snapshot":
478+
workspace = resource.workspace;
479+
break;
480+
default:
481+
// We do not handle resource kinds here!
482+
return false;
483+
}
484+
474485
// Check if user has at least read access to the repository
475-
const workspace = resource.kind === "snapshot" ? resource.workspace : resource.subject;
476486
const repos: Repository[] = [];
477487
if (CommitContext.is(workspace.context)) {
478488
repos.push(workspace.context.repository);

0 commit comments

Comments
 (0)