UNPKG

@selfcommunity/react-core

Version:

React Core Components useful for integrating UI Community components (react-ui).

91 lines (90 loc) 2.39 kB
"use strict"; 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;