The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/packages/rocketchat-lib/lib/getUserPreference.js

19 lines
729 B

/**
* Tries to retrieve the user preference falling back to a default system
* value or to a default value if it is passed as argument
*/
RocketChat.getUserPreference = function(user, key, defaultValue = undefined) {
let preference;
if (typeof user === typeof '') {
user = RocketChat.models.Users.findOne(user, { fields: { [`settings.preferences.${ key }`]: 1 } });
}
if (user && user.settings && user.settings.preferences &&
user.settings.preferences.hasOwnProperty(key)) {
preference = user.settings.preferences[key];
} else if (defaultValue === undefined) {
preference = RocketChat.settings.get(`Accounts_Default_User_Preferences_${ key }`);
}
return preference !== undefined ? preference : defaultValue;
};