mirror of
https://github.com/bitwarden/browser.git
synced 2024-09-27 04:03:00 +02:00
28de9439be
* [deps] Autofill: Update prettier to v3 * prettier formatting updates --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jonathan Prusik <jprusik@classynemesis.com>
106 lines
3.2 KiB
TypeScript
106 lines
3.2 KiB
TypeScript
import { NgModule } from "@angular/core";
|
|
import { RouterModule, Routes } from "@angular/router";
|
|
|
|
import { AuthGuard } from "@bitwarden/angular/auth/guards";
|
|
import {
|
|
canAccessOrgAdmin,
|
|
canAccessGroupsTab,
|
|
canAccessMembersTab,
|
|
canAccessVaultTab,
|
|
canAccessReportingTab,
|
|
canAccessSettingsTab,
|
|
} from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
|
|
|
import { OrganizationPermissionsGuard } from "../../admin-console/organizations/guards/org-permissions.guard";
|
|
import { OrganizationRedirectGuard } from "../../admin-console/organizations/guards/org-redirect.guard";
|
|
import { OrganizationLayoutComponent } from "../../admin-console/organizations/layouts/organization-layout.component";
|
|
import { GroupsComponent } from "../../admin-console/organizations/manage/groups.component";
|
|
import { deepLinkGuard } from "../../auth/guards/deep-link.guard";
|
|
import { VaultModule } from "../../vault/org-vault/vault.module";
|
|
|
|
const routes: Routes = [
|
|
{
|
|
path: ":organizationId",
|
|
component: OrganizationLayoutComponent,
|
|
canActivate: [deepLinkGuard(), AuthGuard, OrganizationPermissionsGuard],
|
|
data: {
|
|
organizationPermissions: canAccessOrgAdmin,
|
|
},
|
|
children: [
|
|
{
|
|
path: "",
|
|
pathMatch: "full",
|
|
canActivate: [OrganizationRedirectGuard],
|
|
data: {
|
|
autoRedirectCallback: getOrganizationRoute,
|
|
},
|
|
children: [], // This is required to make the auto redirect work, },
|
|
},
|
|
{
|
|
path: "vault",
|
|
loadChildren: () => VaultModule,
|
|
},
|
|
{
|
|
path: "settings",
|
|
loadChildren: () =>
|
|
import("./settings/organization-settings.module").then(
|
|
(m) => m.OrganizationSettingsModule,
|
|
),
|
|
},
|
|
{
|
|
path: "members",
|
|
loadChildren: () => import("./members").then((m) => m.MembersModule),
|
|
},
|
|
{
|
|
path: "groups",
|
|
component: GroupsComponent,
|
|
canActivate: [OrganizationPermissionsGuard],
|
|
data: {
|
|
titleId: "groups",
|
|
organizationPermissions: canAccessGroupsTab,
|
|
},
|
|
},
|
|
{
|
|
path: "reporting",
|
|
loadChildren: () =>
|
|
import("../organizations/reporting/organization-reporting.module").then(
|
|
(m) => m.OrganizationReportingModule,
|
|
),
|
|
},
|
|
{
|
|
path: "billing",
|
|
loadChildren: () =>
|
|
import("../../billing/organizations/organization-billing.module").then(
|
|
(m) => m.OrganizationBillingModule,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
];
|
|
|
|
function getOrganizationRoute(organization: Organization): string {
|
|
if (canAccessVaultTab(organization)) {
|
|
return "vault";
|
|
}
|
|
if (canAccessMembersTab(organization)) {
|
|
return "members";
|
|
}
|
|
if (canAccessGroupsTab(organization)) {
|
|
return "groups";
|
|
}
|
|
if (canAccessReportingTab(organization)) {
|
|
return "reporting";
|
|
}
|
|
if (canAccessSettingsTab(organization)) {
|
|
return "settings";
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
@NgModule({
|
|
imports: [RouterModule.forChild(routes)],
|
|
exports: [RouterModule],
|
|
})
|
|
export class OrganizationsRoutingModule {}
|