The IUser interface represents the User object defining the properties and their types that can be associated with a user. User information is stored in the users
collection on MongoDB.
Main Interface
The main interface of a User object.
interface IUser {
_id: string;
createdAt: Date;
roles: IRole['_id'][];
type: string;
active: boolean;
username?: string;
nickname?: string;
name?: string;
services?: IUserServices;
emails?: IUserEmail[];
status?: UserStatus;
statusConnection?: string;
lastLogin?: Date;
bio?: string;
avatarOrigin?: string;
avatarETag?: string;
avatarUrl?: string;
utcOffset?: number;
language?: string;
statusDefault?: UserStatus;
statusText?: string;
oauth?: {
authorizedClients: string[];
};
_updatedAt: Date;
e2e?: {
private_key: string;
public_key: string;
};
requirePasswordChange?: boolean;
customFields?: {
[key: string]: any;
};
settings?: IUserSettings;
defaultRoom?: string;
ldap?: boolean;
extension?: string;
inviteToken?: string;
canViewAllInfo?: boolean;
phone?: string;
reason?: string;
federated?: boolean;
federation?: {
avatarUrl?: string;
searchedServerNames?: string[];
};
banners?: {
[key: string]: {
id: string;
priority: number;
title: string;
text: string;
textArguments?: string[];
modifiers: ('large' | 'danger')[];
link: string;
read?: boolean;
};
};
importIds?: string[];
}
For more information and details on the Interface and sub-Interfaces, see the code here
{% embed url="https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/core-typings/src/IUser.ts" %}
Example Object
{
"_id": "gzvcvpov9G4TxbGFS",
"createdAt": {
"$date": "2023-03-02T17:59:43.415Z"
},
"services": {
"password": {
"bcrypt": "$2b$10$u..."
},
"email2fa": {
"enabled": true,
"changedAt": {
"$date": "2023-03-02T17:59:43.415Z"
}
},
"resume": {
"loginTokens": []
}
},
"username": "demouser",
"emails": [
{
"address": "demo@email.com",
"verified": true
}
],
"type": "user",
"status": "offline",
"active": true,
"_updatedAt": {
"$date": "2023-03-02T18:47:15.205Z"
},
"__rooms": [
"GENERAL"
],
"roles": [
"user"
],
"name": "demouser",
"requirePasswordChange": false,
"settings": {},
"lastLogin": {
"$date": "2023-03-02T18:14:28.122Z"
},
"statusConnection": "offline",
"e2e": {
"private_key": "{\"$binary\":\"m4E7yE/...==\"}",
"public_key": "{\"alg\":\"RSA-OAEP-256\",\"e\":\"AQAB\",\"ext\":true,\"key_ops\":[\"encrypt\"],\"kty\":\"RSA\",\"n\":\"0pbPAF67...w\"}"
},
"utcOffset": 1
}
The User object has these fields with the following data types.
Field | Data Type | Description |
---|---|---|
_id | string | The unique identifier for the user. |
createdAt | Date | The date and time when the user was created. |
roles | Array of strings | An array of role IDs associated with the user. Eg "user", "admin", “livechat-agent” |
type | string | The type of user. E.g. “user”, “app” or “bot” |
active | boolean | Indicates whether the user is active or not. |
username | string | The username of the user. |
nickname | string | The nickname of the user. |
name | string | The name of the user. |
services | object | Additional services associated with the user. |
emails | Array of objects | An array of email objects associated with the user. |
status | string | The status of the user. |
statusConnection | string | The status connection of the user. |
lastLogin | Date | The date and time of the user's last login. |
bio | string | The biography or description of the user. |
avatarOrigin | string | The origin of the user's avatar. |
avatarETag | string | The ETag of the user's avatar. |
avatarUrl | string | The URL of the user's avatar. |
utcOffset | number | The UTC offset of the user's timezone. |
language | string | The language preference of the user. |
statusDefault | string | The default status of the user. |
statusText | string | The custom status text of the user. |
oauth | object | OAuth information associated with the user. |
_updatedAt | Date | The date and time when the user object was last updated. |
e2e | object | End-to-end encryption information associated with the user. |
requirePasswordChange | boolean | Indicates whether the user needs to change their password. |
customFields | object | Additional custom fields associated with the user. |
settings | object | User-specific settings. |
defaultRoom | string | The ID of the user's default room. |
ldap | boolean | Indicates whether the user is an LDAP user. |
extension | string | The extension associated with the user. |
inviteToken | string | The token for inviting the user. |
canViewAllInfo | boolean | Indicates whether the user can view all information. |
phone | string | The phone number associated with the user. |
reason | string | The reason associated with the user. |
federated | boolean | Indicates whether the user is a federated user. |
federation | object | Federation information associated with the user. |
banners | object | Banner information associated with the user. |
importIds | Array of strings | An array of import IDs associated with the user. |