UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

39 lines (38 loc) 1.55 kB
"use strict"; // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.getMySystemPermissions = exports.getMySystemRoles = void 0; exports.getRoles = getRoles; exports.haveISystemPermission = haveISystemPermission; exports.getPermissionsForRoles = getPermissionsForRoles; const create_selector_1 = require("mattermost-redux/selectors/create_selector"); const common_1 = require("mattermost-redux/selectors/entities/common"); function getRoles(state) { return state.entities.roles.roles; } exports.getMySystemRoles = (0, create_selector_1.createSelector)('getMySystemRoles', common_1.getCurrentUser, (user) => { if (user) { return new Set(user.roles.split(' ')); } return new Set(); }); exports.getMySystemPermissions = (0, create_selector_1.createSelector)('getMySystemPermissions', exports.getMySystemRoles, getRoles, (mySystemRoles, allRoles) => { return getPermissionsForRoles(allRoles, mySystemRoles); }); function haveISystemPermission(state, options) { return (0, exports.getMySystemPermissions)(state).has(options.permission); } function getPermissionsForRoles(allRoles, roleSet) { const permissions = new Set(); for (const roleName of roleSet) { const role = allRoles[roleName]; if (!role) { continue; } for (const permission of role.permissions) { permissions.add(permission); } } return permissions; }