mirror of
https://github.com/bitwarden/browser
synced 2025-12-06 00:13:28 +00:00
* EC-265 - Initial stubs for SCIM config UI * EC-265 - Scim config screen and plumbing * EC-265 - Scim config component works! Needs cleanup * EC-265 - Finalize scim config screen * EC-265 - Remove scim url from storage and env urls * EC-265 - Refactor to use new component library * EC-265 - Angular warnings on disabled attr resolved * EC-265 - Continued transition to new components * EC-265 - Page loading spinner pattern * EC-265 - final SCIM configuration form changes * scim cleanup * use scim urls * suggested changes * feedback fixes * remove return * Move scimUrl logic to EnvironmentService * Refactor scim url handling Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com> Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { Permissions } from "@bitwarden/common/enums/permissions";
|
|
import { Organization } from "@bitwarden/common/models/domain/organization";
|
|
|
|
const permissions = {
|
|
manage: [
|
|
Permissions.CreateNewCollections,
|
|
Permissions.EditAnyCollection,
|
|
Permissions.DeleteAnyCollection,
|
|
Permissions.EditAssignedCollections,
|
|
Permissions.DeleteAssignedCollections,
|
|
Permissions.AccessEventLogs,
|
|
Permissions.ManageGroups,
|
|
Permissions.ManageUsers,
|
|
Permissions.ManagePolicies,
|
|
Permissions.ManageSso,
|
|
Permissions.ManageScim,
|
|
],
|
|
tools: [Permissions.AccessImportExport, Permissions.AccessReports],
|
|
settings: [Permissions.ManageOrganization],
|
|
};
|
|
|
|
export class NavigationPermissionsService {
|
|
static getPermissions(route: keyof typeof permissions | "admin") {
|
|
if (route === "admin") {
|
|
return Object.values(permissions).reduce((previous, current) => previous.concat(current), []);
|
|
}
|
|
|
|
return permissions[route];
|
|
}
|
|
|
|
static canAccessAdmin(organization: Organization): boolean {
|
|
return (
|
|
this.canAccessTools(organization) ||
|
|
this.canAccessSettings(organization) ||
|
|
this.canAccessManage(organization)
|
|
);
|
|
}
|
|
|
|
static canAccessTools(organization: Organization): boolean {
|
|
return organization.hasAnyPermission(NavigationPermissionsService.getPermissions("tools"));
|
|
}
|
|
|
|
static canAccessSettings(organization: Organization): boolean {
|
|
return organization.hasAnyPermission(NavigationPermissionsService.getPermissions("settings"));
|
|
}
|
|
|
|
static canAccessManage(organization: Organization): boolean {
|
|
return organization.hasAnyPermission(NavigationPermissionsService.getPermissions("manage"));
|
|
}
|
|
}
|