mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 14:23:32 +00:00
[PM-11450] Move organization-user domain to admin-console lib (#10785)
- move organization-user files from libs/common/src/admin-console into libs/admin-console/src/common - add barrel files and update imports to use barrel files - rename OrganizationUserService to OrganizationUserApiService - rename OrganizationUserServiceImplementation to DefaultOrganizationUserApiService
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"lib": ["ES2021.String"],
|
"lib": ["ES2021.String"],
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["../../libs/admin-console/src"],
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
||||||
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserConfirmRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserConfirmRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
||||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
|
|
||||||
@@ -10,7 +12,7 @@ export class ConfirmCommand {
|
|||||||
constructor(
|
constructor(
|
||||||
private apiService: ApiService,
|
private apiService: ApiService,
|
||||||
private cryptoService: CryptoService,
|
private cryptoService: CryptoService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async run(object: string, id: string, cmdOptions: Record<string, any>): Promise<Response> {
|
async run(object: string, id: string, cmdOptions: Record<string, any>): Promise<Response> {
|
||||||
@@ -42,7 +44,7 @@ export class ConfirmCommand {
|
|||||||
if (orgKey == null) {
|
if (orgKey == null) {
|
||||||
throw new Error("No encryption key for this organization.");
|
throw new Error("No encryption key for this organization.");
|
||||||
}
|
}
|
||||||
const orgUser = await this.organizationUserService.getOrganizationUser(
|
const orgUser = await this.organizationUserApiService.getOrganizationUser(
|
||||||
options.organizationId,
|
options.organizationId,
|
||||||
id,
|
id,
|
||||||
);
|
);
|
||||||
@@ -54,7 +56,7 @@ export class ConfirmCommand {
|
|||||||
const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey);
|
const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey);
|
||||||
const req = new OrganizationUserConfirmRequest();
|
const req = new OrganizationUserConfirmRequest();
|
||||||
req.key = key.encryptedString;
|
req.key = key.encryptedString;
|
||||||
await this.organizationUserService.postOrganizationUserConfirm(
|
await this.organizationUserApiService.postOrganizationUserConfirm(
|
||||||
options.organizationId,
|
options.organizationId,
|
||||||
id,
|
id,
|
||||||
req,
|
req,
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { firstValueFrom } from "rxjs";
|
import { firstValueFrom } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { EventCollectionService } from "@bitwarden/common/abstractions/event/event-collection.service";
|
import { EventCollectionService } from "@bitwarden/common/abstractions/event/event-collection.service";
|
||||||
import { SearchService } from "@bitwarden/common/abstractions/search.service";
|
import { SearchService } from "@bitwarden/common/abstractions/search.service";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { EventType } from "@bitwarden/common/enums";
|
import { EventType } from "@bitwarden/common/enums";
|
||||||
import { ListResponse as ApiListResponse } from "@bitwarden/common/models/response/list.response";
|
import { ListResponse as ApiListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
@@ -35,7 +35,7 @@ export class ListCommand {
|
|||||||
private collectionService: CollectionService,
|
private collectionService: CollectionService,
|
||||||
private organizationService: OrganizationService,
|
private organizationService: OrganizationService,
|
||||||
private searchService: SearchService,
|
private searchService: SearchService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private apiService: ApiService,
|
private apiService: ApiService,
|
||||||
private eventCollectionService: EventCollectionService,
|
private eventCollectionService: EventCollectionService,
|
||||||
) {}
|
) {}
|
||||||
@@ -211,7 +211,7 @@ export class ListCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await this.organizationUserService.getAllUsers(options.organizationId);
|
const response = await this.organizationUserApiService.getAllUsers(options.organizationId);
|
||||||
const res = new ListResponse(
|
const res = new ListResponse(
|
||||||
response.data.map((r) => {
|
response.data.map((r) => {
|
||||||
const u = new OrganizationUserResponse();
|
const u = new OrganizationUserResponse();
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export class OssServeConfigurator {
|
|||||||
this.serviceContainer.collectionService,
|
this.serviceContainer.collectionService,
|
||||||
this.serviceContainer.organizationService,
|
this.serviceContainer.organizationService,
|
||||||
this.serviceContainer.searchService,
|
this.serviceContainer.searchService,
|
||||||
this.serviceContainer.organizationUserService,
|
this.serviceContainer.organizationUserApiService,
|
||||||
this.serviceContainer.apiService,
|
this.serviceContainer.apiService,
|
||||||
this.serviceContainer.eventCollectionService,
|
this.serviceContainer.eventCollectionService,
|
||||||
);
|
);
|
||||||
@@ -114,7 +114,7 @@ export class OssServeConfigurator {
|
|||||||
this.confirmCommand = new ConfirmCommand(
|
this.confirmCommand = new ConfirmCommand(
|
||||||
this.serviceContainer.apiService,
|
this.serviceContainer.apiService,
|
||||||
this.serviceContainer.cryptoService,
|
this.serviceContainer.cryptoService,
|
||||||
this.serviceContainer.organizationUserService,
|
this.serviceContainer.organizationUserApiService,
|
||||||
);
|
);
|
||||||
this.restoreCommand = new RestoreCommand(this.serviceContainer.cipherService);
|
this.restoreCommand = new RestoreCommand(this.serviceContainer.cipherService);
|
||||||
this.shareCommand = new ShareCommand(
|
this.shareCommand = new ShareCommand(
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ import * as path from "path";
|
|||||||
import * as jsdom from "jsdom";
|
import * as jsdom from "jsdom";
|
||||||
import { firstValueFrom } from "rxjs";
|
import { firstValueFrom } from "rxjs";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
DefaultOrganizationUserApiService,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
InternalUserDecryptionOptionsServiceAbstraction,
|
InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
AuthRequestService,
|
AuthRequestService,
|
||||||
@@ -16,12 +20,10 @@ import {
|
|||||||
import { EventCollectionService as EventCollectionServiceAbstraction } from "@bitwarden/common/abstractions/event/event-collection.service";
|
import { EventCollectionService as EventCollectionServiceAbstraction } from "@bitwarden/common/abstractions/event/event-collection.service";
|
||||||
import { EventUploadService as EventUploadServiceAbstraction } from "@bitwarden/common/abstractions/event/event-upload.service";
|
import { EventUploadService as EventUploadServiceAbstraction } from "@bitwarden/common/abstractions/event/event-upload.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { ProviderApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/provider/provider-api.service.abstraction";
|
import { ProviderApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/provider/provider-api.service.abstraction";
|
||||||
import { OrganizationApiService } from "@bitwarden/common/admin-console/services/organization/organization-api.service";
|
import { OrganizationApiService } from "@bitwarden/common/admin-console/services/organization/organization-api.service";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/services/organization/organization.service";
|
import { OrganizationService } from "@bitwarden/common/admin-console/services/organization/organization.service";
|
||||||
import { OrganizationUserServiceImplementation } from "@bitwarden/common/admin-console/services/organization-user/organization-user.service.implementation";
|
|
||||||
import { PolicyApiService } from "@bitwarden/common/admin-console/services/policy/policy-api.service";
|
import { PolicyApiService } from "@bitwarden/common/admin-console/services/policy/policy-api.service";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/services/policy/policy.service";
|
import { PolicyService } from "@bitwarden/common/admin-console/services/policy/policy.service";
|
||||||
import { ProviderApiService } from "@bitwarden/common/admin-console/services/provider/provider-api.service";
|
import { ProviderApiService } from "@bitwarden/common/admin-console/services/provider/provider-api.service";
|
||||||
@@ -184,7 +186,7 @@ export class ServiceContainer {
|
|||||||
environmentService: EnvironmentService;
|
environmentService: EnvironmentService;
|
||||||
cipherService: CipherService;
|
cipherService: CipherService;
|
||||||
folderService: InternalFolderService;
|
folderService: InternalFolderService;
|
||||||
organizationUserService: OrganizationUserService;
|
organizationUserApiService: OrganizationUserApiService;
|
||||||
collectionService: CollectionService;
|
collectionService: CollectionService;
|
||||||
vaultTimeoutService: VaultTimeoutService;
|
vaultTimeoutService: VaultTimeoutService;
|
||||||
masterPasswordService: InternalMasterPasswordServiceAbstraction;
|
masterPasswordService: InternalMasterPasswordServiceAbstraction;
|
||||||
@@ -492,7 +494,7 @@ export class ServiceContainer {
|
|||||||
|
|
||||||
this.providerService = new ProviderService(this.stateProvider);
|
this.providerService = new ProviderService(this.stateProvider);
|
||||||
|
|
||||||
this.organizationUserService = new OrganizationUserServiceImplementation(this.apiService);
|
this.organizationUserApiService = new DefaultOrganizationUserApiService(this.apiService);
|
||||||
|
|
||||||
this.policyApiService = new PolicyApiService(this.policyService, this.apiService);
|
this.policyApiService = new PolicyApiService(this.policyService, this.apiService);
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export class VaultProgram extends BaseProgram {
|
|||||||
this.serviceContainer.collectionService,
|
this.serviceContainer.collectionService,
|
||||||
this.serviceContainer.organizationService,
|
this.serviceContainer.organizationService,
|
||||||
this.serviceContainer.searchService,
|
this.serviceContainer.searchService,
|
||||||
this.serviceContainer.organizationUserService,
|
this.serviceContainer.organizationUserApiService,
|
||||||
this.serviceContainer.apiService,
|
this.serviceContainer.apiService,
|
||||||
this.serviceContainer.eventCollectionService,
|
this.serviceContainer.eventCollectionService,
|
||||||
);
|
);
|
||||||
@@ -412,7 +412,7 @@ export class VaultProgram extends BaseProgram {
|
|||||||
const command = new ConfirmCommand(
|
const command = new ConfirmCommand(
|
||||||
this.serviceContainer.apiService,
|
this.serviceContainer.apiService,
|
||||||
this.serviceContainer.cryptoService,
|
this.serviceContainer.cryptoService,
|
||||||
this.serviceContainer.organizationUserService,
|
this.serviceContainer.organizationUserApiService,
|
||||||
);
|
);
|
||||||
const response = await command.run(object, id, cmd);
|
const response = await command.run(object, id, cmd);
|
||||||
this.processResponse(response);
|
this.processResponse(response);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/common/spec": ["../../libs/common/spec"],
|
"@bitwarden/common/spec": ["../../libs/common/spec"],
|
||||||
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
||||||
"@bitwarden/common/*": ["../../libs/common/src/*"],
|
"@bitwarden/common/*": ["../../libs/common/src/*"],
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { APP_INITIALIZER, NgModule } from "@angular/core";
|
import { APP_INITIALIZER, NgModule } from "@angular/core";
|
||||||
import { Subject, merge } from "rxjs";
|
import { Subject, merge } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
|
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
|
||||||
import {
|
import {
|
||||||
SECURE_STORAGE,
|
SECURE_STORAGE,
|
||||||
@@ -26,7 +27,6 @@ import {
|
|||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { VaultTimeoutSettingsService } from "@bitwarden/common/abstractions/vault-timeout/vault-timeout-settings.service";
|
import { VaultTimeoutSettingsService } from "@bitwarden/common/abstractions/vault-timeout/vault-timeout-settings.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { PolicyService as PolicyServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService as PolicyServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { AccountService as AccountServiceAbstraction } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService as AccountServiceAbstraction } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
import { AuthService as AuthServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth.service";
|
import { AuthService as AuthServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth.service";
|
||||||
@@ -285,7 +285,7 @@ const safeProviders: SafeProvider[] = [
|
|||||||
KdfConfigService,
|
KdfConfigService,
|
||||||
InternalMasterPasswordServiceAbstraction,
|
InternalMasterPasswordServiceAbstraction,
|
||||||
OrganizationApiServiceAbstraction,
|
OrganizationApiServiceAbstraction,
|
||||||
OrganizationUserService,
|
OrganizationUserApiService,
|
||||||
InternalUserDecryptionOptionsServiceAbstraction,
|
InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Component, NgZone, OnDestroy, OnInit } from "@angular/core";
|
import { Component, NgZone, OnDestroy, OnInit } from "@angular/core";
|
||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { SetPasswordComponent as BaseSetPasswordComponent } from "@bitwarden/angular/auth/components/set-password.component";
|
import { SetPasswordComponent as BaseSetPasswordComponent } from "@bitwarden/angular/auth/components/set-password.component";
|
||||||
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
@@ -50,7 +50,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent implements On
|
|||||||
private ngZone: NgZone,
|
private ngZone: NgZone,
|
||||||
stateService: StateService,
|
stateService: StateService,
|
||||||
organizationApiService: OrganizationApiServiceAbstraction,
|
organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
organizationUserService: OrganizationUserService,
|
organizationUserApiService: OrganizationUserApiService,
|
||||||
userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction,
|
userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
ssoLoginService: SsoLoginServiceAbstraction,
|
ssoLoginService: SsoLoginServiceAbstraction,
|
||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
@@ -74,7 +74,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent implements On
|
|||||||
route,
|
route,
|
||||||
stateService,
|
stateService,
|
||||||
organizationApiService,
|
organizationApiService,
|
||||||
organizationUserService,
|
organizationUserApiService,
|
||||||
userDecryptionOptionsService,
|
userDecryptionOptionsService,
|
||||||
ssoLoginService,
|
ssoLoginService,
|
||||||
dialogService,
|
dialogService,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"types": [],
|
"types": [],
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["../../libs/admin-console/src"],
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
||||||
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Injectable } from "@angular/core";
|
import { Injectable } from "@angular/core";
|
||||||
|
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import {
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
OrganizationUserInviteRequest,
|
OrganizationUserInviteRequest,
|
||||||
OrganizationUserUpdateRequest,
|
OrganizationUserUpdateRequest,
|
||||||
} from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
OrganizationUserDetailsResponse,
|
||||||
import { OrganizationUserDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
} from "@bitwarden/admin-console/common";
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
||||||
|
|
||||||
import { CoreOrganizationModule } from "../core-organization.module";
|
import { CoreOrganizationModule } from "../core-organization.module";
|
||||||
@@ -15,14 +15,14 @@ import { OrganizationUserAdminView } from "../views/organization-user-admin-view
|
|||||||
export class UserAdminService {
|
export class UserAdminService {
|
||||||
constructor(
|
constructor(
|
||||||
private configService: ConfigService,
|
private configService: ConfigService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async get(
|
async get(
|
||||||
organizationId: string,
|
organizationId: string,
|
||||||
organizationUserId: string,
|
organizationUserId: string,
|
||||||
): Promise<OrganizationUserAdminView | undefined> {
|
): Promise<OrganizationUserAdminView | undefined> {
|
||||||
const userResponse = await this.organizationUserService.getOrganizationUser(
|
const userResponse = await this.organizationUserApiService.getOrganizationUser(
|
||||||
organizationId,
|
organizationId,
|
||||||
organizationUserId,
|
organizationUserId,
|
||||||
{
|
{
|
||||||
@@ -47,7 +47,11 @@ export class UserAdminService {
|
|||||||
request.groups = user.groups;
|
request.groups = user.groups;
|
||||||
request.accessSecretsManager = user.accessSecretsManager;
|
request.accessSecretsManager = user.accessSecretsManager;
|
||||||
|
|
||||||
await this.organizationUserService.putOrganizationUser(user.organizationId, user.id, request);
|
await this.organizationUserApiService.putOrganizationUser(
|
||||||
|
user.organizationId,
|
||||||
|
user.id,
|
||||||
|
request,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async invite(emails: string[], user: OrganizationUserAdminView): Promise<void> {
|
async invite(emails: string[], user: OrganizationUserAdminView): Promise<void> {
|
||||||
@@ -59,7 +63,7 @@ export class UserAdminService {
|
|||||||
request.groups = user.groups;
|
request.groups = user.groups;
|
||||||
request.accessSecretsManager = user.accessSecretsManager;
|
request.accessSecretsManager = user.accessSecretsManager;
|
||||||
|
|
||||||
await this.organizationUserService.postOrganizationUserInvite(user.organizationId, request);
|
await this.organizationUserApiService.postOrganizationUserInvite(user.organizationId, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async decryptMany(
|
private async decryptMany(
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OrganizationUserUserDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
import { OrganizationUserUserDetailsResponse } from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
OrganizationUserStatusType,
|
OrganizationUserStatusType,
|
||||||
OrganizationUserType,
|
OrganizationUserType,
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
|||||||
import { Component, Inject, OnInit } from "@angular/core";
|
import { Component, Inject, OnInit } from "@angular/core";
|
||||||
import { FormBuilder } from "@angular/forms";
|
import { FormBuilder } from "@angular/forms";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
|
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { EventResponse } from "@bitwarden/common/models/response/event.response";
|
import { EventResponse } from "@bitwarden/common/models/response/event.response";
|
||||||
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
import { EventView } from "@bitwarden/common/models/view/event.view";
|
import { EventView } from "@bitwarden/common/models/view/event.view";
|
||||||
@@ -60,7 +60,7 @@ export class EntityEventsComponent implements OnInit {
|
|||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private userNamePipe: UserNamePipe,
|
private userNamePipe: UserNamePipe,
|
||||||
private logService: LogService,
|
private logService: LogService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private formBuilder: FormBuilder,
|
private formBuilder: FormBuilder,
|
||||||
private validationService: ValidationService,
|
private validationService: ValidationService,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
@@ -78,7 +78,9 @@ export class EntityEventsComponent implements OnInit {
|
|||||||
async load() {
|
async load() {
|
||||||
try {
|
try {
|
||||||
if (this.showUser) {
|
if (this.showUser) {
|
||||||
const response = await this.organizationUserService.getAllUsers(this.params.organizationId);
|
const response = await this.organizationUserApiService.getAllUsers(
|
||||||
|
this.params.organizationId,
|
||||||
|
);
|
||||||
response.data.forEach((u) => {
|
response.data.forEach((u) => {
|
||||||
const name = this.userNamePipe.transform(u);
|
const name = this.userNamePipe.transform(u);
|
||||||
this.orgUsersIdMap.set(u.id, { name: name, email: u.email });
|
this.orgUsersIdMap.set(u.id, { name: name, email: u.email });
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { Component, OnDestroy, OnInit } from "@angular/core";
|
|||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
import { concatMap, Subject, takeUntil } from "rxjs";
|
import { concatMap, Subject, takeUntil } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
|
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
|
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { EventSystemUser } from "@bitwarden/common/enums";
|
import { EventSystemUser } from "@bitwarden/common/enums";
|
||||||
@@ -49,7 +49,7 @@ export class EventsComponent extends BaseEventsComponent implements OnInit, OnDe
|
|||||||
logService: LogService,
|
logService: LogService,
|
||||||
private userNamePipe: UserNamePipe,
|
private userNamePipe: UserNamePipe,
|
||||||
private organizationService: OrganizationService,
|
private organizationService: OrganizationService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private providerService: ProviderService,
|
private providerService: ProviderService,
|
||||||
fileDownloadService: FileDownloadService,
|
fileDownloadService: FileDownloadService,
|
||||||
toastService: ToastService,
|
toastService: ToastService,
|
||||||
@@ -83,7 +83,7 @@ export class EventsComponent extends BaseEventsComponent implements OnInit, OnDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
async load() {
|
async load() {
|
||||||
const response = await this.organizationUserService.getAllUsers(this.organizationId);
|
const response = await this.organizationUserApiService.getAllUsers(this.organizationId);
|
||||||
response.data.forEach((u) => {
|
response.data.forEach((u) => {
|
||||||
const name = this.userNamePipe.transform(u);
|
const name = this.userNamePipe.transform(u);
|
||||||
this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });
|
this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ import {
|
|||||||
takeUntil,
|
takeUntil,
|
||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
|
import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
|
||||||
@@ -131,7 +131,7 @@ export class GroupAddEditComponent implements OnInit, OnDestroy {
|
|||||||
);
|
);
|
||||||
|
|
||||||
private get orgMembers$(): Observable<Array<AccessItemView & { userId: UserId }>> {
|
private get orgMembers$(): Observable<Array<AccessItemView & { userId: UserId }>> {
|
||||||
return from(this.organizationUserService.getAllUsers(this.organizationId)).pipe(
|
return from(this.organizationUserApiService.getAllUsers(this.organizationId)).pipe(
|
||||||
map((response) =>
|
map((response) =>
|
||||||
response.data.map((m) => ({
|
response.data.map((m) => ({
|
||||||
id: m.id,
|
id: m.id,
|
||||||
@@ -202,7 +202,7 @@ export class GroupAddEditComponent implements OnInit, OnDestroy {
|
|||||||
@Inject(DIALOG_DATA) private params: GroupAddEditDialogParams,
|
@Inject(DIALOG_DATA) private params: GroupAddEditDialogParams,
|
||||||
private dialogRef: DialogRef<GroupAddEditDialogResultType>,
|
private dialogRef: DialogRef<GroupAddEditDialogResultType>,
|
||||||
private apiService: ApiService,
|
private apiService: ApiService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private groupService: GroupService,
|
private groupService: GroupService,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { Directive, OnInit } from "@angular/core";
|
|||||||
import {
|
import {
|
||||||
OrganizationUserBulkPublicKeyResponse,
|
OrganizationUserBulkPublicKeyResponse,
|
||||||
OrganizationUserBulkResponse,
|
OrganizationUserBulkResponse,
|
||||||
} from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
} from "@bitwarden/admin-console/common";
|
||||||
import { ProviderUserBulkPublicKeyResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk-public-key.response";
|
import { ProviderUserBulkPublicKeyResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk-public-key.response";
|
||||||
import { ProviderUserBulkResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk.response";
|
import { ProviderUserBulkResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk.response";
|
||||||
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Directive } from "@angular/core";
|
import { Directive } from "@angular/core";
|
||||||
|
|
||||||
import { OrganizationUserBulkResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
import { OrganizationUserBulkResponse } from "@bitwarden/admin-console/common";
|
||||||
import { ProviderUserBulkResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk.response";
|
import { ProviderUserBulkResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-user-bulk.response";
|
||||||
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
||||||
import { Component, Inject, OnInit } from "@angular/core";
|
import { Component, Inject, OnInit } from "@angular/core";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserBulkConfirmRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserBulkConfirmRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { OrganizationUserStatusType } from "@bitwarden/common/admin-console/enums";
|
import { OrganizationUserStatusType } from "@bitwarden/common/admin-console/enums";
|
||||||
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
@@ -40,7 +42,7 @@ export class BulkConfirmComponent implements OnInit {
|
|||||||
@Inject(DIALOG_DATA) protected data: BulkConfirmDialogData,
|
@Inject(DIALOG_DATA) protected data: BulkConfirmDialogData,
|
||||||
protected cryptoService: CryptoService,
|
protected cryptoService: CryptoService,
|
||||||
protected apiService: ApiService,
|
protected apiService: ApiService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
) {
|
) {
|
||||||
this.organizationId = data.organizationId;
|
this.organizationId = data.organizationId;
|
||||||
@@ -104,7 +106,7 @@ export class BulkConfirmComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected async getPublicKeys() {
|
protected async getPublicKeys() {
|
||||||
return await this.organizationUserService.postOrganizationUsersPublicKey(
|
return await this.organizationUserApiService.postOrganizationUsersPublicKey(
|
||||||
this.organizationId,
|
this.organizationId,
|
||||||
this.filteredUsers.map((user) => user.id),
|
this.filteredUsers.map((user) => user.id),
|
||||||
);
|
);
|
||||||
@@ -116,7 +118,7 @@ export class BulkConfirmComponent implements OnInit {
|
|||||||
|
|
||||||
protected async postConfirmRequest(userIdsWithKeys: any[]) {
|
protected async postConfirmRequest(userIdsWithKeys: any[]) {
|
||||||
const request = new OrganizationUserBulkConfirmRequest(userIdsWithKeys);
|
const request = new OrganizationUserBulkConfirmRequest(userIdsWithKeys);
|
||||||
return await this.organizationUserService.postOrganizationUserBulkConfirm(
|
return await this.organizationUserApiService.postOrganizationUserBulkConfirm(
|
||||||
this.organizationId,
|
this.organizationId,
|
||||||
request,
|
request,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { DialogRef, DIALOG_DATA } from "@angular/cdk/dialog";
|
import { DialogRef, DIALOG_DATA } from "@angular/cdk/dialog";
|
||||||
import { Component, Inject, OnInit } from "@angular/core";
|
import { Component, Inject, OnInit } from "@angular/core";
|
||||||
|
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { DialogService, TableDataSource, ToastService } from "@bitwarden/components";
|
import { DialogService, TableDataSource, ToastService } from "@bitwarden/components";
|
||||||
@@ -21,7 +21,7 @@ export class BulkEnableSecretsManagerDialogComponent implements OnInit {
|
|||||||
constructor(
|
constructor(
|
||||||
public dialogRef: DialogRef,
|
public dialogRef: DialogRef,
|
||||||
@Inject(DIALOG_DATA) private data: BulkEnableSecretsManagerDialogData,
|
@Inject(DIALOG_DATA) private data: BulkEnableSecretsManagerDialogData,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
@@ -32,7 +32,7 @@ export class BulkEnableSecretsManagerDialogComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
submit = async () => {
|
submit = async () => {
|
||||||
await this.organizationUserService.putOrganizationUserBulkEnableSecretsManager(
|
await this.organizationUserApiService.putOrganizationUserBulkEnableSecretsManager(
|
||||||
this.data.orgId,
|
this.data.orgId,
|
||||||
this.dataSource.data.map((u) => u.id),
|
this.dataSource.data.map((u) => u.id),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
||||||
import { Component, Inject } from "@angular/core";
|
import { Component, Inject } from "@angular/core";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserStatusType } from "@bitwarden/common/admin-console/enums";
|
import { OrganizationUserStatusType } from "@bitwarden/common/admin-console/enums";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { DialogService } from "@bitwarden/components";
|
import { DialogService } from "@bitwarden/components";
|
||||||
@@ -33,7 +33,7 @@ export class BulkRemoveComponent {
|
|||||||
@Inject(DIALOG_DATA) protected data: BulkRemoveDialogData,
|
@Inject(DIALOG_DATA) protected data: BulkRemoveDialogData,
|
||||||
protected apiService: ApiService,
|
protected apiService: ApiService,
|
||||||
protected i18nService: I18nService,
|
protected i18nService: I18nService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
) {
|
) {
|
||||||
this.organizationId = data.organizationId;
|
this.organizationId = data.organizationId;
|
||||||
this.users = data.users;
|
this.users = data.users;
|
||||||
@@ -60,7 +60,7 @@ export class BulkRemoveComponent {
|
|||||||
};
|
};
|
||||||
|
|
||||||
protected async removeUsers() {
|
protected async removeUsers() {
|
||||||
return await this.organizationUserService.removeManyOrganizationUsers(
|
return await this.organizationUserApiService.removeManyOrganizationUsers(
|
||||||
this.organizationId,
|
this.organizationId,
|
||||||
this.users.map((user) => user.id),
|
this.users.map((user) => user.id),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { DIALOG_DATA } from "@angular/cdk/dialog";
|
import { DIALOG_DATA } from "@angular/cdk/dialog";
|
||||||
import { Component, Inject } from "@angular/core";
|
import { Component, Inject } from "@angular/core";
|
||||||
|
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { OrganizationUserStatusType } from "@bitwarden/common/admin-console/enums";
|
import { OrganizationUserStatusType } from "@bitwarden/common/admin-console/enums";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { DialogService } from "@bitwarden/components";
|
import { DialogService } from "@bitwarden/components";
|
||||||
@@ -32,7 +32,7 @@ export class BulkRestoreRevokeComponent {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
protected i18nService: I18nService,
|
protected i18nService: I18nService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
@Inject(DIALOG_DATA) protected data: BulkRestoreDialogParams,
|
@Inject(DIALOG_DATA) protected data: BulkRestoreDialogParams,
|
||||||
) {
|
) {
|
||||||
this.isRevoking = data.isRevoking;
|
this.isRevoking = data.isRevoking;
|
||||||
@@ -66,12 +66,12 @@ export class BulkRestoreRevokeComponent {
|
|||||||
protected async performBulkUserAction() {
|
protected async performBulkUserAction() {
|
||||||
const userIds = this.users.map((user) => user.id);
|
const userIds = this.users.map((user) => user.id);
|
||||||
if (this.isRevoking) {
|
if (this.isRevoking) {
|
||||||
return await this.organizationUserService.revokeManyOrganizationUsers(
|
return await this.organizationUserApiService.revokeManyOrganizationUsers(
|
||||||
this.organizationId,
|
this.organizationId,
|
||||||
userIds,
|
userIds,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return await this.organizationUserService.restoreManyOrganizationUsers(
|
return await this.organizationUserApiService.restoreManyOrganizationUsers(
|
||||||
this.organizationId,
|
this.organizationId,
|
||||||
userIds,
|
userIds,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
||||||
import { Component, Inject, OnInit } from "@angular/core";
|
import { Component, Inject, OnInit } from "@angular/core";
|
||||||
|
|
||||||
import { OrganizationUserBulkResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
import { OrganizationUserBulkResponse } from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
OrganizationUserStatusType,
|
OrganizationUserStatusType,
|
||||||
ProviderUserStatusType,
|
ProviderUserStatusType,
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ import {
|
|||||||
takeUntil,
|
takeUntil,
|
||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import {
|
import {
|
||||||
OrganizationUserStatusType,
|
OrganizationUserStatusType,
|
||||||
OrganizationUserType,
|
OrganizationUserType,
|
||||||
@@ -139,7 +139,7 @@ export class MemberDialogComponent implements OnDestroy {
|
|||||||
private collectionAdminService: CollectionAdminService,
|
private collectionAdminService: CollectionAdminService,
|
||||||
private groupService: GroupService,
|
private groupService: GroupService,
|
||||||
private userService: UserAdminService,
|
private userService: UserAdminService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private dialogService: DialogService,
|
private dialogService: DialogService,
|
||||||
private accountService: AccountService,
|
private accountService: AccountService,
|
||||||
organizationService: OrganizationService,
|
organizationService: OrganizationService,
|
||||||
@@ -491,7 +491,7 @@ export class MemberDialogComponent implements OnDestroy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.organizationUserService.removeOrganizationUser(
|
await this.organizationUserApiService.removeOrganizationUser(
|
||||||
this.params.organizationId,
|
this.params.organizationId,
|
||||||
this.params.organizationUserId,
|
this.params.organizationUserId,
|
||||||
);
|
);
|
||||||
@@ -528,7 +528,7 @@ export class MemberDialogComponent implements OnDestroy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.organizationUserService.revokeOrganizationUser(
|
await this.organizationUserApiService.revokeOrganizationUser(
|
||||||
this.params.organizationId,
|
this.params.organizationId,
|
||||||
this.params.organizationUserId,
|
this.params.organizationUserId,
|
||||||
);
|
);
|
||||||
@@ -547,7 +547,7 @@ export class MemberDialogComponent implements OnDestroy {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.organizationUserService.restoreOrganizationUser(
|
await this.organizationUserApiService.restoreOrganizationUser(
|
||||||
this.params.organizationId,
|
this.params.organizationId,
|
||||||
this.params.organizationUserId,
|
this.params.organizationUserId,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -13,15 +13,17 @@ import {
|
|||||||
switchMap,
|
switchMap,
|
||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserConfirmRequest,
|
||||||
|
OrganizationUserUserDetailsResponse,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
|
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
|
||||||
import { ModalService } from "@bitwarden/angular/services/modal.service";
|
import { ModalService } from "@bitwarden/angular/services/modal.service";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service";
|
import { OrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserConfirmRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { OrganizationUserUserDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
|
||||||
import { PolicyApiServiceAbstraction as PolicyApiService } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction as PolicyApiService } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import {
|
import {
|
||||||
@@ -116,7 +118,7 @@ export class MembersComponent extends BaseMembersComponent<OrganizationUserView>
|
|||||||
private syncService: SyncService,
|
private syncService: SyncService,
|
||||||
private organizationService: OrganizationService,
|
private organizationService: OrganizationService,
|
||||||
private organizationApiService: OrganizationApiServiceAbstraction,
|
private organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private groupService: GroupService,
|
private groupService: GroupService,
|
||||||
private collectionService: CollectionService,
|
private collectionService: CollectionService,
|
||||||
@@ -213,7 +215,7 @@ export class MembersComponent extends BaseMembersComponent<OrganizationUserView>
|
|||||||
let collectionsPromise: Promise<Map<string, string>>;
|
let collectionsPromise: Promise<Map<string, string>>;
|
||||||
|
|
||||||
// We don't need both groups and collections for the table, so only load one
|
// We don't need both groups and collections for the table, so only load one
|
||||||
const userPromise = this.organizationUserService.getAllUsers(this.organization.id, {
|
const userPromise = this.organizationUserApiService.getAllUsers(this.organization.id, {
|
||||||
includeGroups: this.organization.useGroups,
|
includeGroups: this.organization.useGroups,
|
||||||
includeCollections: !this.organization.useGroups,
|
includeCollections: !this.organization.useGroups,
|
||||||
});
|
});
|
||||||
@@ -270,19 +272,19 @@ export class MembersComponent extends BaseMembersComponent<OrganizationUserView>
|
|||||||
}
|
}
|
||||||
|
|
||||||
removeUser(id: string): Promise<void> {
|
removeUser(id: string): Promise<void> {
|
||||||
return this.organizationUserService.removeOrganizationUser(this.organization.id, id);
|
return this.organizationUserApiService.removeOrganizationUser(this.organization.id, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
revokeUser(id: string): Promise<void> {
|
revokeUser(id: string): Promise<void> {
|
||||||
return this.organizationUserService.revokeOrganizationUser(this.organization.id, id);
|
return this.organizationUserApiService.revokeOrganizationUser(this.organization.id, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
restoreUser(id: string): Promise<void> {
|
restoreUser(id: string): Promise<void> {
|
||||||
return this.organizationUserService.restoreOrganizationUser(this.organization.id, id);
|
return this.organizationUserApiService.restoreOrganizationUser(this.organization.id, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
reinviteUser(id: string): Promise<void> {
|
reinviteUser(id: string): Promise<void> {
|
||||||
return this.organizationUserService.postOrganizationUserReinvite(this.organization.id, id);
|
return this.organizationUserApiService.postOrganizationUserReinvite(this.organization.id, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
async confirmUser(user: OrganizationUserView, publicKey: Uint8Array): Promise<void> {
|
async confirmUser(user: OrganizationUserView, publicKey: Uint8Array): Promise<void> {
|
||||||
@@ -290,7 +292,7 @@ export class MembersComponent extends BaseMembersComponent<OrganizationUserView>
|
|||||||
const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey);
|
const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey);
|
||||||
const request = new OrganizationUserConfirmRequest();
|
const request = new OrganizationUserConfirmRequest();
|
||||||
request.key = key.encryptedString;
|
request.key = key.encryptedString;
|
||||||
await this.organizationUserService.postOrganizationUserConfirm(
|
await this.organizationUserApiService.postOrganizationUserConfirm(
|
||||||
this.organization.id,
|
this.organization.id,
|
||||||
user.id,
|
user.id,
|
||||||
request,
|
request,
|
||||||
@@ -585,7 +587,7 @@ export class MembersComponent extends BaseMembersComponent<OrganizationUserView>
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = this.organizationUserService.postManyOrganizationUserReinvite(
|
const response = this.organizationUserApiService.postManyOrganizationUserReinvite(
|
||||||
this.organization.id,
|
this.organization.id,
|
||||||
filteredUsers.map((user) => user.id),
|
filteredUsers.map((user) => user.id),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import { mock, MockProxy } from "jest-mock-extended";
|
import { mock, MockProxy } from "jest-mock-extended";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordDetailsResponse,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserResetPasswordDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { OrganizationKeysResponse } from "@bitwarden/common/admin-console/models/response/organization-keys.response";
|
import { OrganizationKeysResponse } from "@bitwarden/common/admin-console/models/response/organization-keys.response";
|
||||||
import { OrganizationApiService } from "@bitwarden/common/admin-console/services/organization/organization-api.service";
|
import { OrganizationApiService } from "@bitwarden/common/admin-console/services/organization/organization-api.service";
|
||||||
@@ -24,7 +26,7 @@ describe("OrganizationUserResetPasswordService", () => {
|
|||||||
let cryptoService: MockProxy<CryptoService>;
|
let cryptoService: MockProxy<CryptoService>;
|
||||||
let encryptService: MockProxy<EncryptService>;
|
let encryptService: MockProxy<EncryptService>;
|
||||||
let organizationService: MockProxy<OrganizationService>;
|
let organizationService: MockProxy<OrganizationService>;
|
||||||
let organizationUserService: MockProxy<OrganizationUserService>;
|
let organizationUserApiService: MockProxy<OrganizationUserApiService>;
|
||||||
let organizationApiService: MockProxy<OrganizationApiService>;
|
let organizationApiService: MockProxy<OrganizationApiService>;
|
||||||
let i18nService: MockProxy<I18nService>;
|
let i18nService: MockProxy<I18nService>;
|
||||||
|
|
||||||
@@ -32,7 +34,7 @@ describe("OrganizationUserResetPasswordService", () => {
|
|||||||
cryptoService = mock<CryptoService>();
|
cryptoService = mock<CryptoService>();
|
||||||
encryptService = mock<EncryptService>();
|
encryptService = mock<EncryptService>();
|
||||||
organizationService = mock<OrganizationService>();
|
organizationService = mock<OrganizationService>();
|
||||||
organizationUserService = mock<OrganizationUserService>();
|
organizationUserApiService = mock<OrganizationUserApiService>();
|
||||||
organizationApiService = mock<OrganizationApiService>();
|
organizationApiService = mock<OrganizationApiService>();
|
||||||
i18nService = mock<I18nService>();
|
i18nService = mock<I18nService>();
|
||||||
|
|
||||||
@@ -40,7 +42,7 @@ describe("OrganizationUserResetPasswordService", () => {
|
|||||||
cryptoService,
|
cryptoService,
|
||||||
encryptService,
|
encryptService,
|
||||||
organizationService,
|
organizationService,
|
||||||
organizationUserService,
|
organizationUserApiService,
|
||||||
organizationApiService,
|
organizationApiService,
|
||||||
i18nService,
|
i18nService,
|
||||||
);
|
);
|
||||||
@@ -112,7 +114,7 @@ describe("OrganizationUserResetPasswordService", () => {
|
|||||||
const mockOrgId = "test-org-id";
|
const mockOrgId = "test-org-id";
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
organizationUserService.getOrganizationUserResetPasswordDetails.mockResolvedValue(
|
organizationUserApiService.getOrganizationUserResetPasswordDetails.mockResolvedValue(
|
||||||
new OrganizationUserResetPasswordDetailsResponse({
|
new OrganizationUserResetPasswordDetailsResponse({
|
||||||
kdf: KdfType.PBKDF2_SHA256,
|
kdf: KdfType.PBKDF2_SHA256,
|
||||||
kdfIterations: 5000,
|
kdfIterations: 5000,
|
||||||
@@ -140,11 +142,11 @@ describe("OrganizationUserResetPasswordService", () => {
|
|||||||
|
|
||||||
it("should reset the user's master password", async () => {
|
it("should reset the user's master password", async () => {
|
||||||
await sut.resetMasterPassword(mockNewMP, mockEmail, mockOrgUserId, mockOrgId);
|
await sut.resetMasterPassword(mockNewMP, mockEmail, mockOrgUserId, mockOrgId);
|
||||||
expect(organizationUserService.putOrganizationUserResetPassword).toHaveBeenCalled();
|
expect(organizationUserApiService.putOrganizationUserResetPassword).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should throw an error if the user details are null", async () => {
|
it("should throw an error if the user details are null", async () => {
|
||||||
organizationUserService.getOrganizationUserResetPasswordDetails.mockResolvedValue(null);
|
organizationUserApiService.getOrganizationUserResetPasswordDetails.mockResolvedValue(null);
|
||||||
await expect(
|
await expect(
|
||||||
sut.resetMasterPassword(mockNewMP, mockEmail, mockOrgUserId, mockOrgId),
|
sut.resetMasterPassword(mockNewMP, mockEmail, mockOrgUserId, mockOrgId),
|
||||||
).rejects.toThrow();
|
).rejects.toThrow();
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Injectable } from "@angular/core";
|
import { Injectable } from "@angular/core";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordRequest,
|
||||||
|
OrganizationUserResetPasswordWithIdRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { UserKeyRotationDataProvider } from "@bitwarden/auth/common";
|
import { UserKeyRotationDataProvider } from "@bitwarden/auth/common";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import {
|
|
||||||
OrganizationUserResetPasswordRequest,
|
|
||||||
OrganizationUserResetPasswordWithIdRequest,
|
|
||||||
} from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import {
|
import {
|
||||||
Argon2KdfConfig,
|
Argon2KdfConfig,
|
||||||
KdfConfig,
|
KdfConfig,
|
||||||
@@ -33,7 +33,7 @@ export class OrganizationUserResetPasswordService
|
|||||||
private cryptoService: CryptoService,
|
private cryptoService: CryptoService,
|
||||||
private encryptService: EncryptService,
|
private encryptService: EncryptService,
|
||||||
private organizationService: OrganizationService,
|
private organizationService: OrganizationService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private organizationApiService: OrganizationApiServiceAbstraction,
|
private organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
) {}
|
) {}
|
||||||
@@ -76,7 +76,7 @@ export class OrganizationUserResetPasswordService
|
|||||||
orgUserId: string,
|
orgUserId: string,
|
||||||
orgId: string,
|
orgId: string,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const response = await this.organizationUserService.getOrganizationUserResetPasswordDetails(
|
const response = await this.organizationUserApiService.getOrganizationUserResetPasswordDetails(
|
||||||
orgId,
|
orgId,
|
||||||
orgUserId,
|
orgUserId,
|
||||||
);
|
);
|
||||||
@@ -128,7 +128,11 @@ export class OrganizationUserResetPasswordService
|
|||||||
request.newMasterPasswordHash = newMasterKeyHash;
|
request.newMasterPasswordHash = newMasterKeyHash;
|
||||||
|
|
||||||
// Change user's password
|
// Change user's password
|
||||||
await this.organizationUserService.putOrganizationUserResetPassword(orgId, orgUserId, request);
|
await this.organizationUserApiService.putOrganizationUserResetPassword(
|
||||||
|
orgId,
|
||||||
|
orgUserId,
|
||||||
|
request,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OrganizationUserUserDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
import { OrganizationUserUserDetailsResponse } from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
OrganizationUserStatusType,
|
OrganizationUserStatusType,
|
||||||
OrganizationUserType,
|
OrganizationUserType,
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { UserVerificationDialogComponent } from "@bitwarden/auth/angular";
|
import { UserVerificationDialogComponent } from "@bitwarden/auth/angular";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserResetPasswordEnrollmentRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
|
import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
|
||||||
import { VerificationWithSecret } from "@bitwarden/common/auth/types/verification";
|
import { VerificationWithSecret } from "@bitwarden/common/auth/types/verification";
|
||||||
@@ -23,7 +25,7 @@ export class EnrollMasterPasswordReset {
|
|||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
data: EnrollMasterPasswordResetData,
|
data: EnrollMasterPasswordResetData,
|
||||||
resetPasswordService: OrganizationUserResetPasswordService,
|
resetPasswordService: OrganizationUserResetPasswordService,
|
||||||
organizationUserService: OrganizationUserService,
|
organizationUserApiService: OrganizationUserApiService,
|
||||||
platformUtilsService: PlatformUtilsService,
|
platformUtilsService: PlatformUtilsService,
|
||||||
i18nService: I18nService,
|
i18nService: I18nService,
|
||||||
syncService: SyncService,
|
syncService: SyncService,
|
||||||
@@ -50,7 +52,7 @@ export class EnrollMasterPasswordReset {
|
|||||||
|
|
||||||
// Process the enrollment request, which is an endpoint that is
|
// Process the enrollment request, which is an endpoint that is
|
||||||
// gated by a server-side check of the master password hash
|
// gated by a server-side check of the master password hash
|
||||||
await organizationUserService.putOrganizationUserResetPasswordEnrollment(
|
await organizationUserApiService.putOrganizationUserResetPasswordEnrollment(
|
||||||
data.organization.id,
|
data.organization.id,
|
||||||
data.organization.userId,
|
data.organization.userId,
|
||||||
request,
|
request,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OrganizationUserResetPasswordWithIdRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
import { OrganizationUserResetPasswordWithIdRequest } from "@bitwarden/admin-console/common";
|
||||||
import { WebauthnRotateCredentialRequest } from "@bitwarden/common/auth/models/request/webauthn-rotate-credential.request";
|
import { WebauthnRotateCredentialRequest } from "@bitwarden/common/auth/models/request/webauthn-rotate-credential.request";
|
||||||
import { SendWithIdRequest } from "@bitwarden/common/src/tools/send/models/request/send-with-id.request";
|
import { SendWithIdRequest } from "@bitwarden/common/src/tools/send/models/request/send-with-id.request";
|
||||||
import { CipherWithIdRequest } from "@bitwarden/common/src/vault/models/request/cipher-with-id.request";
|
import { CipherWithIdRequest } from "@bitwarden/common/src/vault/models/request/cipher-with-id.request";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { mock, MockProxy } from "jest-mock-extended";
|
import { mock, MockProxy } from "jest-mock-extended";
|
||||||
import { BehaviorSubject } from "rxjs";
|
import { BehaviorSubject } from "rxjs";
|
||||||
|
|
||||||
import { OrganizationUserResetPasswordWithIdRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
import { OrganizationUserResetPasswordWithIdRequest } from "@bitwarden/admin-console/common";
|
||||||
import { DeviceTrustServiceAbstraction } from "@bitwarden/common/auth/abstractions/device-trust.service.abstraction";
|
import { DeviceTrustServiceAbstraction } from "@bitwarden/common/auth/abstractions/device-trust.service.abstraction";
|
||||||
import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
|
import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction";
|
||||||
import { WebauthnRotateCredentialRequest } from "@bitwarden/common/auth/models/request/webauthn-rotate-credential.request";
|
import { WebauthnRotateCredentialRequest } from "@bitwarden/common/auth/models/request/webauthn-rotate-credential.request";
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { FakeGlobalStateProvider } from "@bitwarden/common/../spec/fake-state-provider";
|
import { FakeGlobalStateProvider } from "@bitwarden/common/../spec/fake-state-provider";
|
||||||
import { MockProxy, mock } from "jest-mock-extended";
|
import { MockProxy, mock } from "jest-mock-extended";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||||
@@ -35,7 +35,7 @@ describe("AcceptOrganizationInviteService", () => {
|
|||||||
let policyService: MockProxy<PolicyService>;
|
let policyService: MockProxy<PolicyService>;
|
||||||
let logService: MockProxy<LogService>;
|
let logService: MockProxy<LogService>;
|
||||||
let organizationApiService: MockProxy<OrganizationApiServiceAbstraction>;
|
let organizationApiService: MockProxy<OrganizationApiServiceAbstraction>;
|
||||||
let organizationUserService: MockProxy<OrganizationUserService>;
|
let organizationUserApiService: MockProxy<OrganizationUserApiService>;
|
||||||
let i18nService: MockProxy<I18nService>;
|
let i18nService: MockProxy<I18nService>;
|
||||||
let globalStateProvider: FakeGlobalStateProvider;
|
let globalStateProvider: FakeGlobalStateProvider;
|
||||||
let globalState: FakeGlobalState<OrganizationInvite>;
|
let globalState: FakeGlobalState<OrganizationInvite>;
|
||||||
@@ -49,7 +49,7 @@ describe("AcceptOrganizationInviteService", () => {
|
|||||||
policyService = mock();
|
policyService = mock();
|
||||||
logService = mock();
|
logService = mock();
|
||||||
organizationApiService = mock();
|
organizationApiService = mock();
|
||||||
organizationUserService = mock();
|
organizationUserApiService = mock();
|
||||||
i18nService = mock();
|
i18nService = mock();
|
||||||
globalStateProvider = new FakeGlobalStateProvider();
|
globalStateProvider = new FakeGlobalStateProvider();
|
||||||
globalState = globalStateProvider.getFake(ORGANIZATION_INVITE);
|
globalState = globalStateProvider.getFake(ORGANIZATION_INVITE);
|
||||||
@@ -63,7 +63,7 @@ describe("AcceptOrganizationInviteService", () => {
|
|||||||
policyService,
|
policyService,
|
||||||
logService,
|
logService,
|
||||||
organizationApiService,
|
organizationApiService,
|
||||||
organizationUserService,
|
organizationUserApiService,
|
||||||
i18nService,
|
i18nService,
|
||||||
globalStateProvider,
|
globalStateProvider,
|
||||||
);
|
);
|
||||||
@@ -85,10 +85,10 @@ describe("AcceptOrganizationInviteService", () => {
|
|||||||
const result = await sut.validateAndAcceptInvite(invite);
|
const result = await sut.validateAndAcceptInvite(invite);
|
||||||
|
|
||||||
expect(result).toBe(true);
|
expect(result).toBe(true);
|
||||||
expect(organizationUserService.postOrganizationUserAcceptInit).toHaveBeenCalled();
|
expect(organizationUserApiService.postOrganizationUserAcceptInit).toHaveBeenCalled();
|
||||||
expect(apiService.refreshIdentityToken).toHaveBeenCalled();
|
expect(apiService.refreshIdentityToken).toHaveBeenCalled();
|
||||||
expect(globalState.nextMock).toHaveBeenCalledWith(null);
|
expect(globalState.nextMock).toHaveBeenCalledWith(null);
|
||||||
expect(organizationUserService.postOrganizationUserAccept).not.toHaveBeenCalled();
|
expect(organizationUserApiService.postOrganizationUserAccept).not.toHaveBeenCalled();
|
||||||
expect(authService.logOut).not.toHaveBeenCalled();
|
expect(authService.logOut).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -133,10 +133,10 @@ describe("AcceptOrganizationInviteService", () => {
|
|||||||
const result = await sut.validateAndAcceptInvite(invite);
|
const result = await sut.validateAndAcceptInvite(invite);
|
||||||
|
|
||||||
expect(result).toBe(true);
|
expect(result).toBe(true);
|
||||||
expect(organizationUserService.postOrganizationUserAccept).toHaveBeenCalled();
|
expect(organizationUserApiService.postOrganizationUserAccept).toHaveBeenCalled();
|
||||||
expect(apiService.refreshIdentityToken).toHaveBeenCalled();
|
expect(apiService.refreshIdentityToken).toHaveBeenCalled();
|
||||||
expect(globalState.nextMock).toHaveBeenCalledWith(null);
|
expect(globalState.nextMock).toHaveBeenCalledWith(null);
|
||||||
expect(organizationUserService.postOrganizationUserAcceptInit).not.toHaveBeenCalled();
|
expect(organizationUserApiService.postOrganizationUserAcceptInit).not.toHaveBeenCalled();
|
||||||
expect(authService.logOut).not.toHaveBeenCalled();
|
expect(authService.logOut).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -161,8 +161,8 @@ describe("AcceptOrganizationInviteService", () => {
|
|||||||
const result = await sut.validateAndAcceptInvite(invite);
|
const result = await sut.validateAndAcceptInvite(invite);
|
||||||
|
|
||||||
expect(result).toBe(true);
|
expect(result).toBe(true);
|
||||||
expect(organizationUserService.postOrganizationUserAccept).toHaveBeenCalled();
|
expect(organizationUserApiService.postOrganizationUserAccept).toHaveBeenCalled();
|
||||||
expect(organizationUserService.postOrganizationUserAcceptInit).not.toHaveBeenCalled();
|
expect(organizationUserApiService.postOrganizationUserAcceptInit).not.toHaveBeenCalled();
|
||||||
expect(authService.logOut).not.toHaveBeenCalled();
|
expect(authService.logOut).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Injectable } from "@angular/core";
|
import { Injectable } from "@angular/core";
|
||||||
import { BehaviorSubject, firstValueFrom, map } from "rxjs";
|
import { BehaviorSubject, firstValueFrom, map } from "rxjs";
|
||||||
|
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import {
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
OrganizationUserAcceptRequest,
|
OrganizationUserAcceptRequest,
|
||||||
OrganizationUserAcceptInitRequest,
|
OrganizationUserAcceptInitRequest,
|
||||||
} from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
} from "@bitwarden/admin-console/common";
|
||||||
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||||
@@ -58,7 +58,7 @@ export class AcceptOrganizationInviteService {
|
|||||||
private readonly policyService: PolicyService,
|
private readonly policyService: PolicyService,
|
||||||
private readonly logService: LogService,
|
private readonly logService: LogService,
|
||||||
private readonly organizationApiService: OrganizationApiServiceAbstraction,
|
private readonly organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
private readonly organizationUserService: OrganizationUserService,
|
private readonly organizationUserApiService: OrganizationUserApiService,
|
||||||
private readonly i18nService: I18nService,
|
private readonly i18nService: I18nService,
|
||||||
private readonly globalStateProvider: GlobalStateProvider,
|
private readonly globalStateProvider: GlobalStateProvider,
|
||||||
) {
|
) {
|
||||||
@@ -121,7 +121,7 @@ export class AcceptOrganizationInviteService {
|
|||||||
|
|
||||||
private async acceptAndInitOrganization(invite: OrganizationInvite): Promise<void> {
|
private async acceptAndInitOrganization(invite: OrganizationInvite): Promise<void> {
|
||||||
await this.prepareAcceptAndInitRequest(invite).then((request) =>
|
await this.prepareAcceptAndInitRequest(invite).then((request) =>
|
||||||
this.organizationUserService.postOrganizationUserAcceptInit(
|
this.organizationUserApiService.postOrganizationUserAcceptInit(
|
||||||
invite.organizationId,
|
invite.organizationId,
|
||||||
invite.organizationUserId,
|
invite.organizationUserId,
|
||||||
request,
|
request,
|
||||||
@@ -156,7 +156,7 @@ export class AcceptOrganizationInviteService {
|
|||||||
|
|
||||||
private async accept(invite: OrganizationInvite): Promise<void> {
|
private async accept(invite: OrganizationInvite): Promise<void> {
|
||||||
await this.prepareAcceptRequest(invite).then((request) =>
|
await this.prepareAcceptRequest(invite).then((request) =>
|
||||||
this.organizationUserService.postOrganizationUserAccept(
|
this.organizationUserApiService.postOrganizationUserAccept(
|
||||||
invite.organizationId,
|
invite.organizationId,
|
||||||
invite.organizationUserId,
|
invite.organizationUserId,
|
||||||
request,
|
request,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { CommonModule } from "@angular/common";
|
import { CommonModule } from "@angular/common";
|
||||||
import { APP_INITIALIZER, NgModule, Optional, SkipSelf } from "@angular/core";
|
import { APP_INITIALIZER, NgModule, Optional, SkipSelf } from "@angular/core";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
|
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
|
||||||
import {
|
import {
|
||||||
SECURE_STORAGE,
|
SECURE_STORAGE,
|
||||||
@@ -24,7 +25,6 @@ import {
|
|||||||
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { AccountApiService as AccountApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/account-api.service";
|
import { AccountApiService as AccountApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/account-api.service";
|
||||||
@@ -203,7 +203,7 @@ const safeProviders: SafeProvider[] = [
|
|||||||
KdfConfigService,
|
KdfConfigService,
|
||||||
InternalMasterPasswordServiceAbstraction,
|
InternalMasterPasswordServiceAbstraction,
|
||||||
OrganizationApiServiceAbstraction,
|
OrganizationApiServiceAbstraction,
|
||||||
OrganizationUserService,
|
OrganizationUserApiService,
|
||||||
InternalUserDecryptionOptionsServiceAbstraction,
|
InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -13,9 +13,11 @@ import {
|
|||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
import { first } from "rxjs/operators";
|
import { first } from "rxjs/operators";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserUserDetailsResponse,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserUserDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses/organization-user.response";
|
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
@@ -106,7 +108,7 @@ export class CollectionDialogComponent implements OnInit, OnDestroy {
|
|||||||
private collectionAdminService: CollectionAdminService,
|
private collectionAdminService: CollectionAdminService,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private dialogService: DialogService,
|
private dialogService: DialogService,
|
||||||
private changeDetectorRef: ChangeDetectorRef,
|
private changeDetectorRef: ChangeDetectorRef,
|
||||||
) {
|
) {
|
||||||
@@ -155,7 +157,7 @@ export class CollectionDialogComponent implements OnInit, OnDestroy {
|
|||||||
collections: this.collectionAdminService.getAll(orgId),
|
collections: this.collectionAdminService.getAll(orgId),
|
||||||
groups: groups$,
|
groups: groups$,
|
||||||
// Collection(s) needed to map readonlypermission for (potential) access selector disabled state
|
// Collection(s) needed to map readonlypermission for (potential) access selector disabled state
|
||||||
users: this.organizationUserService.getAllUsers(orgId, { includeCollections: true }),
|
users: this.organizationUserApiService.getAllUsers(orgId, { includeCollections: true }),
|
||||||
})
|
})
|
||||||
.pipe(takeUntil(this.formGroup.controls.selectedOrg.valueChanges), takeUntil(this.destroy$))
|
.pipe(takeUntil(this.formGroup.controls.selectedOrg.valueChanges), takeUntil(this.destroy$))
|
||||||
.subscribe(({ organization, collections: allCollections, groups, users }) => {
|
.subscribe(({ organization, collections: allCollections, groups, users }) => {
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import { Component, Inject, OnDestroy, OnInit } from "@angular/core";
|
import { Component, Inject, OnDestroy, OnInit } from "@angular/core";
|
||||||
import { combineLatest, map, Observable, Subject, takeUntil } from "rxjs";
|
import { combineLatest, map, Observable, Subject, takeUntil } from "rxjs";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { UserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
import { UserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserResetPasswordEnrollmentRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
@@ -45,7 +47,7 @@ export class OrganizationOptionsComponent implements OnInit, OnDestroy {
|
|||||||
private policyService: PolicyService,
|
private policyService: PolicyService,
|
||||||
private logService: LogService,
|
private logService: LogService,
|
||||||
private organizationApiService: OrganizationApiServiceAbstraction,
|
private organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,
|
private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,
|
||||||
private dialogService: DialogService,
|
private dialogService: DialogService,
|
||||||
private resetPasswordService: OrganizationUserResetPasswordService,
|
private resetPasswordService: OrganizationUserResetPasswordService,
|
||||||
@@ -153,7 +155,7 @@ export class OrganizationOptionsComponent implements OnInit, OnDestroy {
|
|||||||
this.dialogService,
|
this.dialogService,
|
||||||
{ organization: org },
|
{ organization: org },
|
||||||
this.resetPasswordService,
|
this.resetPasswordService,
|
||||||
this.organizationUserService,
|
this.organizationUserApiService,
|
||||||
this.platformUtilsService,
|
this.platformUtilsService,
|
||||||
this.i18nService,
|
this.i18nService,
|
||||||
this.syncService,
|
this.syncService,
|
||||||
@@ -166,11 +168,12 @@ export class OrganizationOptionsComponent implements OnInit, OnDestroy {
|
|||||||
const request = new OrganizationUserResetPasswordEnrollmentRequest();
|
const request = new OrganizationUserResetPasswordEnrollmentRequest();
|
||||||
request.masterPasswordHash = "ignored";
|
request.masterPasswordHash = "ignored";
|
||||||
request.resetPasswordKey = null;
|
request.resetPasswordKey = null;
|
||||||
this.actionPromise = this.organizationUserService.putOrganizationUserResetPasswordEnrollment(
|
this.actionPromise =
|
||||||
this.organization.id,
|
this.organizationUserApiService.putOrganizationUserResetPasswordEnrollment(
|
||||||
this.organization.userId,
|
this.organization.id,
|
||||||
request,
|
this.organization.userId,
|
||||||
);
|
request,
|
||||||
|
);
|
||||||
try {
|
try {
|
||||||
await this.actionPromise;
|
await this.actionPromise;
|
||||||
this.platformUtilsService.showToast(
|
this.platformUtilsService.showToast(
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import { Component, Inject, OnDestroy } from "@angular/core";
|
|||||||
import { FormBuilder } from "@angular/forms";
|
import { FormBuilder } from "@angular/forms";
|
||||||
import { combineLatest, of, Subject, switchMap, takeUntil } from "rxjs";
|
import { combineLatest, of, Subject, switchMap, takeUntil } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
@@ -60,7 +60,7 @@ export class BulkCollectionsDialogComponent implements OnDestroy {
|
|||||||
private formBuilder: FormBuilder,
|
private formBuilder: FormBuilder,
|
||||||
private organizationService: OrganizationService,
|
private organizationService: OrganizationService,
|
||||||
private groupService: GroupService,
|
private groupService: GroupService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private collectionAdminService: CollectionAdminService,
|
private collectionAdminService: CollectionAdminService,
|
||||||
@@ -79,7 +79,7 @@ export class BulkCollectionsDialogComponent implements OnDestroy {
|
|||||||
combineLatest([
|
combineLatest([
|
||||||
organization$,
|
organization$,
|
||||||
groups$,
|
groups$,
|
||||||
this.organizationUserService.getAllUsers(this.params.organizationId),
|
this.organizationUserApiService.getAllUsers(this.params.organizationId),
|
||||||
])
|
])
|
||||||
.pipe(takeUntil(this.destroy$))
|
.pipe(takeUntil(this.destroy$))
|
||||||
.subscribe(([organization, groups, users]) => {
|
.subscribe(([organization, groups, users]) => {
|
||||||
|
|||||||
@@ -30,14 +30,16 @@ import {
|
|||||||
tap,
|
tap,
|
||||||
} from "rxjs/operators";
|
} from "rxjs/operators";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserUserDetailsResponse,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { SearchPipe } from "@bitwarden/angular/pipes/search.pipe";
|
import { SearchPipe } from "@bitwarden/angular/pipes/search.pipe";
|
||||||
import { ModalService } from "@bitwarden/angular/services/modal.service";
|
import { ModalService } from "@bitwarden/angular/services/modal.service";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { EventCollectionService } from "@bitwarden/common/abstractions/event/event-collection.service";
|
import { EventCollectionService } from "@bitwarden/common/abstractions/event/event-collection.service";
|
||||||
import { SearchService } from "@bitwarden/common/abstractions/search.service";
|
import { SearchService } from "@bitwarden/common/abstractions/search.service";
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserUserDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
import { EventType } from "@bitwarden/common/enums";
|
import { EventType } from "@bitwarden/common/enums";
|
||||||
@@ -215,7 +217,7 @@ export class VaultComponent implements OnInit, OnDestroy {
|
|||||||
private totpService: TotpService,
|
private totpService: TotpService,
|
||||||
private apiService: ApiService,
|
private apiService: ApiService,
|
||||||
private collectionService: CollectionService,
|
private collectionService: CollectionService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
protected configService: ConfigService,
|
protected configService: ConfigService,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
private accountService: AccountService,
|
private accountService: AccountService,
|
||||||
@@ -395,7 +397,7 @@ export class VaultComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
// This will be passed into the usersCanManage call
|
// This will be passed into the usersCanManage call
|
||||||
this.orgRevokedUsers = (
|
this.orgRevokedUsers = (
|
||||||
await this.organizationUserService.getAllUsers(await firstValueFrom(organizationId$))
|
await this.organizationUserApiService.getAllUsers(await firstValueFrom(organizationId$))
|
||||||
).data.filter((user: OrganizationUserUserDetailsResponse) => {
|
).data.filter((user: OrganizationUserUserDetailsResponse) => {
|
||||||
return user.status === -1;
|
return user.status === -1;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"module": "ES2020",
|
"module": "ES2020",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["../../libs/admin-console/src"],
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
||||||
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export class ServiceContainer extends OssServiceContainer {
|
|||||||
this.organizationAuthRequestService = new OrganizationAuthRequestService(
|
this.organizationAuthRequestService = new OrganizationAuthRequestService(
|
||||||
this.organizationAuthRequestApiService,
|
this.organizationAuthRequestApiService,
|
||||||
this.cryptoService,
|
this.cryptoService,
|
||||||
this.organizationUserService,
|
this.organizationUserApiService,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/cli/*": ["../../apps/cli/src/*"],
|
"@bitwarden/cli/*": ["../../apps/cli/src/*"],
|
||||||
"@bitwarden/common/spec": ["../../libs/common/spec"],
|
"@bitwarden/common/spec": ["../../libs/common/spec"],
|
||||||
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
||||||
"@bitwarden/common/*": ["../../libs/common/src/*"],
|
"@bitwarden/common/*": ["../../libs/common/src/*"],
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import { MockProxy, mock } from "jest-mock-extended";
|
import { MockProxy, mock } from "jest-mock-extended";
|
||||||
|
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
import {
|
||||||
import { OrganizationUserResetPasswordDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordDetailsResponse,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
||||||
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
|
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
|
||||||
@@ -14,17 +16,17 @@ import { PendingAuthRequestView } from "./pending-auth-request.view";
|
|||||||
describe("OrganizationAuthRequestService", () => {
|
describe("OrganizationAuthRequestService", () => {
|
||||||
let organizationAuthRequestApiService: MockProxy<OrganizationAuthRequestApiService>;
|
let organizationAuthRequestApiService: MockProxy<OrganizationAuthRequestApiService>;
|
||||||
let cryptoService: MockProxy<CryptoService>;
|
let cryptoService: MockProxy<CryptoService>;
|
||||||
let organizationUserService: MockProxy<OrganizationUserService>;
|
let organizationUserApiService: MockProxy<OrganizationUserApiService>;
|
||||||
let organizationAuthRequestService: OrganizationAuthRequestService;
|
let organizationAuthRequestService: OrganizationAuthRequestService;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
organizationAuthRequestApiService = mock<OrganizationAuthRequestApiService>();
|
organizationAuthRequestApiService = mock<OrganizationAuthRequestApiService>();
|
||||||
cryptoService = mock<CryptoService>();
|
cryptoService = mock<CryptoService>();
|
||||||
organizationUserService = mock<OrganizationUserService>();
|
organizationUserApiService = mock<OrganizationUserApiService>();
|
||||||
organizationAuthRequestService = new OrganizationAuthRequestService(
|
organizationAuthRequestService = new OrganizationAuthRequestService(
|
||||||
organizationAuthRequestApiService,
|
organizationAuthRequestApiService,
|
||||||
cryptoService,
|
cryptoService,
|
||||||
organizationUserService,
|
organizationUserApiService,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -113,7 +115,7 @@ describe("OrganizationAuthRequestService", () => {
|
|||||||
OrganizationUserResetPasswordDetailsResponse,
|
OrganizationUserResetPasswordDetailsResponse,
|
||||||
);
|
);
|
||||||
|
|
||||||
organizationUserService.getManyOrganizationUserAccountRecoveryDetails.mockResolvedValueOnce(
|
organizationUserApiService.getManyOrganizationUserAccountRecoveryDetails.mockResolvedValueOnce(
|
||||||
organizationUserResetPasswordDetailsResponse,
|
organizationUserResetPasswordDetailsResponse,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -155,7 +157,7 @@ describe("OrganizationAuthRequestService", () => {
|
|||||||
encryptedPrivateKey: "encryptedPrivateKey",
|
encryptedPrivateKey: "encryptedPrivateKey",
|
||||||
});
|
});
|
||||||
|
|
||||||
organizationUserService.getOrganizationUserResetPasswordDetails.mockResolvedValue(
|
organizationUserApiService.getOrganizationUserResetPasswordDetails.mockResolvedValue(
|
||||||
organizationUserResetPasswordDetailsResponse,
|
organizationUserResetPasswordDetailsResponse,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
import {
|
||||||
import { OrganizationUserResetPasswordDetailsResponse } from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordDetailsResponse,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
||||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
|
import { EncString } from "@bitwarden/common/platform/models/domain/enc-string";
|
||||||
@@ -13,7 +15,7 @@ export class OrganizationAuthRequestService {
|
|||||||
constructor(
|
constructor(
|
||||||
private organizationAuthRequestApiService: OrganizationAuthRequestApiService,
|
private organizationAuthRequestApiService: OrganizationAuthRequestApiService,
|
||||||
private cryptoService: CryptoService,
|
private cryptoService: CryptoService,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async listPendingRequests(organizationId: string): Promise<PendingAuthRequestView[]> {
|
async listPendingRequests(organizationId: string): Promise<PendingAuthRequestView[]> {
|
||||||
@@ -30,7 +32,7 @@ export class OrganizationAuthRequestService {
|
|||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const organizationUserIds = authRequests.map((r) => r.organizationUserId);
|
const organizationUserIds = authRequests.map((r) => r.organizationUserId);
|
||||||
const details =
|
const details =
|
||||||
await this.organizationUserService.getManyOrganizationUserAccountRecoveryDetails(
|
await this.organizationUserApiService.getManyOrganizationUserAccountRecoveryDetails(
|
||||||
organizationId,
|
organizationId,
|
||||||
organizationUserIds,
|
organizationUserIds,
|
||||||
);
|
);
|
||||||
@@ -61,7 +63,7 @@ export class OrganizationAuthRequestService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async approvePendingRequest(organizationId: string, authRequest: PendingAuthRequestView) {
|
async approvePendingRequest(organizationId: string, authRequest: PendingAuthRequestView) {
|
||||||
const details = await this.organizationUserService.getOrganizationUserResetPasswordDetails(
|
const details = await this.organizationUserApiService.getOrganizationUserResetPasswordDetails(
|
||||||
organizationId,
|
organizationId,
|
||||||
authRequest.organizationUserId,
|
authRequest.organizationUserId,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["../../libs/admin-console/src"],
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
||||||
"@bitwarden/auth": ["../../libs/auth/src"],
|
"@bitwarden/auth": ["../../libs/auth/src"],
|
||||||
"@bitwarden/billing": ["../../libs/billing/src"],
|
"@bitwarden/billing": ["../../libs/billing/src"],
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ import { Component, OnDestroy, OnInit } from "@angular/core";
|
|||||||
import { ActivatedRoute } from "@angular/router";
|
import { ActivatedRoute } from "@angular/router";
|
||||||
import { BehaviorSubject, Subject, switchMap, takeUntil, tap } from "rxjs";
|
import { BehaviorSubject, Subject, switchMap, takeUntil, tap } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
|
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
|
||||||
import { OrganizationAuthRequestApiService } from "@bitwarden/bit-common/admin-console/auth-requests/organization-auth-request-api.service";
|
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 { 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 { PendingAuthRequestView } from "@bitwarden/bit-common/admin-console/auth-requests/pending-auth-request.view";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
||||||
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.service";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
@@ -30,7 +30,7 @@ import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
|
|||||||
}),
|
}),
|
||||||
safeProvider({
|
safeProvider({
|
||||||
provide: OrganizationAuthRequestService,
|
provide: OrganizationAuthRequestService,
|
||||||
deps: [OrganizationAuthRequestApiService, CryptoService, OrganizationUserService],
|
deps: [OrganizationAuthRequestApiService, CryptoService, OrganizationUserApiService],
|
||||||
}),
|
}),
|
||||||
] satisfies SafeProvider[],
|
] satisfies SafeProvider[],
|
||||||
imports: [SharedModule, NoItemsModule, LooseComponentsModule],
|
imports: [SharedModule, NoItemsModule, LooseComponentsModule],
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
import { DIALOG_DATA, DialogConfig } from "@angular/cdk/dialog";
|
||||||
import { Component, Inject } from "@angular/core";
|
import { Component, Inject } from "@angular/core";
|
||||||
|
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
|
||||||
import {
|
import {
|
||||||
OrganizationUserBulkPublicKeyResponse,
|
OrganizationUserBulkPublicKeyResponse,
|
||||||
OrganizationUserBulkResponse,
|
OrganizationUserBulkResponse,
|
||||||
} from "@bitwarden/common/admin-console/abstractions/organization-user/responses";
|
} from "@bitwarden/admin-console/common";
|
||||||
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { ProviderUserStatusType } from "@bitwarden/common/admin-console/enums";
|
import { ProviderUserStatusType } from "@bitwarden/common/admin-console/enums";
|
||||||
import { ProviderUserBulkConfirmRequest } from "@bitwarden/common/admin-console/models/request/provider/provider-user-bulk-confirm.request";
|
import { ProviderUserBulkConfirmRequest } from "@bitwarden/common/admin-console/models/request/provider/provider-user-bulk-confirm.request";
|
||||||
import { ProviderUserBulkRequest } from "@bitwarden/common/admin-console/models/request/provider/provider-user-bulk.request";
|
import { ProviderUserBulkRequest } from "@bitwarden/common/admin-console/models/request/provider/provider-user-bulk.request";
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"module": "ES2020",
|
"module": "ES2020",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["../../libs/admin-console/src"],
|
"@bitwarden/admin-console/common": ["../../libs/admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
"@bitwarden/angular/*": ["../../libs/angular/src/*"],
|
||||||
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
"@bitwarden/auth/common": ["../../libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["../../libs/auth/src/angular"],
|
||||||
|
|||||||
1
libs/admin-console/src/common/index.ts
Normal file
1
libs/admin-console/src/common/index.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from "./organization-user";
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export * from "./organization-user-api.service";
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { ListResponse } from "../../../models/response/list.response";
|
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
OrganizationUserAcceptInitRequest,
|
OrganizationUserAcceptInitRequest,
|
||||||
@@ -9,19 +9,19 @@ import {
|
|||||||
OrganizationUserResetPasswordEnrollmentRequest,
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
OrganizationUserResetPasswordRequest,
|
OrganizationUserResetPasswordRequest,
|
||||||
OrganizationUserUpdateRequest,
|
OrganizationUserUpdateRequest,
|
||||||
} from "./requests";
|
} from "../models/requests";
|
||||||
import {
|
import {
|
||||||
OrganizationUserBulkPublicKeyResponse,
|
OrganizationUserBulkPublicKeyResponse,
|
||||||
OrganizationUserBulkResponse,
|
OrganizationUserBulkResponse,
|
||||||
OrganizationUserDetailsResponse,
|
OrganizationUserDetailsResponse,
|
||||||
OrganizationUserResetPasswordDetailsResponse,
|
OrganizationUserResetPasswordDetailsResponse,
|
||||||
OrganizationUserUserDetailsResponse,
|
OrganizationUserUserDetailsResponse,
|
||||||
} from "./responses";
|
} from "../models/responses";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service for interacting with Organization Users via the API
|
* Service for interacting with Organization Users via the API
|
||||||
*/
|
*/
|
||||||
export abstract class OrganizationUserService {
|
export abstract class OrganizationUserApiService {
|
||||||
/**
|
/**
|
||||||
* Retrieve a single organization user by Id
|
* Retrieve a single organization user by Id
|
||||||
* @param organizationId - Identifier for the user's organization
|
* @param organizationId - Identifier for the user's organization
|
||||||
3
libs/admin-console/src/common/organization-user/index.ts
Normal file
3
libs/admin-console/src/common/organization-user/index.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
export * from "./abstractions";
|
||||||
|
export * from "./services";
|
||||||
|
export * from "./models";
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
export * from "./requests";
|
||||||
|
export * from "./responses";
|
||||||
@@ -6,3 +6,4 @@ export * from "./organization-user-invite.request";
|
|||||||
export * from "./organization-user-reset-password.request";
|
export * from "./organization-user-reset-password.request";
|
||||||
export * from "./organization-user-reset-password-enrollment.request";
|
export * from "./organization-user-reset-password-enrollment.request";
|
||||||
export * from "./organization-user-update.request";
|
export * from "./organization-user-update.request";
|
||||||
|
export * from "./organization-user-bulk.request";
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OrganizationKeysRequest } from "../../../models/request/organization-keys.request";
|
import { OrganizationKeysRequest } from "@bitwarden/common/admin-console/models/request/organization-keys.request";
|
||||||
|
|
||||||
export class OrganizationUserAcceptInitRequest {
|
export class OrganizationUserAcceptInitRequest {
|
||||||
token: string;
|
token: string;
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import { OrganizationUserType } from "@bitwarden/common/admin-console/enums";
|
||||||
|
import { PermissionsApi } from "@bitwarden/common/admin-console/models/api/permissions.api";
|
||||||
|
import { SelectionReadOnlyRequest } from "@bitwarden/common/admin-console/models/request/selection-read-only.request";
|
||||||
|
|
||||||
|
export class OrganizationUserInviteRequest {
|
||||||
|
emails: string[] = [];
|
||||||
|
type: OrganizationUserType;
|
||||||
|
accessSecretsManager: boolean;
|
||||||
|
collections: SelectionReadOnlyRequest[] = [];
|
||||||
|
groups: string[];
|
||||||
|
permissions: PermissionsApi;
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { SecretVerificationRequest } from "../../../../auth/models/request/secret-verification.request";
|
import { SecretVerificationRequest } from "@bitwarden/common/auth/models/request/secret-verification.request";
|
||||||
|
|
||||||
export class OrganizationUserResetPasswordEnrollmentRequest extends SecretVerificationRequest {
|
export class OrganizationUserResetPasswordEnrollmentRequest extends SecretVerificationRequest {
|
||||||
resetPasswordKey: string;
|
resetPasswordKey: string;
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import { OrganizationUserType } from "@bitwarden/common/admin-console/enums";
|
||||||
|
import { PermissionsApi } from "@bitwarden/common/admin-console/models/api/permissions.api";
|
||||||
|
import { SelectionReadOnlyRequest } from "@bitwarden/common/admin-console/models/request/selection-read-only.request";
|
||||||
|
|
||||||
|
export class OrganizationUserUpdateRequest {
|
||||||
|
type: OrganizationUserType;
|
||||||
|
accessSecretsManager: boolean;
|
||||||
|
collections: SelectionReadOnlyRequest[] = [];
|
||||||
|
groups: string[] = [];
|
||||||
|
permissions: PermissionsApi;
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { BaseResponse } from "../../../../models/response/base.response";
|
import { BaseResponse } from "@bitwarden/common/models/response/base.response";
|
||||||
|
|
||||||
export class OrganizationUserBulkPublicKeyResponse extends BaseResponse {
|
export class OrganizationUserBulkPublicKeyResponse extends BaseResponse {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { BaseResponse } from "../../../../models/response/base.response";
|
import { BaseResponse } from "@bitwarden/common/models/response/base.response";
|
||||||
|
|
||||||
export class OrganizationUserBulkResponse extends BaseResponse {
|
export class OrganizationUserBulkResponse extends BaseResponse {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
import { BaseResponse } from "../../../../models/response/base.response";
|
import {
|
||||||
import { KdfType } from "../../../../platform/enums";
|
OrganizationUserStatusType,
|
||||||
import { OrganizationUserStatusType, OrganizationUserType } from "../../../enums";
|
OrganizationUserType,
|
||||||
import { PermissionsApi } from "../../../models/api/permissions.api";
|
} from "@bitwarden/common/admin-console/enums";
|
||||||
import { SelectionReadOnlyResponse } from "../../../models/response/selection-read-only.response";
|
import { PermissionsApi } from "@bitwarden/common/admin-console/models/api/permissions.api";
|
||||||
|
import { SelectionReadOnlyResponse } from "@bitwarden/common/admin-console/models/response/selection-read-only.response";
|
||||||
|
import { BaseResponse } from "@bitwarden/common/models/response/base.response";
|
||||||
|
import { KdfType } from "@bitwarden/common/platform/enums";
|
||||||
|
|
||||||
export class OrganizationUserResponse extends BaseResponse {
|
export class OrganizationUserResponse extends BaseResponse {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import { ApiService } from "../../../abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { ListResponse } from "../../../models/response/list.response";
|
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||||
import { OrganizationUserService } from "../../abstractions/organization-user/organization-user.service";
|
|
||||||
|
import { OrganizationUserApiService } from "../abstractions";
|
||||||
import {
|
import {
|
||||||
OrganizationUserAcceptInitRequest,
|
OrganizationUserAcceptInitRequest,
|
||||||
OrganizationUserAcceptRequest,
|
OrganizationUserAcceptRequest,
|
||||||
@@ -10,18 +11,17 @@ import {
|
|||||||
OrganizationUserResetPasswordEnrollmentRequest,
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
OrganizationUserResetPasswordRequest,
|
OrganizationUserResetPasswordRequest,
|
||||||
OrganizationUserUpdateRequest,
|
OrganizationUserUpdateRequest,
|
||||||
} from "../../abstractions/organization-user/requests";
|
OrganizationUserBulkRequest,
|
||||||
|
} from "../models/requests";
|
||||||
import {
|
import {
|
||||||
OrganizationUserBulkPublicKeyResponse,
|
OrganizationUserBulkPublicKeyResponse,
|
||||||
OrganizationUserBulkResponse,
|
OrganizationUserBulkResponse,
|
||||||
OrganizationUserDetailsResponse,
|
OrganizationUserDetailsResponse,
|
||||||
OrganizationUserResetPasswordDetailsResponse,
|
OrganizationUserResetPasswordDetailsResponse,
|
||||||
OrganizationUserUserDetailsResponse,
|
OrganizationUserUserDetailsResponse,
|
||||||
} from "../../abstractions/organization-user/responses";
|
} from "../models/responses";
|
||||||
|
|
||||||
import { OrganizationUserBulkRequest } from "./requests";
|
export class DefaultOrganizationUserApiService implements OrganizationUserApiService {
|
||||||
|
|
||||||
export class OrganizationUserServiceImplementation implements OrganizationUserService {
|
|
||||||
constructor(private apiService: ApiService) {}
|
constructor(private apiService: ApiService) {}
|
||||||
|
|
||||||
async getOrganizationUser(
|
async getOrganizationUser(
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export * from "./default-organization-user-api.service";
|
||||||
@@ -17,6 +17,7 @@ import {
|
|||||||
take,
|
take,
|
||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
LoginEmailServiceAbstraction,
|
LoginEmailServiceAbstraction,
|
||||||
UserDecryptionOptions,
|
UserDecryptionOptions,
|
||||||
@@ -24,7 +25,6 @@ import {
|
|||||||
} from "@bitwarden/auth/common";
|
} from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
import { DeviceTrustServiceAbstraction } from "@bitwarden/common/auth/abstractions/device-trust.service.abstraction";
|
import { DeviceTrustServiceAbstraction } from "@bitwarden/common/auth/abstractions/device-trust.service.abstraction";
|
||||||
import { DevicesServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices/devices.service.abstraction";
|
import { DevicesServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices/devices.service.abstraction";
|
||||||
@@ -95,7 +95,7 @@ export class BaseLoginDecryptionOptionsComponent implements OnInit, OnDestroy {
|
|||||||
protected loginEmailService: LoginEmailServiceAbstraction,
|
protected loginEmailService: LoginEmailServiceAbstraction,
|
||||||
protected organizationApiService: OrganizationApiServiceAbstraction,
|
protected organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
protected cryptoService: CryptoService,
|
protected cryptoService: CryptoService,
|
||||||
protected organizationUserService: OrganizationUserService,
|
protected organizationUserApiService: OrganizationUserApiService,
|
||||||
protected apiService: ApiService,
|
protected apiService: ApiService,
|
||||||
protected i18nService: I18nService,
|
protected i18nService: I18nService,
|
||||||
protected validationService: ValidationService,
|
protected validationService: ValidationService,
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ import { ActivatedRoute, Router } from "@angular/router";
|
|||||||
import { firstValueFrom, of } from "rxjs";
|
import { firstValueFrom, of } from "rxjs";
|
||||||
import { filter, first, switchMap, tap } from "rxjs/operators";
|
import { filter, first, switchMap, tap } from "rxjs/operators";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserResetPasswordEnrollmentRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { MasterPasswordPolicyOptions } from "@bitwarden/common/admin-console/models/domain/master-password-policy-options";
|
import { MasterPasswordPolicyOptions } from "@bitwarden/common/admin-console/models/domain/master-password-policy-options";
|
||||||
@@ -68,7 +70,7 @@ export class SetPasswordComponent extends BaseChangePasswordComponent implements
|
|||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
stateService: StateService,
|
stateService: StateService,
|
||||||
private organizationApiService: OrganizationApiServiceAbstraction,
|
private organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
private organizationUserService: OrganizationUserService,
|
private organizationUserApiService: OrganizationUserApiService,
|
||||||
private userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction,
|
private userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
private ssoLoginService: SsoLoginServiceAbstraction,
|
private ssoLoginService: SsoLoginServiceAbstraction,
|
||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
@@ -219,7 +221,7 @@ export class SetPasswordComponent extends BaseChangePasswordComponent implements
|
|||||||
resetRequest.masterPasswordHash = masterPasswordHash;
|
resetRequest.masterPasswordHash = masterPasswordHash;
|
||||||
resetRequest.resetPasswordKey = encryptedUserKey.encryptedString;
|
resetRequest.resetPasswordKey = encryptedUserKey.encryptedString;
|
||||||
|
|
||||||
return this.organizationUserService.putOrganizationUserResetPasswordEnrollment(
|
return this.organizationUserApiService.putOrganizationUserResetPasswordEnrollment(
|
||||||
this.orgId,
|
this.orgId,
|
||||||
this.userId,
|
this.userId,
|
||||||
resetRequest,
|
resetRequest,
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
import { ErrorHandler, LOCALE_ID, NgModule } from "@angular/core";
|
import { ErrorHandler, LOCALE_ID, NgModule } from "@angular/core";
|
||||||
import { Subject } from "rxjs";
|
import { Subject } from "rxjs";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
DefaultOrganizationUserApiService,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
SetPasswordJitService,
|
SetPasswordJitService,
|
||||||
DefaultSetPasswordJitService,
|
DefaultSetPasswordJitService,
|
||||||
@@ -43,7 +47,6 @@ import {
|
|||||||
OrgDomainServiceAbstraction,
|
OrgDomainServiceAbstraction,
|
||||||
} from "@bitwarden/common/admin-console/abstractions/organization-domain/org-domain.service.abstraction";
|
} from "@bitwarden/common/admin-console/abstractions/organization-domain/org-domain.service.abstraction";
|
||||||
import { OrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service";
|
import { OrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
|
||||||
import {
|
import {
|
||||||
InternalPolicyService,
|
InternalPolicyService,
|
||||||
@@ -56,7 +59,6 @@ import { OrganizationService } from "@bitwarden/common/admin-console/services/or
|
|||||||
import { OrgDomainApiService } from "@bitwarden/common/admin-console/services/organization-domain/org-domain-api.service";
|
import { OrgDomainApiService } from "@bitwarden/common/admin-console/services/organization-domain/org-domain-api.service";
|
||||||
import { OrgDomainService } from "@bitwarden/common/admin-console/services/organization-domain/org-domain.service";
|
import { OrgDomainService } from "@bitwarden/common/admin-console/services/organization-domain/org-domain.service";
|
||||||
import { DefaultOrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/services/organization-management-preferences/default-organization-management-preferences.service";
|
import { DefaultOrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/services/organization-management-preferences/default-organization-management-preferences.service";
|
||||||
import { OrganizationUserServiceImplementation } from "@bitwarden/common/admin-console/services/organization-user/organization-user.service.implementation";
|
|
||||||
import { PolicyApiService } from "@bitwarden/common/admin-console/services/policy/policy-api.service";
|
import { PolicyApiService } from "@bitwarden/common/admin-console/services/policy/policy-api.service";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/services/policy/policy.service";
|
import { PolicyService } from "@bitwarden/common/admin-console/services/policy/policy.service";
|
||||||
import { ProviderApiService } from "@bitwarden/common/admin-console/services/provider/provider-api.service";
|
import { ProviderApiService } from "@bitwarden/common/admin-console/services/provider/provider-api.service";
|
||||||
@@ -934,8 +936,8 @@ const safeProviders: SafeProvider[] = [
|
|||||||
useExisting: InternalOrganizationServiceAbstraction,
|
useExisting: InternalOrganizationServiceAbstraction,
|
||||||
}),
|
}),
|
||||||
safeProvider({
|
safeProvider({
|
||||||
provide: OrganizationUserService,
|
provide: OrganizationUserApiService,
|
||||||
useClass: OrganizationUserServiceImplementation,
|
useClass: DefaultOrganizationUserApiService,
|
||||||
deps: [ApiServiceAbstraction],
|
deps: [ApiServiceAbstraction],
|
||||||
}),
|
}),
|
||||||
safeProvider({
|
safeProvider({
|
||||||
@@ -945,7 +947,7 @@ const safeProviders: SafeProvider[] = [
|
|||||||
OrganizationApiServiceAbstraction,
|
OrganizationApiServiceAbstraction,
|
||||||
AccountServiceAbstraction,
|
AccountServiceAbstraction,
|
||||||
CryptoServiceAbstraction,
|
CryptoServiceAbstraction,
|
||||||
OrganizationUserService,
|
OrganizationUserApiService,
|
||||||
I18nServiceAbstraction,
|
I18nServiceAbstraction,
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
@@ -1273,7 +1275,7 @@ const safeProviders: SafeProvider[] = [
|
|||||||
KdfConfigServiceAbstraction,
|
KdfConfigServiceAbstraction,
|
||||||
InternalMasterPasswordServiceAbstraction,
|
InternalMasterPasswordServiceAbstraction,
|
||||||
OrganizationApiServiceAbstraction,
|
OrganizationApiServiceAbstraction,
|
||||||
OrganizationUserService,
|
OrganizationUserApiService,
|
||||||
InternalUserDecryptionOptionsServiceAbstraction,
|
InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { MockProxy, mock } from "jest-mock-extended";
|
import { MockProxy, mock } from "jest-mock-extended";
|
||||||
import { BehaviorSubject, of } from "rxjs";
|
import { BehaviorSubject, of } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
import {
|
import {
|
||||||
FakeUserDecryptionOptions as UserDecryptionOptions,
|
FakeUserDecryptionOptions as UserDecryptionOptions,
|
||||||
InternalUserDecryptionOptionsServiceAbstraction,
|
InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
} from "@bitwarden/auth/common";
|
} from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationKeysResponse } from "@bitwarden/common/admin-console/models/response/organization-keys.response";
|
import { OrganizationKeysResponse } from "@bitwarden/common/admin-console/models/response/organization-keys.response";
|
||||||
import { KdfConfigService } from "@bitwarden/common/auth/abstractions/kdf-config.service";
|
import { KdfConfigService } from "@bitwarden/common/auth/abstractions/kdf-config.service";
|
||||||
import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/auth/abstractions/master-password.service.abstraction";
|
import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/auth/abstractions/master-password.service.abstraction";
|
||||||
@@ -37,7 +37,7 @@ describe("DefaultSetPasswordJitService", () => {
|
|||||||
let kdfConfigService: MockProxy<KdfConfigService>;
|
let kdfConfigService: MockProxy<KdfConfigService>;
|
||||||
let masterPasswordService: MockProxy<InternalMasterPasswordServiceAbstraction>;
|
let masterPasswordService: MockProxy<InternalMasterPasswordServiceAbstraction>;
|
||||||
let organizationApiService: MockProxy<OrganizationApiServiceAbstraction>;
|
let organizationApiService: MockProxy<OrganizationApiServiceAbstraction>;
|
||||||
let organizationUserService: MockProxy<OrganizationUserService>;
|
let organizationUserApiService: MockProxy<OrganizationUserApiService>;
|
||||||
let userDecryptionOptionsService: MockProxy<InternalUserDecryptionOptionsServiceAbstraction>;
|
let userDecryptionOptionsService: MockProxy<InternalUserDecryptionOptionsServiceAbstraction>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
@@ -47,7 +47,7 @@ describe("DefaultSetPasswordJitService", () => {
|
|||||||
kdfConfigService = mock<KdfConfigService>();
|
kdfConfigService = mock<KdfConfigService>();
|
||||||
masterPasswordService = mock<InternalMasterPasswordServiceAbstraction>();
|
masterPasswordService = mock<InternalMasterPasswordServiceAbstraction>();
|
||||||
organizationApiService = mock<OrganizationApiServiceAbstraction>();
|
organizationApiService = mock<OrganizationApiServiceAbstraction>();
|
||||||
organizationUserService = mock<OrganizationUserService>();
|
organizationUserApiService = mock<OrganizationUserApiService>();
|
||||||
userDecryptionOptionsService = mock<InternalUserDecryptionOptionsServiceAbstraction>();
|
userDecryptionOptionsService = mock<InternalUserDecryptionOptionsServiceAbstraction>();
|
||||||
|
|
||||||
sut = new DefaultSetPasswordJitService(
|
sut = new DefaultSetPasswordJitService(
|
||||||
@@ -57,7 +57,7 @@ describe("DefaultSetPasswordJitService", () => {
|
|||||||
kdfConfigService,
|
kdfConfigService,
|
||||||
masterPasswordService,
|
masterPasswordService,
|
||||||
organizationApiService,
|
organizationApiService,
|
||||||
organizationUserService,
|
organizationUserApiService,
|
||||||
userDecryptionOptionsService,
|
userDecryptionOptionsService,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -170,7 +170,7 @@ describe("DefaultSetPasswordJitService", () => {
|
|||||||
cryptoService.userKey$.mockReturnValue(of(userKey));
|
cryptoService.userKey$.mockReturnValue(of(userKey));
|
||||||
cryptoService.rsaEncrypt.mockResolvedValue(userKeyEncString);
|
cryptoService.rsaEncrypt.mockResolvedValue(userKeyEncString);
|
||||||
|
|
||||||
organizationUserService.putOrganizationUserResetPasswordEnrollment.mockResolvedValue(
|
organizationUserApiService.putOrganizationUserResetPasswordEnrollment.mockResolvedValue(
|
||||||
undefined,
|
undefined,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -211,7 +211,9 @@ describe("DefaultSetPasswordJitService", () => {
|
|||||||
expect(apiService.setPassword).toHaveBeenCalledWith(setPasswordRequest);
|
expect(apiService.setPassword).toHaveBeenCalledWith(setPasswordRequest);
|
||||||
expect(organizationApiService.getKeys).toHaveBeenCalledWith(orgId);
|
expect(organizationApiService.getKeys).toHaveBeenCalledWith(orgId);
|
||||||
expect(cryptoService.rsaEncrypt).toHaveBeenCalledWith(userKey.key, orgPublicKey);
|
expect(cryptoService.rsaEncrypt).toHaveBeenCalledWith(userKey.key, orgPublicKey);
|
||||||
expect(organizationUserService.putOrganizationUserResetPasswordEnrollment).toHaveBeenCalled();
|
expect(
|
||||||
|
organizationUserApiService.putOrganizationUserResetPasswordEnrollment,
|
||||||
|
).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("when handling reset password auto enroll, it should throw an error if organization keys are not found", async () => {
|
it("when handling reset password auto enroll, it should throw an error if organization keys are not found", async () => {
|
||||||
@@ -224,7 +226,7 @@ describe("DefaultSetPasswordJitService", () => {
|
|||||||
// Act and Assert
|
// Act and Assert
|
||||||
await expect(sut.setPassword(credentials)).rejects.toThrow();
|
await expect(sut.setPassword(credentials)).rejects.toThrow();
|
||||||
expect(
|
expect(
|
||||||
organizationUserService.putOrganizationUserResetPasswordEnrollment,
|
organizationUserApiService.putOrganizationUserResetPasswordEnrollment,
|
||||||
).not.toHaveBeenCalled();
|
).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import { firstValueFrom } from "rxjs";
|
import { firstValueFrom } from "rxjs";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserResetPasswordEnrollmentRequest } from "@bitwarden/common/admin-console/abstractions/organization-user/requests";
|
|
||||||
import { KdfConfigService } from "@bitwarden/common/auth/abstractions/kdf-config.service";
|
import { KdfConfigService } from "@bitwarden/common/auth/abstractions/kdf-config.service";
|
||||||
import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/auth/abstractions/master-password.service.abstraction";
|
import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/auth/abstractions/master-password.service.abstraction";
|
||||||
import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason";
|
import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason";
|
||||||
@@ -31,7 +33,7 @@ export class DefaultSetPasswordJitService implements SetPasswordJitService {
|
|||||||
protected kdfConfigService: KdfConfigService,
|
protected kdfConfigService: KdfConfigService,
|
||||||
protected masterPasswordService: InternalMasterPasswordServiceAbstraction,
|
protected masterPasswordService: InternalMasterPasswordServiceAbstraction,
|
||||||
protected organizationApiService: OrganizationApiServiceAbstraction,
|
protected organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
protected organizationUserService: OrganizationUserService,
|
protected organizationUserApiService: OrganizationUserApiService,
|
||||||
protected userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction,
|
protected userDecryptionOptionsService: InternalUserDecryptionOptionsServiceAbstraction,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@@ -161,7 +163,7 @@ export class DefaultSetPasswordJitService implements SetPasswordJitService {
|
|||||||
resetRequest.masterPasswordHash = masterKeyHash;
|
resetRequest.masterPasswordHash = masterKeyHash;
|
||||||
resetRequest.resetPasswordKey = encryptedUserKey.encryptedString;
|
resetRequest.resetPasswordKey = encryptedUserKey.encryptedString;
|
||||||
|
|
||||||
await this.organizationUserService.putOrganizationUserResetPasswordEnrollment(
|
await this.organizationUserApiService.putOrganizationUserResetPasswordEnrollment(
|
||||||
orgId,
|
orgId,
|
||||||
userId,
|
userId,
|
||||||
resetRequest,
|
resetRequest,
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
import { OrganizationUserType } from "../../../enums";
|
|
||||||
import { PermissionsApi } from "../../../models/api/permissions.api";
|
|
||||||
import { SelectionReadOnlyRequest } from "../../../models/request/selection-read-only.request";
|
|
||||||
|
|
||||||
export class OrganizationUserInviteRequest {
|
|
||||||
emails: string[] = [];
|
|
||||||
type: OrganizationUserType;
|
|
||||||
accessSecretsManager: boolean;
|
|
||||||
collections: SelectionReadOnlyRequest[] = [];
|
|
||||||
groups: string[];
|
|
||||||
permissions: PermissionsApi;
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
import { OrganizationUserType } from "../../../enums";
|
|
||||||
import { PermissionsApi } from "../../../models/api/permissions.api";
|
|
||||||
import { SelectionReadOnlyRequest } from "../../../models/request/selection-read-only.request";
|
|
||||||
|
|
||||||
export class OrganizationUserUpdateRequest {
|
|
||||||
type: OrganizationUserType;
|
|
||||||
accessSecretsManager: boolean;
|
|
||||||
collections: SelectionReadOnlyRequest[] = [];
|
|
||||||
groups: string[] = [];
|
|
||||||
permissions: PermissionsApi;
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
import { OrganizationUserBulkPublicKeyResponse } from "../../../abstractions/organization-user/responses";
|
import { OrganizationUserBulkPublicKeyResponse } from "@bitwarden/admin-console/common";
|
||||||
|
|
||||||
export class ProviderUserBulkPublicKeyResponse extends OrganizationUserBulkPublicKeyResponse {}
|
export class ProviderUserBulkPublicKeyResponse extends OrganizationUserBulkPublicKeyResponse {}
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
export * from "./organization-user-bulk.request";
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OrganizationUserResetPasswordRequest } from "../../../admin-console/abstractions/organization-user/requests";
|
import { OrganizationUserResetPasswordRequest } from "@bitwarden/admin-console/common";
|
||||||
|
|
||||||
export class UpdateTdeOffboardingPasswordRequest extends OrganizationUserResetPasswordRequest {
|
export class UpdateTdeOffboardingPasswordRequest extends OrganizationUserResetPasswordRequest {
|
||||||
masterPasswordHint: string;
|
masterPasswordHint: string;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OrganizationUserResetPasswordRequest } from "../../../admin-console/abstractions/organization-user/requests";
|
import { OrganizationUserResetPasswordRequest } from "@bitwarden/admin-console/common";
|
||||||
|
|
||||||
export class UpdateTempPasswordRequest extends OrganizationUserResetPasswordRequest {
|
export class UpdateTempPasswordRequest extends OrganizationUserResetPasswordRequest {
|
||||||
masterPasswordHint: string;
|
masterPasswordHint: string;
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { mock, MockProxy } from "jest-mock-extended";
|
import { mock, MockProxy } from "jest-mock-extended";
|
||||||
import { BehaviorSubject } from "rxjs";
|
import { BehaviorSubject } from "rxjs";
|
||||||
|
|
||||||
|
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
|
||||||
|
|
||||||
import { UserId } from "../../../../common/src/types/guid";
|
import { UserId } from "../../../../common/src/types/guid";
|
||||||
import { OrganizationApiServiceAbstraction } from "../../admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "../../admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "../../admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationAutoEnrollStatusResponse } from "../../admin-console/models/response/organization-auto-enroll-status.response";
|
import { OrganizationAutoEnrollStatusResponse } from "../../admin-console/models/response/organization-auto-enroll-status.response";
|
||||||
import { CryptoService } from "../../platform/abstractions/crypto.service";
|
import { CryptoService } from "../../platform/abstractions/crypto.service";
|
||||||
import { I18nService } from "../../platform/abstractions/i18n.service";
|
import { I18nService } from "../../platform/abstractions/i18n.service";
|
||||||
@@ -17,7 +18,7 @@ describe("PasswordResetEnrollmentServiceImplementation", () => {
|
|||||||
let organizationApiService: MockProxy<OrganizationApiServiceAbstraction>;
|
let organizationApiService: MockProxy<OrganizationApiServiceAbstraction>;
|
||||||
let accountService: MockProxy<AccountService>;
|
let accountService: MockProxy<AccountService>;
|
||||||
let cryptoService: MockProxy<CryptoService>;
|
let cryptoService: MockProxy<CryptoService>;
|
||||||
let organizationUserService: MockProxy<OrganizationUserService>;
|
let organizationUserApiService: MockProxy<OrganizationUserApiService>;
|
||||||
let i18nService: MockProxy<I18nService>;
|
let i18nService: MockProxy<I18nService>;
|
||||||
let service: PasswordResetEnrollmentServiceImplementation;
|
let service: PasswordResetEnrollmentServiceImplementation;
|
||||||
|
|
||||||
@@ -26,13 +27,13 @@ describe("PasswordResetEnrollmentServiceImplementation", () => {
|
|||||||
accountService = mock<AccountService>();
|
accountService = mock<AccountService>();
|
||||||
accountService.activeAccount$ = activeAccountSubject;
|
accountService.activeAccount$ = activeAccountSubject;
|
||||||
cryptoService = mock<CryptoService>();
|
cryptoService = mock<CryptoService>();
|
||||||
organizationUserService = mock<OrganizationUserService>();
|
organizationUserApiService = mock<OrganizationUserApiService>();
|
||||||
i18nService = mock<I18nService>();
|
i18nService = mock<I18nService>();
|
||||||
service = new PasswordResetEnrollmentServiceImplementation(
|
service = new PasswordResetEnrollmentServiceImplementation(
|
||||||
organizationApiService,
|
organizationApiService,
|
||||||
accountService,
|
accountService,
|
||||||
cryptoService,
|
cryptoService,
|
||||||
organizationUserService,
|
organizationUserApiService,
|
||||||
i18nService,
|
i18nService,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -100,7 +101,7 @@ describe("PasswordResetEnrollmentServiceImplementation", () => {
|
|||||||
await service.enroll("orgId");
|
await service.enroll("orgId");
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
organizationUserService.putOrganizationUserResetPasswordEnrollment,
|
organizationUserApiService.putOrganizationUserResetPasswordEnrollment,
|
||||||
).toHaveBeenCalledWith(
|
).toHaveBeenCalledWith(
|
||||||
"orgId",
|
"orgId",
|
||||||
"userId",
|
"userId",
|
||||||
@@ -122,7 +123,7 @@ describe("PasswordResetEnrollmentServiceImplementation", () => {
|
|||||||
await service.enroll("orgId", "userId", { key: "key" } as any);
|
await service.enroll("orgId", "userId", { key: "key" } as any);
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
organizationUserService.putOrganizationUserResetPasswordEnrollment,
|
organizationUserApiService.putOrganizationUserResetPasswordEnrollment,
|
||||||
).toHaveBeenCalledWith(
|
).toHaveBeenCalledWith(
|
||||||
"orgId",
|
"orgId",
|
||||||
"userId",
|
"userId",
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
import { firstValueFrom, map } from "rxjs";
|
import { firstValueFrom, map } from "rxjs";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OrganizationUserApiService,
|
||||||
|
OrganizationUserResetPasswordEnrollmentRequest,
|
||||||
|
} from "@bitwarden/admin-console/common";
|
||||||
|
|
||||||
import { OrganizationApiServiceAbstraction } from "../../admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "../../admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import { OrganizationUserService } from "../../admin-console/abstractions/organization-user/organization-user.service";
|
|
||||||
import { OrganizationUserResetPasswordEnrollmentRequest } from "../../admin-console/abstractions/organization-user/requests";
|
|
||||||
import { CryptoService } from "../../platform/abstractions/crypto.service";
|
import { CryptoService } from "../../platform/abstractions/crypto.service";
|
||||||
import { I18nService } from "../../platform/abstractions/i18n.service";
|
import { I18nService } from "../../platform/abstractions/i18n.service";
|
||||||
import { Utils } from "../../platform/misc/utils";
|
import { Utils } from "../../platform/misc/utils";
|
||||||
@@ -17,7 +20,7 @@ export class PasswordResetEnrollmentServiceImplementation
|
|||||||
protected organizationApiService: OrganizationApiServiceAbstraction,
|
protected organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
protected accountService: AccountService,
|
protected accountService: AccountService,
|
||||||
protected cryptoService: CryptoService,
|
protected cryptoService: CryptoService,
|
||||||
protected organizationUserService: OrganizationUserService,
|
protected organizationUserApiService: OrganizationUserApiService,
|
||||||
protected i18nService: I18nService,
|
protected i18nService: I18nService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@@ -49,7 +52,7 @@ export class PasswordResetEnrollmentServiceImplementation
|
|||||||
const resetRequest = new OrganizationUserResetPasswordEnrollmentRequest();
|
const resetRequest = new OrganizationUserResetPasswordEnrollmentRequest();
|
||||||
resetRequest.resetPasswordKey = encryptedKey.encryptedString;
|
resetRequest.resetPasswordKey = encryptedKey.encryptedString;
|
||||||
|
|
||||||
await this.organizationUserService.putOrganizationUserResetPasswordEnrollment(
|
await this.organizationUserApiService.putOrganizationUserResetPasswordEnrollment(
|
||||||
organizationId,
|
organizationId,
|
||||||
userId,
|
userId,
|
||||||
resetRequest,
|
resetRequest,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["../admin-console/src"],
|
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["../angular/src/*"],
|
"@bitwarden/angular/*": ["../angular/src/*"],
|
||||||
"@bitwarden/auth/common": ["../auth/src/common"],
|
"@bitwarden/auth/common": ["../auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["../auth/src/angular"],
|
"@bitwarden/auth/angular": ["../auth/src/angular"],
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"@bitwarden/admin-console": ["./libs/admin-console/src"],
|
"@bitwarden/admin-console/common": ["./libs/admin-console/src/common"],
|
||||||
"@bitwarden/angular/*": ["./libs/angular/src/*"],
|
"@bitwarden/angular/*": ["./libs/angular/src/*"],
|
||||||
"@bitwarden/auth/common": ["./libs/auth/src/common"],
|
"@bitwarden/auth/common": ["./libs/auth/src/common"],
|
||||||
"@bitwarden/auth/angular": ["./libs/auth/src/angular"],
|
"@bitwarden/auth/angular": ["./libs/auth/src/angular"],
|
||||||
|
|||||||
Reference in New Issue
Block a user