UNPKG

baqend

Version:

Baqend JavaScript SDK

60 lines (53 loc) 1.37 kB
import type * as model from '../model'; import { User } from './User'; import { Entity } from './Entity'; import { enumerable } from '../util/enumerable'; export class Role extends Entity { /** * A set of users which have this role */ public users: Set<model.User> | null = null; /** * The name of the role */ public name: string | null = null; /** * Test if the given user has this role * @param user The user to check * @return <code>true</code> if the given user has this role, * otherwise <code>false</code> */ @enumerable(false) hasUser(user: model.User): boolean { return !!this.users && this.users.has(user); } /** * Add the given user to this role * @param user The user to add */ @enumerable(false) addUser(user: model.User): void { if (user instanceof User) { if (!this.users) { this.users = new Set(); } this.users.add(user); } else { throw new Error('Only user instances can be added to a role.'); } } /** * Remove the given user from this role * @param user The user to remove */ @enumerable(false) removeUser(user: model.User): void { if (user instanceof User) { if (this.users) { this.users.delete(user); } } else { throw new Error('Only user instances can be removed from a role.'); } } }