From aac4177a6c841bc0c763efad631422b0e69edf99 Mon Sep 17 00:00:00 2001 From: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com> Date: Mon, 27 Nov 2023 12:08:25 -0600 Subject: [PATCH] [AC-1179][AC-1738] Event log for collection management setting (#6699) * [AC-1117] Add manage permission (#5910) * Add 'manage' option to collection access permissions * Add 'manage' to collection permissions * remove service accidentally committed from another branch * Update CLI commands * update message casing to be consistent * access selector model updates * [AC-1374] Limit collection create/delete (#5963) * feat: udate request/response/data/domain models for new column, refs AC-1374 * feat: create collection management ui, refs AC-1374 * fix: remove limitCollectionCdOwnerAdmin boolean from org update request, refs AC-1374 * fix: moved collection management UI, removed comments, refs AC-1374 * fix: observable chaining now properly calls API when local org updated, refs AC-1374 * fix: remove unused form template variables, refs AC-1374 * fix: clean up observable chain, refs AC-1374 * fix: remove parent.parent route, refs AC-1374 * fix: add cd explaination, refs AC-1374 * [AC-1649] Remove organizationId from collection-bulk-delete.request (#6343) * refactor: remove organizationId from collection-bulk-delete-request, refs AC-1649 * refactor: remove request model from dialog component, refs AC-1649 * [AC-1174] Bulk collection management (#6133) * [AC-1174] Add bulk edit collection access event type * [AC-1174] Add bulk edit collection access menu option * [AC-1174] Add initial bulk collections access dialog * [AC-1174] Add logic to open bulk edit collections dialog * [AC-1174] Move AccessItemView helper methods to access selector model to be shared * [AC-1174] Add access selector to bulk collections dialog * [AC-1174] Add bulk assign access method to collection-admin service * [AC-1174] Introduce strongly typed BulkCollectionAccessRequest model * [AC-1174] Update vault item event type name * Update DialogService dependency --------- Co-authored-by: Thomas Rittson * Rename LimitCollectionCdOwnerAdmin -> LimitCollectionCreationDeletion (#6409) * Add manage property to synced Collection data * Revert "Add manage property to synced Collection data" Pushed to feature branch instead of a new one This reverts commit 65cd39589cbeca154e0d469be46c006ba4fab0d7. * Add manage property to synced Collection data * Revert "Add manage property to synced Collection data" This reverts commit f7fa30b79a83a0193398e31bf353b41985b41e23. * [AC-1680] Add manage property to collection view and response models (#6417) * Add manage property to synced Collection data * Update tests * feat: add LimitCollectionCreationDeletion conditional to canCreateNewCollections logic, refs AC-1659 (#6429) * [AC-1669] Enforce Can Manage permission on Collection dialog (#6493) * [AC-1669] Cleanup unhandled promise warnings * [AC-1669] Force change detection to ensure AccessSelector has the most recent items * [AC-1669] Initially select acting member when creating a new collection * [AC-1669] Add validator to ensure manage permission is selected * [AC-1669] Update error toast logic to support access tab errors * [AC-1669] Add error icon * [AC-1713] [Flexible collections] Add feature flags to clients (#6486) * Add FlexibleCollections and BulkCollectionAccess flags * Flag Collection Management settings * Flag bulk collection access dialog * Flag collection access modal changes * feat: update event type with new collection management event, refs AC-1179 * [AC-1662] Add LimitCollecitonCreationDeletion conditional to CanDelete logic (#6526) * feat: implement limitCollectionCreationDeletion into canDelete logic, refs AC-1662 * feat: make canDelete functions backwards compatible with feature flag, refs AC-1662 * feat: update vault-items.component for async getter, refs AC-1662 * feat: update configService injection, refs AC-1662 * feat: add config service to canDelete reference, refs AC-1662 * fix: remove configservice dependency from views, refs AC-1757 (#6686) * feat: add new event type and update event service, refs AC-1179 * Add missing provider to vault-items.stories (#6690) * fix: enum typo and name scheme, refs AC-1179 * fix: update message example, refs AC-1179 * fix: modifiedCollectionManagement message example, refs AC-1179 --------- Co-authored-by: Robyn MacCallum Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Co-authored-by: Thomas Rittson Co-authored-by: Shane Melton --- apps/web/src/app/core/event.service.ts | 15 +++++++++++++++ apps/web/src/locales/en/messages.json | 9 +++++++++ libs/common/src/enums/event-type.enum.ts | 1 + 3 files changed, 25 insertions(+) diff --git a/apps/web/src/app/core/event.service.ts b/apps/web/src/app/core/event.service.ts index de75ddc7b4..852a1f2fcb 100644 --- a/apps/web/src/app/core/event.service.ts +++ b/apps/web/src/app/core/event.service.ts @@ -352,6 +352,14 @@ export class EventService { case EventType.Organization_SponsorshipsSynced: msg = humanReadableMsg = this.i18nService.t("sponsorshipsSynced"); break; + case EventType.Organization_CollectionManagementUpdated: + msg = this.i18nService.t("modifiedCollectionManagement", this.formatOrganizationId(ev)); + humanReadableMsg = this.i18nService.t( + "modifiedCollectionManagement", + this.getShortId(ev.organizationId) + ); + break; + // Policies case EventType.Policy_Updated: { msg = this.i18nService.t("modifiedPolicyId", this.formatPolicyId(ev)); @@ -569,6 +577,13 @@ export class EventService { return a.outerHTML; } + private formatOrganizationId(ev: EventResponse) { + const shortId = this.getShortId(ev.organizationId); + const a = this.makeAnchor(shortId); + a.setAttribute("href", "#/organizations/" + ev.organizationId + "/settings/account"); + return a.outerHTML; + } + private formatPolicyId(ev: EventResponse) { const shortId = this.getShortId(ev.policyId); const a = this.makeAnchor(shortId); diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index 891551b590..604aedd38f 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -7404,6 +7404,15 @@ "passkeyNotCopiedAlert": { "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" }, + "modifiedCollectionManagement": { + "message": "Modified collection management setting $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Unique ID" + } + } + }, "seeDetailedInstructions": { "message": "See detailed instructions on our help site at", "description": "This is followed a by a hyperlink to the help website." diff --git a/libs/common/src/enums/event-type.enum.ts b/libs/common/src/enums/event-type.enum.ts index 3232d885dc..8b541ec3cb 100644 --- a/libs/common/src/enums/event-type.enum.ts +++ b/libs/common/src/enums/event-type.enum.ts @@ -64,6 +64,7 @@ export enum EventType { Organization_EnabledKeyConnector = 1606, Organization_DisabledKeyConnector = 1607, Organization_SponsorshipsSynced = 1608, + Organization_CollectionManagementUpdated = 1609, Policy_Updated = 1700,