@enonic/mock-xp
Version:
Mock Enonic XP API JavaScript Library
56 lines (49 loc) • 1.25 kB
text/typescript
import type {
User as UserInterface,
} from '@enonic-types/lib-auth';
import {Principal} from './Principal';
export declare interface UserConstructorParams {
displayName: Principal['displayName']
idProvider: UserInterface['idProvider']
key: UserInterface['key']
login: UserInterface['login']
// Optional
email?: UserInterface['email']
disabled?: UserInterface['disabled']
modifiedTime?: Principal['modifiedTime']
}
export class User extends Principal implements UserInterface {
// Constrict Principal
declare readonly key: UserInterface['key'];
readonly type = 'user';
// Extend Principal
readonly idProvider: UserInterface['idProvider'];
readonly login: UserInterface['login'];
// Optional
readonly disabled: UserInterface['disabled'] = false;
readonly email?: UserInterface['email'];
readonly hasPassword: boolean = false;
constructor({
// Principal
displayName,
key,
modifiedTime,
// Extensions
email,
idProvider,
login,
// Optional
disabled = false,
}: UserConstructorParams) {
super({
displayName,
key,
type: 'user',
});
this.disabled = disabled;
this.email = email;
this.idProvider = idProvider;
this.login = login;
this.modifiedTime = modifiedTime;
} // constructor
}