mirror of
https://github.com/bitwarden/browser
synced 2025-12-30 07:03:26 +00:00
* enforce restrictions based on collection type, set default collection type * fix ts strict errors * fix default collection enforcement in vault header * enforce default collection restrictions in vault collection row * enforce default collection restrictions in AC vault header * enforce default collection restriction for select all * fix ts strict error * switch to signal, fix feature flag * fix story * clean up * remove feature flag, move check for defaultCollecion to CollecitonView * fix test * remove unused configService * fix test: coerce null to undefined for collection Id * clean up leaky abstraction for default collection * fix ts-strict error * fix parens * add new property to models, update logic, refactor for ts-strict * fix type * rename defaultCollection getter * clean up * clean up * clean up, add comment, fix submit * add comment * add feature flag * check model for name * cleanup readonly logic, remove featureflag logic * wip * refactor CollectionRequest into Create and Update models * fix readonly logic * cleanup * set defaultUserCollectionEmail in decryption from Collection * split save into update/create methods * fix readonly logic * fix collections post and put requests * add defaultUserCollection email to model when submitting collection dialog
61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { SelectionReadOnlyRequest } from "@bitwarden/common/admin-console/models/request/selection-read-only.request";
|
|
import { EncString } from "@bitwarden/common/key-management/crypto/models/enc-string";
|
|
|
|
export abstract class BaseCollectionRequest {
|
|
externalId: string | undefined;
|
|
groups: SelectionReadOnlyRequest[] = [];
|
|
users: SelectionReadOnlyRequest[] = [];
|
|
|
|
static isUpdate = (request: BaseCollectionRequest): request is UpdateCollectionRequest => {
|
|
return request instanceof UpdateCollectionRequest;
|
|
};
|
|
|
|
protected constructor(c: {
|
|
users?: SelectionReadOnlyRequest[];
|
|
groups?: SelectionReadOnlyRequest[];
|
|
externalId?: string;
|
|
}) {
|
|
this.externalId = c.externalId;
|
|
|
|
if (c.groups) {
|
|
this.groups = c.groups;
|
|
}
|
|
if (c.users) {
|
|
this.users = c.users;
|
|
}
|
|
}
|
|
}
|
|
|
|
export class CreateCollectionRequest extends BaseCollectionRequest {
|
|
name: string;
|
|
|
|
constructor(c: {
|
|
name: EncString;
|
|
users?: SelectionReadOnlyRequest[];
|
|
groups?: SelectionReadOnlyRequest[];
|
|
externalId?: string;
|
|
}) {
|
|
super(c);
|
|
|
|
if (!c.name || !c.name.encryptedString) {
|
|
throw new Error("Name not provided for CollectionRequest.");
|
|
}
|
|
|
|
this.name = c.name.encryptedString;
|
|
}
|
|
}
|
|
|
|
export class UpdateCollectionRequest extends BaseCollectionRequest {
|
|
name: string | null;
|
|
|
|
constructor(c: {
|
|
name: EncString | null;
|
|
users?: SelectionReadOnlyRequest[];
|
|
groups?: SelectionReadOnlyRequest[];
|
|
externalId?: string;
|
|
}) {
|
|
super(c);
|
|
this.name = c.name?.encryptedString ?? null;
|
|
}
|
|
}
|