baqend
Version:
Baqend JavaScript SDK
60 lines (53 loc) • 1.37 kB
text/typescript
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>
*/
(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
*/
(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
*/
(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.');
}
}
}