Make DeviceApprovalsComponent standalone

This commit is contained in:
Rui Tome 2024-05-03 12:13:37 +01:00
parent b4365c74ea
commit 3f3b178f9c
No known key found for this signature in database
GPG Key ID: 526239D96A8EC066
3 changed files with 52 additions and 41 deletions

View File

@ -2,18 +2,57 @@ import { Component, OnDestroy, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
import { BehaviorSubject, Subject, switchMap, takeUntil, tap } from "rxjs";
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
import { LOGOUT_CALLBACK } from "@bitwarden/angular/services/injection-tokens";
import { OrganizationAuthRequestApiService } from "@bitwarden/bit-common/admin-console/auth-requests/organization-auth-request-api.service";
import { OrganizationAuthRequestService } from "@bitwarden/bit-common/admin-console/auth-requests/organization-auth-request.service";
import { PendingAuthRequestView } from "@bitwarden/bit-common/admin-console/auth-requests/pending-auth-request.view";
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
import { TokenService } from "@bitwarden/common/auth/abstractions/token.service";
import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
import { ValidationService } from "@bitwarden/common/platform/abstractions/validation.service";
import { TableDataSource } from "@bitwarden/components";
import { ApiService } from "@bitwarden/common/services/api.service";
import { TableDataSource, NoItemsModule } from "@bitwarden/components";
import { Devices } from "@bitwarden/web-vault/app/admin-console/icons";
import { LooseComponentsModule } from "@bitwarden/web-vault/app/shared";
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
import { OrganizationsRoutingModule } from "../../organizations-routing.module";
const safeProviders: SafeProvider[] = [
safeProvider({
provide: ApiService,
deps: [
TokenService,
PlatformUtilsService,
EnvironmentService,
AppIdService,
StateService,
LOGOUT_CALLBACK,
],
}),
safeProvider({
provide: OrganizationAuthRequestApiService,
deps: [ApiService],
}),
safeProvider({
provide: OrganizationAuthRequestService,
deps: [OrganizationAuthRequestApiService, CryptoService, OrganizationUserService],
}),
];
@Component({
selector: "app-org-device-approvals",
templateUrl: "./device-approvals.component.html",
standalone: true,
providers: safeProviders,
imports: [SharedModule, OrganizationsRoutingModule, NoItemsModule, LooseComponentsModule],
})
export class DeviceApprovalsComponent implements OnInit, OnDestroy {
tableDataSource = new TableDataSource<PendingAuthRequestView>();

View File

@ -9,7 +9,6 @@ import { OrganizationLayoutComponent } from "@bitwarden/web-vault/app/admin-cons
import { SsoComponent } from "../../auth/sso/sso.component";
import { DeviceApprovalsComponent } from "./manage/device-approvals/device-approvals.component";
import { DomainVerificationComponent } from "./manage/domain-verification/domain-verification.component";
import { ScimComponent } from "./manage/scim.component";
@ -55,7 +54,10 @@ const routes: Routes = [
},
{
path: "device-approvals",
component: DeviceApprovalsComponent,
loadComponent: () =>
import("./manage/device-approvals/device-approvals.component").then(
(mod) => mod.DeviceApprovalsComponent,
),
canActivate: [OrganizationPermissionsGuard],
data: {
organizationPermissions: (org: Organization) => org.canManageDeviceApprovals,

View File

@ -1,60 +1,30 @@
import { NgModule } from "@angular/core";
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
import { LOGOUT_CALLBACK } from "@bitwarden/angular/services/injection-tokens";
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
import { TokenService } from "@bitwarden/common/auth/abstractions/token.service";
import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service";
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
import { ApiService } from "@bitwarden/common/services/api.service";
import { NoItemsModule } from "@bitwarden/components";
import { CoreOrganizationModule } from "@bitwarden/web-vault/app/admin-console/organizations/core";
import { LooseComponentsModule } from "@bitwarden/web-vault/app/shared";
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
import { OrganizationAuthRequestApiService } from "../../../../../bit-common/src/admin-console/auth-requests/organization-auth-request-api.service";
import { OrganizationAuthRequestService } from "../../../../../bit-common/src/admin-console/auth-requests/organization-auth-request.service";
import { SsoComponent } from "../../auth/sso/sso.component";
import { DeviceApprovalsComponent } from "./manage/device-approvals/device-approvals.component";
import { DomainAddEditDialogComponent } from "./manage/domain-verification/domain-add-edit-dialog/domain-add-edit-dialog.component";
import { DomainVerificationComponent } from "./manage/domain-verification/domain-verification.component";
import { ScimComponent } from "./manage/scim.component";
import { OrganizationsRoutingModule } from "./organizations-routing.module";
const safeProviders: SafeProvider[] = [
safeProvider({
provide: ApiService,
deps: [
TokenService,
PlatformUtilsService,
EnvironmentService,
AppIdService,
StateService,
LOGOUT_CALLBACK,
],
}),
safeProvider({
provide: OrganizationAuthRequestApiService,
deps: [ApiService],
}),
safeProvider({
provide: OrganizationAuthRequestService,
deps: [OrganizationAuthRequestApiService, CryptoService, OrganizationUserService],
}),
];
@NgModule({
providers: safeProviders,
imports: [SharedModule, OrganizationsRoutingModule, NoItemsModule, LooseComponentsModule],
imports: [
SharedModule,
CoreOrganizationModule,
OrganizationsRoutingModule,
NoItemsModule,
LooseComponentsModule,
],
declarations: [
SsoComponent,
ScimComponent,
DomainVerificationComponent,
DomainAddEditDialogComponent,
DeviceApprovalsComponent,
],
})
export class OrganizationsModule {}