0.1.3•Updated 6 months ago
export interface I_DracoUser {
id?: number
name: string
surname: string
email: string
image_path?: string
permissions: string[]
}
export interface DracoUser extends I_DracoUser {}
export class DracoUser {
constructor(params: I_DracoUser) {
this.id = params.id;
this.name = params.name;
this.surname = params.surname;
this.email = params.email;
this.image_path = params.image_path;
this.permissions = params.permissions;
}
get names() {
return `${this.name} ${this.surname}`;
}
get is_admin() {
return this.permissions.includes('*');
}
has_permission(permission: string) {
return this.is_admin || this.permissions.includes(permission);
}
has_one_permission_of(...permissions: string[]) {
return this.is_admin || permissions.some(permission => this.permissions.includes(permission));
}
has_all_permission_of(...permissions: string[]) {
return this.is_admin || permissions.every(permission => this.permissions.includes(permission));
}
}