Files
app/ts/reception/classes.organization.ts
T

41 lines
1.1 KiB
TypeScript
Raw Normal View History

import * as plugins from '../plugins.js';
2024-09-29 13:56:38 +02:00
import { OrganizationManager } from './classes.organizationmanager.js';
import { User } from './classes.user.js';
@plugins.smartdata.Manager()
export class Organization extends plugins.smartdata.SmartDataDbDoc<
Organization,
plugins.idpInterfaces.data.IOrganization,
2024-09-29 13:56:38 +02:00
OrganizationManager
> {
public static async createNewOrganizationForUser(
organizationManagerArg: OrganizationManager,
userIdArg: string,
orgNameArg: string,
slugNameArg: string,
) {
const newOrg = new Organization();
newOrg.id = plugins.smartunique.shortId();
newOrg.data = {
name: orgNameArg,
slug: slugNameArg,
billingPlanId: null,
roleIds: [],
}
await newOrg.save();
return newOrg;
}
// INSTANCE
@plugins.smartdata.unI()
id: plugins.idpInterfaces.data.IOrganization['id'];
2024-09-29 13:56:38 +02:00
@plugins.smartdata.svDb()
data: plugins.idpInterfaces.data.IOrganization['data'];
2024-09-29 13:56:38 +02:00
public async checkIfUserIsAdmin(userArg: User) {
const role = await this.manager.receptionRef.roleManager.getRoleForUserAndOrg(userArg, this);
return role.data.role === 'admin';
}
}