0.1.6•Updated a month ago
export interface DracoUser extends Draco.UserInterface {}
export class DracoUser implements Draco.User {
constructor(params: Draco.UserInterface) {
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 custom_color() {
return `hsl(${parseInt(this.name, 36) % 360}, 70%, 80%)`;
}
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));
}
}