UNPKG

@umbraco/playwright-testhelpers

Version:

Test helpers for making playwright tests for Umbraco solutions

1,154 lines 52.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserGroupApiHelper = void 0; const json_models_builders_1 = require("@umbraco/json-models-builders"); const ConstantHelper_1 = require("./ConstantHelper"); class UserGroupApiHelper { api; constructor(api) { this.api = api; } async ensureNameNotExists(name) { const json = await this.getAll(); for (const sb of json.items) { if (sb.name === name) { if (sb.id !== null) { return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id); } } } return null; } async doesExist(id) { const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id); return response.status() === 200; } async create(userGroupData) { const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user-group', userGroupData); // Returns the id of the userGroup return response.headers().location.split("/").pop(); } async getByName(name) { const json = await this.getAll(); for (const sb of json.items) { if (sb.name === name) { if (sb.id !== null) { const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id); return await response.json(); } } } return null; } async get(id) { const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id); const json = await response.json(); if (json !== null) { return json; } return null; } async getAll() { const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group?skip=0&take=10000'); const json = await response.json(); if (json !== null) { return json; } return null; } async update(id, userGroup) { const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id, userGroup); return response.text(); } async doesNameExist(name) { const json = await this.getAll(); for (const sb of json.items) { if (sb.name === name) { return true; } } return false; } async doesUserGroupContainLanguage(userGroupName, languageName) { const userGroup = await this.getByName(userGroupName); return userGroup.languages.includes(languageName); } async doesUserGroupContainAccessToAllLanguages(userGroupName) { const userGroup = await this.getByName(userGroupName); return userGroup.hasAccessToAllLanguages; } async doesUserGroupContainDocumentRootAccess(userGroupName) { const userGroup = await this.getByName(userGroupName); return userGroup.documentRootAccess; } async doesUserGroupContainMediaRootAccess(userGroupName) { const userGroup = await this.getByName(userGroupName); return userGroup.mediaRootAccess; } async delete(id) { return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id); } async createEmptyUserGroup(name, description = '') { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .withDescription(description) .build(); return await this.create(userGroup); } async createSimpleUserGroupWithContentSection(name, description = '') { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .withDescription(description) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .addFallbackPermission() .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createSimpleUserGroupWithMediaSection(name) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.media) .addFallbackPermission() .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDocumentAccess(name) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .withDocumentRootAccess(true) .build(); return await this.create(userGroup); } async createUserGroupWithDocumentStartNode(name, startNodeId) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(false) .withDocumentStartNodeId(startNodeId) .addFallbackPermission() .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithMediaStartNode(name, startNodeId) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.media) .withMediaRootAccess(false) .withMediaStartNodeId(startNodeId) .addFallbackPermission() .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithLanguage(name, languageName) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addLanguage(languageName) .build(); return await this.create(userGroup); } async createUserGroupWithLanguageAndContentSection(name, languageName) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .addLanguage(languageName) .withDocumentRootAccess(true) .addFallbackPermission() .withReadDocumentPermission(true) .withUpdateDocumentPermission(true) .withReadPropertyValueDocumentPermission(true) .withWritePropertyValueDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithMemberSection(name) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.members) .build(); return await this.create(userGroup); } async createUserGroupWithPermissionsForSpecificDocumentWithRead(name, documentId) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithReadDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withReadDocumentPermission(enabled) .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreateDocumentBlueprintPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withCreateDocumentBlueprintPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDeleteDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withDeleteDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreateDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withCreateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithNotificationsDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withNotificationsDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithPublishDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withPublishDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithSetPermissionsDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withSetPermissionsDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithUnpublishDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withUnpublishDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithUpdateDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withUpdateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDuplicateDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withDuplicateDocumentPermission(enabled) .withCreateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithMoveToDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withMoveToDocumentPermission(enabled) .withCreateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithSortChildrenDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withSortChildrenDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithCultureAndHostnamesDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withCultureAndHostnamesDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithPublicAccessDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.members) .withDocumentRootAccess(true) .addFallbackPermission() .withPublicAccessDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithRollbackDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withRollbackDocumentPermission(enabled) .withReadDocumentPermission(true) .withReadPropertyValueDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDeleteDocumentPermissionAndCreateDocumentPermission(name, deleteEnabled = true, createEnabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withDeleteDocumentPermission(deleteEnabled) .withCreateDocumentPermission(createEnabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } async doesUserGroupContainContentStartNodeId(userGroupName, documentStartNodeId) { const userGroup = await this.getByName(userGroupName); if (userGroup.documentStartNode === null) { return false; } return userGroup.documentStartNode.id.includes(documentStartNodeId); } async doesUserGroupContainMediaStartNodeId(userGroupName, mediaStartNodeId) { const userGroup = await this.getByName(userGroupName); if (userGroup.mediaStartNode === null) { return false; } return userGroup.mediaStartNode.id.includes(mediaStartNodeId); } async doesUserGroupContainGranularPermissionsForDocument(userGroupName, documentId, granularPermissions) { const userGroup = await this.getByName(userGroupName); for (const permission of userGroup.permissions) { if (permission.document.id === documentId) { for (const verb of permission.verbs) { if (!granularPermissions.includes(verb)) { return false; } } return true; } } return false; } async doesUserGroupHaveFallbackPermissions(userGroupName, permissions) { const userGroup = await this.getByName(userGroupName); const fallbackPermissions = userGroup.fallbackPermissions; if (permissions.length !== fallbackPermissions.length) { return false; } return permissions.every(item => fallbackPermissions.includes(item)); } async convertApiDocumentPermissionsToUiDocumentPermissions(apiPermissions) { return apiPermissions.map(permission => { for (const key in ConstantHelper_1.ConstantHelper.userGroupDocumentPermissionsSettings) { if (ConstantHelper_1.ConstantHelper.userGroupDocumentPermissionsSettings[key][2].toLowerCase() === permission.toLowerCase()) { return ConstantHelper_1.ConstantHelper.userGroupDocumentPermissionsSettings[key][0]; } } return null; }); } async convertApiSectionsToUiSections(apiSections) { return apiSections.map(permission => { for (const key in ConstantHelper_1.ConstantHelper.userGroupSectionsSettings) { if (ConstantHelper_1.ConstantHelper.userGroupSectionsSettings[key][1].toLowerCase() === permission.toLowerCase()) { return ConstantHelper_1.ConstantHelper.userGroupSectionsSettings[key][0]; } } return null; }); } async doesUserGroupHaveSections(userGroupName, sections) { const userGroup = await this.getByName(userGroupName); const sectionsData = userGroup.sections; if (sectionsData.length !== sections.length) { return false; } return sections.every(item => sectionsData.includes(item)); } async createUserGroupWithReadDocumentPermissionAndReadPropertyValueDocumentPermission(name, readEnabled = true, readPropertyValueEnabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withReadDocumentPermission(readEnabled) .withReadPropertyValueDocumentPermission(readPropertyValueEnabled) .done() .build(); return await this.create(userGroup); } async createUserGroupWithUpdateDocumentPermissionAndWritePropertyValueDocumentPermission(name, updateEnabled = true, writePropertyValueEnabled = true, readPropertyValueEnabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withUpdateDocumentPermission(updateEnabled) .withReadDocumentPermission(true) .withWritePropertyValueDocumentPermission(writePropertyValueEnabled) .withReadPropertyValueDocumentPermission(readPropertyValueEnabled) .done() .build(); return await this.create(userGroup); } async createUserGroupWithPermissionsForSpecificDocumentAndTwoPropertyValues(name, documentId, documentTypeId, firstPropertyValueName, readFirstPropertyValueEnabled = true, writeFirstPropertyValueEnabled = true, secondPropertyValueName, readSecondPropertyValueEnabled = true, writeSecondPropertyValueEnabled = true) { await this.ensureNameNotExists(name); const firstPropertyValueId = await this.api.documentType.getPropertyIdWithName(documentTypeId, firstPropertyValueName); const secondPropertyValueId = await this.api.documentType.getPropertyIdWithName(documentTypeId, secondPropertyValueName); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withReadDocumentPermission(true) .withUpdateDocumentPermission(true) .done() .done() .addPropertyValuePermission() .withDocumentTypeId(documentTypeId) .withPropertyTypeId(firstPropertyValueId) .addVerbs() .withReadPropertyValueDocumentPermission(readFirstPropertyValueEnabled) .withWritePropertyValueDocumentPermission(writeFirstPropertyValueEnabled) .done() .done() .addPropertyValuePermission() .withDocumentTypeId(documentTypeId) .withPropertyTypeId(secondPropertyValueId) .addVerbs() .withReadPropertyValueDocumentPermission(readSecondPropertyValueEnabled) .withWritePropertyValueDocumentPermission(writeSecondPropertyValueEnabled) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithReadPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withReadDocumentPermission(enabled) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreateDocumentBlueprintPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withCreateDocumentBlueprintPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithDeletePermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withDeleteDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreatePermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withCreateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithNotificationsPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withNotificationsDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithPublishPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withPublishDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithSetPermissionsPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withSetPermissionsDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithUnpublishPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withUnpublishDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithUpdatePermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withReadDocumentPermission(true) .done() .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withUpdateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithDuplicatePermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withCreateDocumentPermission(true) // need to have the 'create' permission - refer this PR: https://github.com/umbraco/Umbraco-CMS/pull/19303 .done() .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withDuplicateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithMoveToPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withCreateDocumentPermission(true) // need to have the 'create' permission - refer this PR: https://github.com/umbraco/Umbraco-CMS/pull/19303 .done() .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withMoveToDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithSortChildrenPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withSortChildrenDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithCultureAndHostnamesPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withCultureAndHostnamesDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithPublicAccessPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.members) .withDocumentRootAccess(true) .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withPublicAccessDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithRollbackPermissionForSpecificDocument(name, documentId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withReadPropertyValueDocumentPermission(true) .withWritePropertyValueDocumentPermission(true) .done() .addPermissions() .addDocumentPermission() .withDocumentId(documentId) .addVerbs() .withRollbackDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreateAndUpdateDocumentPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.content) .withDocumentRootAccess(true) .addFallbackPermission() .withCreateDocumentPermission(enabled) .withUpdateDocumentPermission(enabled) .withReadDocumentPermission(true) .done() .build(); return await this.create(userGroup); } // Element permission methods async createUserGroupWithReadElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withReadElementPermission(enabled) .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreateElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withCreateElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDeleteElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withDeleteElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithPublishElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withPublishElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithUnpublishElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withUnpublishElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithUpdateElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withUpdateElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDuplicateElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withDuplicateElementPermission(enabled) .withCreateElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithMoveElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withMoveElementPermission(enabled) .withCreateElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithRollbackElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withRollbackElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithDeleteElementPermissionAndCreateElementPermission(name, deleteEnabled = true, createEnabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withDeleteElementPermission(deleteEnabled) .withCreateElementPermission(createEnabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithCreateAndUpdateElementPermission(name, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withCreateElementPermission(enabled) .withUpdateElementPermission(enabled) .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async doesUserGroupContainElementStartNodeId(userGroupName, elementStartNodeId) { const userGroup = await this.getByName(userGroupName); if (userGroup.elementStartNode === null) { return false; } return userGroup.elementStartNode.id.includes(elementStartNodeId); } async doesUserGroupContainElementRootAccess(userGroupName) { const userGroup = await this.getByName(userGroupName); return userGroup.elementRootAccess; } async createUserGroupWithElementStartNode(name, startNodeId) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(false) .withElementStartNodeId(startNodeId) .addFallbackPermission() .withReadElementPermission(true) .done() .build(); return await this.create(userGroup); } async createUserGroupWithReadPermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withReadElementPermission(enabled) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithDeletePermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withDeleteElementPermission(enabled) .withReadElementPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithPublishPermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withPublishElementPermission(enabled) .withReadElementPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithUnpublishPermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withUnpublishElementPermission(enabled) .withReadElementPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithUpdatePermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withReadElementPermission(true) .done() .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withUpdateElementPermission(enabled) .withReadElementPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithDuplicatePermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withCreateElementPermission(true) .done() .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withDuplicateElementPermission(enabled) .withReadElementPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithMovePermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addFallbackPermission() .withCreateElementPermission(true) .done() .addPermissions() .addElementPermission() .withElementId(elementId) .addVerbs() .withMoveElementPermission(enabled) .withReadElementPermission(true) .done() .done() .done() .build(); return await this.create(userGroup); } async createUserGroupWithRollbackPermissionForSpecificElement(name, elementId, enabled = true) { await this.ensureNameNotExists(name); const userGroup = new json_models_builders_1.UserGroupBuilder() .withName(name) .addSection(ConstantHelper_1.ConstantHelper.sectionAliases.library) .withElementRootAccess(true) .addPermissions() .addElementPermission() .withElementId(elementId) .addVer