@umbraco/playwright-testhelpers 17.0.8 → 17.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/helpers/ApiHelpers.d.ts +13 -24
- package/dist/lib/helpers/ApiHelpers.js +31 -74
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.js +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/LoginApiHelper.d.ts +4 -8
- package/dist/lib/helpers/LoginApiHelper.js +15 -16
- package/dist/lib/helpers/LoginApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +8 -0
- package/dist/lib/helpers/UiBaseLocators.js +24 -1
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +3 -7
- package/dist/lib/helpers/UserApiHelper.js +1 -2
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.js +2 -0
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/testExtension.js +1 -1
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -233,13 +233,12 @@ class UserApiHelper {
|
|
|
233
233
|
}
|
|
234
234
|
async loginToUser(userName, userEmail, userPassword) {
|
|
235
235
|
const user = await this.getByName(userName);
|
|
236
|
-
let userCookieAndTokens
|
|
236
|
+
let userCookieAndTokens;
|
|
237
237
|
if (user.id !== null) {
|
|
238
238
|
await this.api.revokeAccessToken(await this.api.getCookie(), await this.api.getAccessToken());
|
|
239
239
|
await this.api.revokeRefreshToken(await this.api.getCookie(), await this.api.getRefreshToken());
|
|
240
240
|
userCookieAndTokens = await this.api.updateTokenAndCookie(userEmail, userPassword);
|
|
241
241
|
}
|
|
242
|
-
await this.page.reload();
|
|
243
242
|
return userCookieAndTokens;
|
|
244
243
|
}
|
|
245
244
|
async getAll() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserBuilder} from \"@umbraco/json-models-builders\";\nimport {Page} from \"@playwright/test\";\n\nexport class UserApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n // It takes a while to create the user, so if we delete it too fast. We get a DB lock\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getUsersCount() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n return json.total;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async create(userData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', userData);\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(id: string, userData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id, userData);\n }\n\n async delete(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n }\n\n async deleteByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async saveUser(user) {\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', user);\n }\n\n // Avatar\n async addAvatar(id: string, fileId: string) {\n const avatar = {\n 'file':\n {\n 'id': fileId\n }\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id, avatar);\n }\n\n async removeAvatar(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id);\n }\n\n // Enable/Disabled and Unlock\n async disable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/disable', users);\n }\n\n async enable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/enable', users);\n }\n\n async unlock(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/unlock', users);\n }\n\n async getCurrentUser() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/current');\n return await response.json();\n }\n\n // Set User Groups for Users\n async setUserGroups(userIds: string[], userGroupIds: string[]) {\n const userGroupsForUsers = {\n \"userIds\": userIds.map(id => ({id})),\n \"userGroupIds\": userGroupIds.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/set-user-groups', userGroupsForUsers);\n }\n\n // Password\n async updateCurrentUserPassword(newPassword: string, oldPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n \"oldPassword\": oldPassword\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/change-password/', updatePassword);\n }\n\n // Invite\n async invite(email: string, name: string, userGroupIds: string[], message: string) {\n const userInvite = {\n \"email\": email,\n \"userName\": email,\n \"name\": name,\n \"userGroupIds\": userGroupIds.map(id => ({id})),\n \"message\": message\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/invite', userInvite);\n }\n\n async createDefaultUser(nameOfUser: string, email: string, userGroupIds: string[], kind: string = 'Default') {\n const user = new UserBuilder()\n .withName(nameOfUser)\n .withEmail(email)\n .withKind(kind)\n .build();\n\n for (const userGroupId of userGroupIds) {\n user.userGroupIds.push({id: userGroupId});\n }\n return await this.create(user);\n }\n\n async addDefaultAvatarImageToUser(userId: string) {\n const crypto = require('crypto');\n const temporaryFileId = crypto.randomUUID();\n const filePath = './fixtures/mediaLibrary/Umbraco.png';\n const fileName = 'Umbraco.png';\n const mimeType = 'image/png';\n await this.api.temporaryFile.create(temporaryFileId, fileName, mimeType, filePath);\n return await this.addAvatar(userId, temporaryFileId);\n }\n\n async doesUserContainUserGroupIds(userName: string, userGroupIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.userGroupIds || user.userGroupIds.length === 0) {\n return false;\n }\n const userGroupIdsArray = user.userGroupIds.map(group => group.id);\n return userGroupIdsArray.every(id => userGroupIds.includes(id));\n }\n\n async doesUserContainContentStartNodeIds(userName: string, documentStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.documentStartNodeIds || user.documentStartNodeIds.length === 0) {\n return false;\n }\n const documentStartNodeIdsArray = user.documentStartNodeIds.map(documentStartNode => documentStartNode.id);\n return documentStartNodeIdsArray.every(id => documentStartNodeIds.includes(id));\n }\n\n async doesUserContainMediaStartNodeIds(userName: string, mediaStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.mediaStartNodeIds || user.mediaStartNodeIds.length === 0) {\n return false;\n }\n const mediaStartNodeIdsArray = user.mediaStartNodeIds.map(mediaStartNode => mediaStartNode.id);\n return mediaStartNodeIdsArray.every(id => mediaStartNodeIds.includes(id));\n }\n\n async updatePassword(userId: string, newPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/' + userId + '/change-password/', updatePassword);\n }\n\n // User Permissions\n async setUserPermissions(userName: string, userEmail: string, userPassword: string, userGroupId: string, documentStartNodeIds: string[] = [], hasDocumentRootAccess = false, mediaStartNodeIds: string[] = [], hasMediaRootAccess = false, uiCulture: string = 'en-us') {\n let user = await this.getByName(userName);\n\n // If the user does not exist, create a default user and retrieve the newly created user\n if (!user) {\n await this.createDefaultUser(userName, userEmail, [userGroupId]);\n user = await this.getByName(userName);\n }\n\n await this.updatePassword(user.id, userPassword);\n\n let userSetup = {\n documentStartNodeIds: [] as { id: string }[],\n email: user.email,\n hasDocumentRootAccess: hasDocumentRootAccess,\n hasMediaRootAccess: hasMediaRootAccess,\n languageIsoCode: uiCulture,\n mediaStartNodeIds: [] as { id: string }[],\n name: user.name,\n userGroupIds: [{id: userGroupId}],\n userName: user.userName,\n };\n\n for (const documentStartNodeId of documentStartNodeIds) {\n userSetup.documentStartNodeIds.push({id: documentStartNodeId});\n }\n\n for (const mediaStartNodeId of mediaStartNodeIds) {\n userSetup.mediaStartNodeIds.push({id: mediaStartNodeId});\n }\n\n await this.update(user.id, userSetup);\n }\n\n async loginToUser(userName: string, userEmail: string, userPassword: string) {\n const user = await this.getByName(userName);\n let userCookieAndTokens: { cookie: string; accessToken: \"\" | undefined | { value: string }; refreshToken: \"\" | undefined | { value: string } } = {cookie: \"\", accessToken: \"\", refreshToken: \"\"};\n\n if (user.id !== null) {\n await this.api.revokeAccessToken(await this.api.getCookie(), await this.api.getAccessToken());\n await this.api.revokeRefreshToken(await this.api.getCookie(), await this.api.getRefreshToken());\n userCookieAndTokens = await this.api.updateTokenAndCookie(userEmail, userPassword);\n }\n\n await this.page.reload();\n return userCookieAndTokens;\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=100');\n }\n\n async filterByText(text: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&filter=' + text);\n return await response.json();\n }\n\n async filterByUserStates(userStates: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userStates=' + userStates);\n return await response.json();\n }\n\n async filterByUserGroupIds(userGroupIds: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userGroupIds=' + userGroupIds);\n return await response.json();\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UserApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserBuilder} from \"@umbraco/json-models-builders\";\nimport {Page} from \"@playwright/test\";\n\nexport class UserApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n // It takes a while to create the user, so if we delete it too fast. We get a DB lock\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getUsersCount() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n return json.total;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async create(userData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', userData);\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(id: string, userData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id, userData);\n }\n\n async delete(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n }\n\n async deleteByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async saveUser(user) {\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', user);\n }\n\n // Avatar\n async addAvatar(id: string, fileId: string) {\n const avatar = {\n 'file':\n {\n 'id': fileId\n }\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id, avatar);\n }\n\n async removeAvatar(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id);\n }\n\n // Enable/Disabled and Unlock\n async disable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/disable', users);\n }\n\n async enable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/enable', users);\n }\n\n async unlock(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/unlock', users);\n }\n\n async getCurrentUser() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/current');\n return await response.json();\n }\n\n // Set User Groups for Users\n async setUserGroups(userIds: string[], userGroupIds: string[]) {\n const userGroupsForUsers = {\n \"userIds\": userIds.map(id => ({id})),\n \"userGroupIds\": userGroupIds.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/set-user-groups', userGroupsForUsers);\n }\n\n // Password\n async updateCurrentUserPassword(newPassword: string, oldPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n \"oldPassword\": oldPassword\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/change-password/', updatePassword);\n }\n\n // Invite\n async invite(email: string, name: string, userGroupIds: string[], message: string) {\n const userInvite = {\n \"email\": email,\n \"userName\": email,\n \"name\": name,\n \"userGroupIds\": userGroupIds.map(id => ({id})),\n \"message\": message\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/invite', userInvite);\n }\n\n async createDefaultUser(nameOfUser: string, email: string, userGroupIds: string[], kind: string = 'Default') {\n const user = new UserBuilder()\n .withName(nameOfUser)\n .withEmail(email)\n .withKind(kind)\n .build();\n\n for (const userGroupId of userGroupIds) {\n user.userGroupIds.push({id: userGroupId});\n }\n return await this.create(user);\n }\n\n async addDefaultAvatarImageToUser(userId: string) {\n const crypto = require('crypto');\n const temporaryFileId = crypto.randomUUID();\n const filePath = './fixtures/mediaLibrary/Umbraco.png';\n const fileName = 'Umbraco.png';\n const mimeType = 'image/png';\n await this.api.temporaryFile.create(temporaryFileId, fileName, mimeType, filePath);\n return await this.addAvatar(userId, temporaryFileId);\n }\n\n async doesUserContainUserGroupIds(userName: string, userGroupIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.userGroupIds || user.userGroupIds.length === 0) {\n return false;\n }\n const userGroupIdsArray = user.userGroupIds.map(group => group.id);\n return userGroupIdsArray.every(id => userGroupIds.includes(id));\n }\n\n async doesUserContainContentStartNodeIds(userName: string, documentStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.documentStartNodeIds || user.documentStartNodeIds.length === 0) {\n return false;\n }\n const documentStartNodeIdsArray = user.documentStartNodeIds.map(documentStartNode => documentStartNode.id);\n return documentStartNodeIdsArray.every(id => documentStartNodeIds.includes(id));\n }\n\n async doesUserContainMediaStartNodeIds(userName: string, mediaStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.mediaStartNodeIds || user.mediaStartNodeIds.length === 0) {\n return false;\n }\n const mediaStartNodeIdsArray = user.mediaStartNodeIds.map(mediaStartNode => mediaStartNode.id);\n return mediaStartNodeIdsArray.every(id => mediaStartNodeIds.includes(id));\n }\n\n async updatePassword(userId: string, newPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/' + userId + '/change-password/', updatePassword);\n }\n\n // User Permissions\n async setUserPermissions(userName: string, userEmail: string, userPassword: string, userGroupId: string, documentStartNodeIds: string[] = [], hasDocumentRootAccess = false, mediaStartNodeIds: string[] = [], hasMediaRootAccess = false, uiCulture: string = 'en-us') {\n let user = await this.getByName(userName);\n\n // If the user does not exist, create a default user and retrieve the newly created user\n if (!user) {\n await this.createDefaultUser(userName, userEmail, [userGroupId]);\n user = await this.getByName(userName);\n }\n\n await this.updatePassword(user.id, userPassword);\n\n let userSetup = {\n documentStartNodeIds: [] as { id: string }[],\n email: user.email,\n hasDocumentRootAccess: hasDocumentRootAccess,\n hasMediaRootAccess: hasMediaRootAccess,\n languageIsoCode: uiCulture,\n mediaStartNodeIds: [] as { id: string }[],\n name: user.name,\n userGroupIds: [{id: userGroupId}],\n userName: user.userName,\n };\n\n for (const documentStartNodeId of documentStartNodeIds) {\n userSetup.documentStartNodeIds.push({id: documentStartNodeId});\n }\n\n for (const mediaStartNodeId of mediaStartNodeIds) {\n userSetup.mediaStartNodeIds.push({id: mediaStartNodeId});\n }\n\n await this.update(user.id, userSetup);\n }\n\n async loginToUser(userName: string, userEmail: string, userPassword: string) {\n const user = await this.getByName(userName);\n let userCookieAndTokens: { cookie: string; accessToken: string; refreshToken: string } | undefined;\n if (user.id !== null) {\n await this.api.revokeAccessToken(await this.api.getCookie(), await this.api.getAccessToken());\n await this.api.revokeRefreshToken(await this.api.getCookie(), await this.api.getRefreshToken());\n userCookieAndTokens = await this.api.updateTokenAndCookie(userEmail, userPassword);\n }\n \n return userCookieAndTokens;\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=100');\n }\n\n async filterByText(text: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&filter=' + text);\n return await response.json();\n }\n\n async filterByUserStates(userStates: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userStates=' + userStates);\n return await response.json();\n }\n\n async filterByUserGroupIds(userGroupIds: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userGroupIds=' + userGroupIds);\n return await response.json();\n }\n}"]}
|
|
@@ -322,6 +322,7 @@ class UserGroupApiHelper {
|
|
|
322
322
|
.withDocumentRootAccess(true)
|
|
323
323
|
.addFallbackPermission()
|
|
324
324
|
.withDuplicatePermission(enabled)
|
|
325
|
+
.withCreatePermission(enabled)
|
|
325
326
|
.withReadPermission(true)
|
|
326
327
|
.done()
|
|
327
328
|
.build();
|
|
@@ -335,6 +336,7 @@ class UserGroupApiHelper {
|
|
|
335
336
|
.withDocumentRootAccess(true)
|
|
336
337
|
.addFallbackPermission()
|
|
337
338
|
.withMoveToPermission(enabled)
|
|
339
|
+
.withCreatePermission(enabled)
|
|
338
340
|
.withReadPermission(true)
|
|
339
341
|
.done()
|
|
340
342
|
.build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserGroupBuilder} from \"@umbraco/json-models-builders\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class UserGroupApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n return response.status() === 200;\n }\n\n async create(userGroupData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user-group', userGroupData);\n // Returns the id of the userGroup\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, userGroup) {\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id, userGroup);\n return response.text();\n }\n\n async doesNameExist(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n \n async doesUserGroupContainLanguage(userGroupName: string, languageName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.languages.includes(languageName);\n }\n\n async doesUserGroupContainAccessToAllLanguages(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.hasAccessToAllLanguages;\n }\n\n async doesUserGroupContainDocumentRootAccess(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.documentRootAccess;\n }\n\n async doesUserGroupContainMediaRootAccess(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.mediaRootAccess;\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n }\n\n async createEmptyUserGroup(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createSimpleUserGroupWithContentSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createSimpleUserGroupWithMediaSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithDocumentAccess(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .withDocumentRootAccess(true)\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDocumentStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(false)\n .withDocumentStartNodeId(startNodeId)\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMediaStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .withMediaRootAccess(false)\n .withMediaStartNodeId(startNodeId)\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithLanguage(name: string, languageName: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addLanguage(languageName)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithLanguageAndContentSection(name: string, languageName: string) {\n await this.ensureNameNotExists(name);\n \n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addLanguage(languageName)\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(true)\n .withUpdatePermission(true)\n .withReadPropertyValuePermission(true)\n .withWritePropertyValuePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithMemberSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Members')\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPermissionsForSpecificDocumentWithRead(name: string, documentId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithReadPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(enabled)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCreateDocumentBlueprintPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreateDocumentBlueprintPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDeleteDocumentPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withDeletePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCreateDocumentPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithNotificationsPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withNotificationsPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublishPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withPublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSetPermissionsPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withSetPermissionsPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUnpublishPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withUnpublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUpdatePermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withUpdatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDuplicatePermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withDuplicatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMoveToPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withMoveToPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSortChildrenPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withSortChildrenPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCultureAndHostnamesPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCultureAndHostnamesPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublicAccessPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addSection('Umb.Section.Members')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withPublicAccessPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithRollbackPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withRollbackPermission(enabled)\n .withReadPermission(true)\n .withReadPropertyValuePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDeletePermissionAndCreatePermission(name: string, deleteEnabled: boolean = true, createEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withDeletePermission(deleteEnabled)\n .withCreatePermission(createEnabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async doesUserGroupContainContentStartNodeId(userGroupName: string, documentStartNodeId: string) {\n const userGroup = await this.getByName(userGroupName);\n if (userGroup.documentStartNode === null) {\n return false;\n }\n return userGroup.documentStartNode.id.includes(documentStartNodeId);\n }\n\n async doesUserGroupContainMediaStartNodeId(userGroupName: string, mediaStartNodeId: string) {\n const userGroup = await this.getByName(userGroupName);\n if (userGroup.mediaStartNode === null) {\n return false;\n }\n return userGroup.mediaStartNode.id.includes(mediaStartNodeId);\n }\n \n async doesUserGroupContainGranularPermissionsForDocument(userGroupName: string, documentId: string, granularPermissions : string[]) {\n const userGroup = await this.getByName(userGroupName);\n for (const permission of userGroup.permissions) {\n if (permission.document.id === documentId) {\n for (const verb of permission.verbs) {\n if (!granularPermissions.includes(verb)) {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n }\n\n async doesUserGroupHaveFallbackPermissions(userGroupName: string, permissions: string[]) {\n const userGroup = await this.getByName(userGroupName);\n const fallbackPermissions = userGroup.fallbackPermissions;\n if (permissions.length !== fallbackPermissions.length) {\n return false;\n }\n return permissions.every(item => fallbackPermissions.includes(item));\n }\n\n async convertApiPermissionsToUiPermissions(apiPermissions: string[]) {\n return apiPermissions.map(permission => {\n for (const key in ConstantHelper.userGroupPermissionsSettings) {\n if (ConstantHelper.userGroupPermissionsSettings[key][2].toLowerCase() === permission.toLowerCase()) {\n return ConstantHelper.userGroupPermissionsSettings[key][0];\n }\n }\n return null;\n });\n }\n\n async convertApiSectionsToUiSections(apiSections: string[]) {\n return apiSections.map(permission => {\n for (const key in ConstantHelper.userGroupSectionsSettings) {\n if (ConstantHelper.userGroupSectionsSettings[key][1].toLowerCase() === permission.toLowerCase()) {\n return ConstantHelper.userGroupSectionsSettings[key][0];\n }\n }\n return null;\n });\n }\n\n async doesUserGroupHaveSections(userGroupName: string, sections: string[]) {\n const userGroup = await this.getByName(userGroupName);\n const sectionsData = userGroup.sections;\n if (sectionsData.length !== sections.length) {\n return false;\n }\n return sections.every(item => sectionsData.includes(item));\n }\n\n async createUserGroupWithReadPermissionAndReadPropertyValuePermission(name: string, readEnabled: boolean = true, readPropertyValueEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(readEnabled)\n .withReadPropertyValuePermission(readPropertyValueEnabled)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(name: string, updateEnabled: boolean = true, writePropertyValueEnabled: boolean = true, readPropertyValueEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withUpdatePermission(updateEnabled)\n .withReadPermission(true)\n .withWritePropertyValuePermission(writePropertyValueEnabled)\n .withReadPropertyValuePermission(readPropertyValueEnabled)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithPermissionsForSpecificDocumentAndTwoPropertyValues(name: string, documentId: string, documentTypeId: string, firstPropertyValueName: string, readFirstPropertyValueEnabled: boolean = true, writeFirstPropertyValueEnabled: boolean = true, secondPropertyValueName: string, readSecondPropertyValueEnabled: boolean = true, writeSecondPropertyValueEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n const firstPropertyValueId = await this.api.documentType.getPropertyIdWithName(documentTypeId, firstPropertyValueName);\n const secondPropertyValueId = await this.api.documentType.getPropertyIdWithName(documentTypeId, secondPropertyValueName);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withReadPermission(true)\n .withUpdatePermission(true)\n .done()\n .done()\n .addPropertyValuePermission()\n .withDocumentTypeId(documentTypeId)\n .withPropertyTypeId(firstPropertyValueId)\n .addVerbs()\n .withReadPropertyValuePermission(readFirstPropertyValueEnabled)\n .withWritePropertyValuePermission(writeFirstPropertyValueEnabled)\n .done()\n .done()\n .addPropertyValuePermission()\n .withDocumentTypeId(documentTypeId)\n .withPropertyTypeId(secondPropertyValueId)\n .addVerbs()\n .withReadPropertyValuePermission(readSecondPropertyValueEnabled)\n .withWritePropertyValuePermission(writeSecondPropertyValueEnabled)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithReadPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withReadPermission(enabled)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithCreateDocumentBlueprintPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withCreateDocumentBlueprintPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithDeletePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withDeletePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithCreatePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withCreatePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithNotificationsPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withNotificationsPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublishPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withPublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSetPermissionsPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withSetPermissionsPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUnpublishPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withUnpublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUpdatePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withUpdatePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDuplicatePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(true) // need to have the 'create' permission - refer this PR: https://github.com/umbraco/Umbraco-CMS/pull/19303\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withDuplicatePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMoveToPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(true) // need to have the 'create' permission - refer this PR: https://github.com/umbraco/Umbraco-CMS/pull/19303\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withMoveToPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSortChildrenPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withSortChildrenPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCultureAndHostnamesPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withCultureAndHostnamesPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublicAccessPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addSection('Umb.Section.Members')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withPublicAccessPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithRollbackPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPropertyValuePermission(true)\n .withWritePropertyValuePermission(true)\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withRollbackPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithCreateAndUpdateDocumentPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(enabled)\n .withUpdatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UserGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserGroupApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserGroupBuilder} from \"@umbraco/json-models-builders\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class UserGroupApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n return response.status() === 200;\n }\n\n async create(userGroupData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user-group', userGroupData);\n // Returns the id of the userGroup\n return response.headers().location.split(\"/\").pop();\n }\n\n async getByName(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAll() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user-group?skip=0&take=10000');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async update(id: string, userGroup) {\n const response = await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id, userGroup);\n return response.text();\n }\n\n async doesNameExist(name: string) {\n const json = await this.getAll();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n \n async doesUserGroupContainLanguage(userGroupName: string, languageName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.languages.includes(languageName);\n }\n\n async doesUserGroupContainAccessToAllLanguages(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.hasAccessToAllLanguages;\n }\n\n async doesUserGroupContainDocumentRootAccess(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.documentRootAccess;\n }\n\n async doesUserGroupContainMediaRootAccess(userGroupName: string) {\n const userGroup = await this.getByName(userGroupName);\n return userGroup.mediaRootAccess;\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user-group/' + id);\n }\n\n async createEmptyUserGroup(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createSimpleUserGroupWithContentSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createSimpleUserGroupWithMediaSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithDocumentAccess(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .withDocumentRootAccess(true)\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDocumentStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(false)\n .withDocumentStartNodeId(startNodeId)\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMediaStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Media')\n .withMediaRootAccess(false)\n .withMediaStartNodeId(startNodeId)\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithLanguage(name: string, languageName: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addLanguage(languageName)\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithLanguageAndContentSection(name: string, languageName: string) {\n await this.ensureNameNotExists(name);\n \n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addLanguage(languageName)\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(true)\n .withUpdatePermission(true)\n .withReadPropertyValuePermission(true)\n .withWritePropertyValuePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithMemberSection(name: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Members')\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPermissionsForSpecificDocumentWithRead(name: string, documentId: string) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithReadPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(enabled)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCreateDocumentBlueprintPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreateDocumentBlueprintPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDeleteDocumentPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withDeletePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCreateDocumentPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithNotificationsPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withNotificationsPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublishPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withPublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSetPermissionsPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withSetPermissionsPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUnpublishPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withUnpublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUpdatePermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withUpdatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDuplicatePermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withDuplicatePermission(enabled)\n .withCreatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMoveToPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withMoveToPermission(enabled)\n .withCreatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSortChildrenPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withSortChildrenPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCultureAndHostnamesPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCultureAndHostnamesPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublicAccessPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addSection('Umb.Section.Members')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withPublicAccessPermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithRollbackPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withRollbackPermission(enabled)\n .withReadPermission(true)\n .withReadPropertyValuePermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDeletePermissionAndCreatePermission(name: string, deleteEnabled: boolean = true, createEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withDeletePermission(deleteEnabled)\n .withCreatePermission(createEnabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async doesUserGroupContainContentStartNodeId(userGroupName: string, documentStartNodeId: string) {\n const userGroup = await this.getByName(userGroupName);\n if (userGroup.documentStartNode === null) {\n return false;\n }\n return userGroup.documentStartNode.id.includes(documentStartNodeId);\n }\n\n async doesUserGroupContainMediaStartNodeId(userGroupName: string, mediaStartNodeId: string) {\n const userGroup = await this.getByName(userGroupName);\n if (userGroup.mediaStartNode === null) {\n return false;\n }\n return userGroup.mediaStartNode.id.includes(mediaStartNodeId);\n }\n \n async doesUserGroupContainGranularPermissionsForDocument(userGroupName: string, documentId: string, granularPermissions : string[]) {\n const userGroup = await this.getByName(userGroupName);\n for (const permission of userGroup.permissions) {\n if (permission.document.id === documentId) {\n for (const verb of permission.verbs) {\n if (!granularPermissions.includes(verb)) {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n }\n\n async doesUserGroupHaveFallbackPermissions(userGroupName: string, permissions: string[]) {\n const userGroup = await this.getByName(userGroupName);\n const fallbackPermissions = userGroup.fallbackPermissions;\n if (permissions.length !== fallbackPermissions.length) {\n return false;\n }\n return permissions.every(item => fallbackPermissions.includes(item));\n }\n\n async convertApiPermissionsToUiPermissions(apiPermissions: string[]) {\n return apiPermissions.map(permission => {\n for (const key in ConstantHelper.userGroupPermissionsSettings) {\n if (ConstantHelper.userGroupPermissionsSettings[key][2].toLowerCase() === permission.toLowerCase()) {\n return ConstantHelper.userGroupPermissionsSettings[key][0];\n }\n }\n return null;\n });\n }\n\n async convertApiSectionsToUiSections(apiSections: string[]) {\n return apiSections.map(permission => {\n for (const key in ConstantHelper.userGroupSectionsSettings) {\n if (ConstantHelper.userGroupSectionsSettings[key][1].toLowerCase() === permission.toLowerCase()) {\n return ConstantHelper.userGroupSectionsSettings[key][0];\n }\n }\n return null;\n });\n }\n\n async doesUserGroupHaveSections(userGroupName: string, sections: string[]) {\n const userGroup = await this.getByName(userGroupName);\n const sectionsData = userGroup.sections;\n if (sectionsData.length !== sections.length) {\n return false;\n }\n return sections.every(item => sectionsData.includes(item));\n }\n\n async createUserGroupWithReadPermissionAndReadPropertyValuePermission(name: string, readEnabled: boolean = true, readPropertyValueEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(readEnabled)\n .withReadPropertyValuePermission(readPropertyValueEnabled)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithUpdatePermissionAndWritePropertyValuePermission(name: string, updateEnabled: boolean = true, writePropertyValueEnabled: boolean = true, readPropertyValueEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withUpdatePermission(updateEnabled)\n .withReadPermission(true)\n .withWritePropertyValuePermission(writePropertyValueEnabled)\n .withReadPropertyValuePermission(readPropertyValueEnabled)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithPermissionsForSpecificDocumentAndTwoPropertyValues(name: string, documentId: string, documentTypeId: string, firstPropertyValueName: string, readFirstPropertyValueEnabled: boolean = true, writeFirstPropertyValueEnabled: boolean = true, secondPropertyValueName: string, readSecondPropertyValueEnabled: boolean = true, writeSecondPropertyValueEnabled: boolean = true) {\n await this.ensureNameNotExists(name);\n const firstPropertyValueId = await this.api.documentType.getPropertyIdWithName(documentTypeId, firstPropertyValueName);\n const secondPropertyValueId = await this.api.documentType.getPropertyIdWithName(documentTypeId, secondPropertyValueName);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withReadPermission(true)\n .withUpdatePermission(true)\n .done()\n .done()\n .addPropertyValuePermission()\n .withDocumentTypeId(documentTypeId)\n .withPropertyTypeId(firstPropertyValueId)\n .addVerbs()\n .withReadPropertyValuePermission(readFirstPropertyValueEnabled)\n .withWritePropertyValuePermission(writeFirstPropertyValueEnabled)\n .done()\n .done()\n .addPropertyValuePermission()\n .withDocumentTypeId(documentTypeId)\n .withPropertyTypeId(secondPropertyValueId)\n .addVerbs()\n .withReadPropertyValuePermission(readSecondPropertyValueEnabled)\n .withWritePropertyValuePermission(writeSecondPropertyValueEnabled)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithReadPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withReadPermission(enabled)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithCreateDocumentBlueprintPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withCreateDocumentBlueprintPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithDeletePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withDeletePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithCreatePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withCreatePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithNotificationsPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withNotificationsPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublishPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withPublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSetPermissionsPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withSetPermissionsPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUnpublishPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withUnpublishPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithUpdatePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPermission(true)\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withUpdatePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithDuplicatePermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(true) // need to have the 'create' permission - refer this PR: https://github.com/umbraco/Umbraco-CMS/pull/19303\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withDuplicatePermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithMoveToPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(true) // need to have the 'create' permission - refer this PR: https://github.com/umbraco/Umbraco-CMS/pull/19303\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withMoveToPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithSortChildrenPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withSortChildrenPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithCultureAndHostnamesPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withCultureAndHostnamesPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithPublicAccessPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .addSection('Umb.Section.Members')\n .withDocumentRootAccess(true)\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withPublicAccessPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n \n async createUserGroupWithRollbackPermissionForSpecificDocument(name: string, documentId: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withReadPropertyValuePermission(true)\n .withWritePropertyValuePermission(true)\n .done()\n .addPermissions()\n .addDocumentPermission()\n .withDocumentId(documentId)\n .addVerbs()\n .withRollbackPermission(enabled)\n .withReadPermission(true)\n .done()\n .done()\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n\n async createUserGroupWithCreateAndUpdateDocumentPermission(name: string, enabled: boolean = true) {\n await this.ensureNameNotExists(name);\n\n const userGroup = new UserGroupBuilder()\n .withName(name)\n .addSection('Umb.Section.Content')\n .withDocumentRootAccess(true)\n .addFallbackPermission()\n .withCreatePermission(enabled)\n .withUpdatePermission(enabled)\n .withReadPermission(true)\n .done()\n .build();\n\n return await this.create(userGroup);\n }\n}"]}
|
|
@@ -11,7 +11,7 @@ const test = test_1.test.extend({
|
|
|
11
11
|
// Runs the isAccessTokenValid before each implementation of umbracoApi in our tests (Which is every single one)
|
|
12
12
|
// await umbracoApi.isAccessTokenValid();
|
|
13
13
|
// TODO: use isAccessTokenValid in the tests, currently it is a bit flaky. So now we refresh the token after each test
|
|
14
|
-
await umbracoApi.
|
|
14
|
+
await umbracoApi.refreshLoginState(umbraco_config_1.umbracoConfig.user.login, umbraco_config_1.umbracoConfig.user.password);
|
|
15
15
|
await use(umbracoApi);
|
|
16
16
|
},
|
|
17
17
|
umbracoUi: async ({ page }, use) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../lib/helpers/testExtension.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,wBAAwC;AACxC,yDAAmD;AACnD,6DAAwD;AAExD,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,CAAwD;IAC9E,UAAU,EAAE,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,IAAI,aAAU,CAAC,IAAI,CAAC,CAAC;QACxC,gHAAgH;QAChH,yCAAyC;QACzC,sHAAsH;QACtH,MAAM,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../lib/helpers/testExtension.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,wBAAwC;AACxC,yDAAmD;AACnD,6DAAwD;AAExD,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,CAAwD;IAC9E,UAAU,EAAE,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,IAAI,aAAU,CAAC,IAAI,CAAC,CAAC;QACxC,gHAAgH;QAChH,yCAAyC;QACzC,sHAAsH;QACtH,MAAM,UAAU,CAAC,iBAAiB,CAAC,8BAAa,CAAC,IAAI,CAAC,KAAK,EAAE,8BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,SAAS,EAAE,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,EAAE;QAC/B,MAAM,SAAS,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAEpD,kDAAkD;QAClD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE;gBAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC9G,kBAAkB,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;aAC9D;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;CACF,CAAC,CAAA;AAEM,oBAAI","sourcesContent":["import {test as base} from \"@playwright/test\"\nimport {ApiHelpers, UiHelpers} from \".\";\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport {ConsoleErrorHelper} from \"./ConsoleErrorHelper\";\n\nconst test = base.extend<{ umbracoApi: ApiHelpers } & { umbracoUi: UiHelpers }>({\n umbracoApi: async ({page}, use) => {\n const umbracoApi = new ApiHelpers(page);\n // Runs the isAccessTokenValid before each implementation of umbracoApi in our tests (Which is every single one)\n // await umbracoApi.isAccessTokenValid();\n // TODO: use isAccessTokenValid in the tests, currently it is a bit flaky. So now we refresh the token after each test\n await umbracoApi.refreshLoginState(umbracoConfig.user.login, umbracoConfig.user.password);\n await use(umbracoApi);\n },\n\n umbracoUi: async ({page}, use) => {\n const umbracoUi = new UiHelpers(page);\n const consoleErrorHelper = new ConsoleErrorHelper();\n\n // Listen for all console events and handle errors\n page.on('console', message => {\n if (message.type() === 'error') {\n const errorMessage = message.text();\n const testTitle = test.info().title;\n const testLocation = test.info().titlePath[0];\n let errorMessageJson = consoleErrorHelper.updateConsoleErrorTextToJson(errorMessage, testTitle, testLocation);\n consoleErrorHelper.writeConsoleErrorToFile(errorMessageJson);\n }\n });\n\n await use(umbracoUi);\n }\n})\n\nexport {test};"]}
|