@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
91 lines (90 loc) • 2.39 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isBlocked = exports.isStaff = exports.isEditor = exports.isModerator = exports.isCommunityCreator = exports.isAdmin = exports.getUserRole = exports.COMMUNITY_CREATOR = exports.EDITOR_ROLE = exports.MODERATOR_ROLE = exports.ADMIN_ROLE = void 0;
const types_1 = require("@selfcommunity/types");
/**
* Staff Roles
* @type {string}
*/
exports.ADMIN_ROLE = 'admin';
exports.MODERATOR_ROLE = 'moderator';
exports.EDITOR_ROLE = 'editor';
exports.COMMUNITY_CREATOR = 1;
/**
* Get user role from roles(set)
* @param user
* @returns role or null
*/
function getUserRole(user) {
if (user && user.role) {
const role = user.role;
if (role === exports.ADMIN_ROLE) {
return exports.ADMIN_ROLE;
}
else if (role === exports.MODERATOR_ROLE) {
return exports.MODERATOR_ROLE;
}
else if (role === exports.EDITOR_ROLE) {
return exports.EDITOR_ROLE;
}
}
return null;
}
exports.getUserRole = getUserRole;
/**
* Check if user is admin
* @param user
* @returns boolean
*/
function isAdmin(user) {
return getUserRole(user) === exports.ADMIN_ROLE;
}
exports.isAdmin = isAdmin;
/**
* Check if user is admin
* @param user
* @returns boolean
*/
function isCommunityCreator(user) {
return user && user.id === exports.COMMUNITY_CREATOR;
}
exports.isCommunityCreator = isCommunityCreator;
/**
* Check if user is moderator
* @param user
* @returns boolean
*/
function isModerator(user) {
return getUserRole(user) === exports.MODERATOR_ROLE;
}
exports.isModerator = isModerator;
/**
* Check if user is editor
* @param user
* @returns boolean
*/
function isEditor(user) {
return getUserRole(user) === exports.EDITOR_ROLE;
}
exports.isEditor = isEditor;
/**
* Check if user is admin or moderator
* @param user
* @returns boolean
*/
function isStaff(user) {
return isAdmin(user) || isModerator(user) || isEditor(user);
}
exports.isStaff = isStaff;
/**
* Check if user is blocked/banned
* User status values:
* a (approved), b (blocked), d (deleted; soft deleted),
* u (unregistered; hard deleted). Default: a.
* @param user
* @returns {*}
*/
function isBlocked(user) {
return user && user.status && user.status === types_1.SCUserStatus.BLOCKED;
}
exports.isBlocked = isBlocked;
;