UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

125 lines 7.08 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PolicyMapper = void 0; const user_group_policy_1 = require("../contracts/policies/user-group-policy"); const user_policy_1 = require("../contracts/policies/user-policy"); const internal_error_1 = require("../errors/internal-error"); const guard_1 = __importDefault(require("../guard")); const policy_resource_1 = require("../models/policies/policy-resource"); const mapping_utilities_1 = require("./mapping-utilities"); const member_security_mapper_1 = require("./member-security-mapper"); const rules_mapper_1 = require("./rules-mapper"); class PolicyMapper { /** * Map a policy resource to a user group policy instance. * @param client - An instance of an extended Content Hub client * @param ruleResource - A policy resource * @returns a user group policy or null. */ static mapToUserGroupPolicyAsync(client, policyResource) { return __awaiter(this, void 0, void 0, function* () { if (policyResource == null) { return null; } guard_1.default.notNullOrUndefined(policyResource.userGroup); const userGroupId = yield client.linkHelper.idFromEntityAsync(policyResource.userGroup); guard_1.default.notNull(userGroupId); guard_1.default.validId(userGroupId); const createdBy = yield client.linkHelper.idFromEntityAsync(policyResource.createdBy); const modifiedBy = yield client.linkHelper.idFromEntityAsync(policyResource.modifiedBy); const memberSecurity = yield member_security_mapper_1.MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberSecurity); const memberGroupSecurity = yield member_security_mapper_1.MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberGroupSecurity); const rules = yield rules_mapper_1.RulesMapper.mapToRulesAsync(client, policyResource.rules); const userGroupPolicy = new user_group_policy_1.UserGroupPolicy({ memberSecurity: memberSecurity, memberGroupSecurity: memberGroupSecurity, rules: rules, userGroupId: userGroupId, createdBy: createdBy, createdOn: mapping_utilities_1.MappingUtilities.toNullableDate(policyResource.createdOn), modifiedBy: modifiedBy, modifiedOn: mapping_utilities_1.MappingUtilities.toNullableDate(policyResource.modifiedOn), }); return userGroupPolicy; }); } /** * Map a policy resource to a user policy instance. * @param client - An instance of an extended Content Hub client * @param policyResource - A policy resource * @returns a user policy or null. */ static mapToUserPolicyAsync(client, policyResource) { return __awaiter(this, void 0, void 0, function* () { if (policyResource == null) { return null; } guard_1.default.notNullOrUndefined(policyResource.user); const userId = yield client.linkHelper.idFromEntityAsync(policyResource.user); guard_1.default.notNull(userId); guard_1.default.validId(userId); const createdBy = yield client.linkHelper.idFromEntityAsync(policyResource.createdBy); const modifiedBy = yield client.linkHelper.idFromEntityAsync(policyResource.modifiedBy); const memberSecurity = yield member_security_mapper_1.MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberSecurity); const memberGroupSecurity = yield member_security_mapper_1.MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberGroupSecurity); const rules = yield rules_mapper_1.RulesMapper.mapToRulesAsync(client, policyResource.rules); const userPolicy = new user_policy_1.UserPolicy({ memberSecurity: memberSecurity, memberGroupSecurity: memberGroupSecurity, rules: rules, userId: userId, createdBy: createdBy, createdOn: mapping_utilities_1.MappingUtilities.toNullableDate(policyResource.createdOn), modifiedBy: modifiedBy, modifiedOn: mapping_utilities_1.MappingUtilities.toNullableDate(policyResource.modifiedOn), }); return userPolicy; }); } /** * Map a user (group) policy instance to a policy resource. * @param client - An instance of an extended Content Hub client * @param policy - A user policy or user group policy instance * @returns A policy resource. */ static mapToResourceAsync(client, policy) { return __awaiter(this, void 0, void 0, function* () { if (policy == null) { return null; } const rules = yield rules_mapper_1.RulesMapper.mapToRuleResourcesAsync(client, policy.rules); const resource = new policy_resource_1.PolicyResource(); resource.rules = rules; if (policy instanceof user_policy_1.UserPolicy) { const user = yield client.linkHelper.entityToLinkAsync(policy.userId); resource.user = user; } else if (policy instanceof user_group_policy_1.UserGroupPolicy) { const userGroup = yield client.linkHelper.entityToLinkAsync(policy.userGroupId); resource.userGroup = userGroup; } else { throw new internal_error_1.InternalError("Policy type is not supported."); } const memberSecurity = yield member_security_mapper_1.MemberSecurityMapper.mapToMemberPolicyResourcesAsync(client, policy.memberSecurity); resource.memberSecurity = memberSecurity; const groupSecurity = yield member_security_mapper_1.MemberSecurityMapper.mapToMemberPolicyResourcesAsync(client, policy.memberGroupSecurity); resource.memberGroupSecurity = groupSecurity; return resource; }); } } exports.PolicyMapper = PolicyMapper; //# sourceMappingURL=policy-mapper.js.map