Skip to content

Latest commit

 

History

History
111 lines (98 loc) · 1.86 KB

user.md

File metadata and controls

111 lines (98 loc) · 1.86 KB

User

The IUser interface represents the User object stored in the collection users

interface IUser {
	_id: string;
	createdAt: Date;
	roles: string[];
	type: string;
	active: boolean;
	username?: string;
	name?: string;
	services?: IUserServices;
	emails?: IUserEmail[];
	status?: string;
	statusConnection?: string;
	lastLogin?: Date;
	avatarOrigin?: string;
	utcOffset?: number;
	language?: string;
	statusDefault?: string;
	oauth?: {
		authorizedClients: string[];
	};
	_updatedAt?: Date;
	statusLivechat?: string;
	e2e?: {
		private_key: string;
		public_key: string;
	};
	requirePasswordChange?: boolean;
	customFields?: {
		[key: string]: any;
	};
	settings?: IUserSettings;
}

The following sub-interfaces are used by the IUser interface

interface ILoginToken {
	hashedToken: string;
	twoFactorAuthorizedUntil?: Date;
	twoFactorAuthorizedHash?: string;
}

interface IMeteorLoginToken extends ILoginToken {
	when: Date;
}

interface IPersonalAccessToken extends ILoginToken {
	type: 'personalAccessToken';
	createdAt: Date;
	lastTokenPart: string;
	name?: string;
	bypassTwoFactor?: boolean;
}

interface IUserEmailVerificationToken {
	token: string;
	address: string;
	when: Date;
}

interface IUserEmailCode {
	code: string;
	expire: Date;
}

type LoginToken = ILoginToken & IPersonalAccessToken;

interface IUserServices {
	password?: {
		bcrypt: string;
	};
	email?: {
		verificationTokens?: IUserEmailVerificationToken[];
	};
	resume?: {
		loginTokens?: LoginToken[];
	};
	google?: any;
	facebook?: any;
	github?: any;
	totp?: {
		enabled: boolean;
		hashedBackup: string[];
		secret: string;
	};
	email2fa?: {
		enabled: boolean;
		changedAt: Date;
	};
	emailCode: IUserEmailCode[];
}

interface IUserEmail {
	address: string;
	verified: boolean;
}

interface IUserSettings {
	profile: any;
	preferences: {
		[key: string]: any;
	};
}