fix(server): prevent deleting last user in the tenant

This commit is contained in:
a.bouhuolia
2023-04-14 03:41:11 +02:00
parent cc863f774a
commit 8de3717587
7 changed files with 55 additions and 38 deletions

View 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();
};
}