UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

118 lines 6.31 kB
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()); }); }; import { UserGroupPolicy } from "../contracts/policies/user-group-policy"; import { UserPolicy } from "../contracts/policies/user-policy"; import { InternalError } from "../errors/internal-error"; import Guard from "../guard"; import { PolicyResource } from "../models/policies/policy-resource"; import { MappingUtilities } from "./mapping-utilities"; import { MemberSecurityMapper } from "./member-security-mapper"; import { RulesMapper } from "./rules-mapper"; export 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.notNullOrUndefined(policyResource.userGroup); const userGroupId = yield client.linkHelper.idFromEntityAsync(policyResource.userGroup); Guard.notNull(userGroupId); Guard.validId(userGroupId); const createdBy = yield client.linkHelper.idFromEntityAsync(policyResource.createdBy); const modifiedBy = yield client.linkHelper.idFromEntityAsync(policyResource.modifiedBy); const memberSecurity = yield MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberSecurity); const memberGroupSecurity = yield MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberGroupSecurity); const rules = yield RulesMapper.mapToRulesAsync(client, policyResource.rules); const userGroupPolicy = new UserGroupPolicy({ memberSecurity: memberSecurity, memberGroupSecurity: memberGroupSecurity, rules: rules, userGroupId: userGroupId, createdBy: createdBy, createdOn: MappingUtilities.toNullableDate(policyResource.createdOn), modifiedBy: modifiedBy, modifiedOn: 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.notNullOrUndefined(policyResource.user); const userId = yield client.linkHelper.idFromEntityAsync(policyResource.user); Guard.notNull(userId); Guard.validId(userId); const createdBy = yield client.linkHelper.idFromEntityAsync(policyResource.createdBy); const modifiedBy = yield client.linkHelper.idFromEntityAsync(policyResource.modifiedBy); const memberSecurity = yield MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberSecurity); const memberGroupSecurity = yield MemberSecurityMapper.mapToMemberPoliciesAsync(client, policyResource.memberGroupSecurity); const rules = yield RulesMapper.mapToRulesAsync(client, policyResource.rules); const userPolicy = new UserPolicy({ memberSecurity: memberSecurity, memberGroupSecurity: memberGroupSecurity, rules: rules, userId: userId, createdBy: createdBy, createdOn: MappingUtilities.toNullableDate(policyResource.createdOn), modifiedBy: modifiedBy, modifiedOn: 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 RulesMapper.mapToRuleResourcesAsync(client, policy.rules); const resource = new PolicyResource(); resource.rules = rules; if (policy instanceof UserPolicy) { const user = yield client.linkHelper.entityToLinkAsync(policy.userId); resource.user = user; } else if (policy instanceof UserGroupPolicy) { const userGroup = yield client.linkHelper.entityToLinkAsync(policy.userGroupId); resource.userGroup = userGroup; } else { throw new InternalError("Policy type is not supported."); } const memberSecurity = yield MemberSecurityMapper.mapToMemberPolicyResourcesAsync(client, policy.memberSecurity); resource.memberSecurity = memberSecurity; const groupSecurity = yield MemberSecurityMapper.mapToMemberPolicyResourcesAsync(client, policy.memberGroupSecurity); resource.memberGroupSecurity = groupSecurity; return resource; }); } } //# sourceMappingURL=policy-mapper.js.map