chore: vault member permissions (#2509)

This commit is contained in:
Aman Harwara
2023-09-18 19:53:34 +05:30
committed by GitHub
parent 2af610c7bf
commit 48e7820100
32 changed files with 331 additions and 94 deletions

View File

@@ -172,6 +172,8 @@ import { EncryptionOperators } from '@standardnotes/encryption'
import { AsymmetricMessagePayload, AsymmetricMessageSharedVaultInvite } from '@standardnotes/models'
import { PureCryptoInterface } from '@standardnotes/sncrypto-common'
import { AuthorizeVaultDeletion } from '@standardnotes/services/src/Domain/Vault/UseCase/AuthorizeVaultDeletion'
import { IsVaultAdmin } from '@standardnotes/services/src/Domain/VaultUser/UseCase/IsVaultAdmin'
import { IsReadonlyVaultMember } from '@standardnotes/services/src/Domain/VaultUser/UseCase/IsReadonlyVaultMember'
export class Dependencies {
private factory = new Map<symbol, () => unknown>()
@@ -335,6 +337,17 @@ export class Dependencies {
return new IsVaultOwner(this.get<UserService>(TYPES.UserService))
})
this.factory.set(TYPES.IsVaultAdmin, () => {
return new IsVaultAdmin(this.get<UserService>(TYPES.UserService), this.get<VaultUserCache>(TYPES.VaultUserCache))
})
this.factory.set(TYPES.IsReadonlyVaultMember, () => {
return new IsReadonlyVaultMember(
this.get<UserService>(TYPES.UserService),
this.get<VaultUserCache>(TYPES.VaultUserCache),
)
})
this.factory.set(TYPES.DecryptBackupFile, () => {
return new DecryptBackupFile(
this.get<EncryptionService>(TYPES.EncryptionService),
@@ -844,6 +857,8 @@ export class Dependencies {
this.get<GetVaultUsers>(TYPES.GetVaultUsers),
this.get<RemoveVaultMember>(TYPES.RemoveVaultMember),
this.get<IsVaultOwner>(TYPES.IsVaultOwner),
this.get<IsVaultAdmin>(TYPES.IsVaultAdmin),
this.get<IsReadonlyVaultMember>(TYPES.IsReadonlyVaultMember),
this.get<GetVault>(TYPES.GetVault),
this.get<LeaveVault>(TYPES.LeaveVault),
this.get<InternalEventBus>(TYPES.InternalEventBus),

View File

@@ -43,6 +43,7 @@ export function RegisterApplicationServicesEvents(container: Dependencies, event
events.addEventHandler(container.get(TYPES.VaultInviteService), ApplicationEvent.Launched)
events.addEventHandler(container.get(TYPES.VaultInviteService), SyncEvent.ReceivedSharedVaultInvites)
events.addEventHandler(container.get(TYPES.VaultInviteService), WebSocketsServiceEvent.UserInvitedToSharedVault)
events.addEventHandler(container.get(TYPES.VaultUserService), ApplicationEvent.CompletedFullSync)
if (container.get(TYPES.FilesBackupService)) {
events.addEventHandler(container.get(TYPES.FilesBackupService), ApplicationEvent.ApplicationStageChanged)

View File

@@ -152,6 +152,8 @@ export const TYPES = {
EncryptTypeAPayloadWithKeyLookup: Symbol.for('EncryptTypeAPayloadWithKeyLookup'),
DecryptBackupFile: Symbol.for('DecryptBackupFile'),
IsVaultOwner: Symbol.for('IsVaultOwner'),
IsVaultAdmin: Symbol.for('IsVaultAdmin'),
IsReadonlyVaultMember: Symbol.for('IsReadonlyVaultMember'),
RemoveItemsFromMemory: Symbol.for('RemoveItemsFromMemory'),
ReencryptTypeAItems: Symbol.for('ReencryptTypeAItems'),
DecryptErroredPayloads: Symbol.for('DecryptErroredPayloads'),