@umbraco/playwright-testhelpers
Version:
Test helpers for making playwright tests for Umbraco solutions
1,154 lines • 52.1 kB
JavaScript
"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