mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 20:30:33 +00:00
fix(server): prevent deleting last user in the tenant
This commit is contained in:
26
packages/server/src/services/Users/SyncTenantUserDeleted.ts
Normal file
26
packages/server/src/services/Users/SyncTenantUserDeleted.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import events from '@/subscribers/events';
|
||||
import { ITenantUserDeletedPayload } from '@/interfaces';
|
||||
import { SystemUser } from '@/system/models';
|
||||
|
||||
export class SyncTenantUserDelete {
|
||||
/**
|
||||
* Attaches events with handlers.
|
||||
* @param bus
|
||||
*/
|
||||
public attach(bus) {
|
||||
bus.subscribe(
|
||||
events.tenantUser.onDeleted,
|
||||
this.syncSystemUserOnceUserDeleted
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the system user once tenant user be deleted.
|
||||
* @param {ITenantUserDeletedPayload} payload -
|
||||
*/
|
||||
private syncSystemUserOnceUserDeleted = async ({
|
||||
tenantUser,
|
||||
}: ITenantUserDeletedPayload) => {
|
||||
await SystemUser.query().where('id', tenantUser.systemUserId).delete();
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user