@umbraco/json-models-builders
Version:
Builders and models for Umbraco Sites
105 lines • 3.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserGroupBuilder = void 0;
const userGroupPermissionBuilder_1 = require("./userGroupPermissionBuilder");
const AliasHelper_1 = require("../../helpers/AliasHelper");
const userGroupsPermissionsBaseBuilder_1 = require("./userGroupsPermissionsBaseBuilder");
class UserGroupBuilder {
name;
icon;
sections;
languages;
hasAccessToAllLanguages;
documentStartNodeId;
documentRootAccess;
mediaStartNodeId;
mediaRootAccess;
fallbackPermissionsBuilder;
userGroupPermissionBuilder;
description;
elementRootAccess;
elementStartNodeId;
constructor() {
this.sections = [];
this.languages = [];
}
withName(name) {
this.name = name;
return this;
}
withIcon(icon) {
this.icon = icon;
return this;
}
addSection(section) {
this.sections.push(section);
return this;
}
addLanguage(language) {
this.languages.push(language);
return this;
}
withHasAccessToAllLanguages(hasAccessToAllLanguages) {
this.hasAccessToAllLanguages = hasAccessToAllLanguages;
return this;
}
withDocumentStartNodeId(documentStartNodeId) {
this.documentStartNodeId = documentStartNodeId;
return this;
}
withDocumentRootAccess(documentRootAccess) {
this.documentRootAccess = documentRootAccess;
return this;
}
withMediaStartNodeId(mediaStartNodeId) {
this.mediaStartNodeId = mediaStartNodeId;
return this;
}
withMediaRootAccess(mediaRootAccess) {
this.mediaRootAccess = mediaRootAccess;
return this;
}
addFallbackPermission() {
const builder = new userGroupsPermissionsBaseBuilder_1.UserGroupsPermissionsBaseBuilder(this);
this.fallbackPermissionsBuilder = builder;
return builder;
}
addPermissions() {
const builder = new userGroupPermissionBuilder_1.UserGroupPermissionBuilder(this);
this.userGroupPermissionBuilder = builder;
return builder;
}
withDescription(description) {
this.description = description;
return this;
}
withElementStartNodeId(elementStartNodeId) {
this.elementStartNodeId = elementStartNodeId;
return this;
}
withElementRootAccess(elementRootAccess) {
this.elementRootAccess = elementRootAccess;
return this;
}
build() {
return {
name: this.name || '',
alias: AliasHelper_1.AliasHelper.toAlias(this.name) || '',
icon: this.icon || 'icon-bug',
sections: this.sections || [],
languages: this.languages || [],
hasAccessToAllLanguages: this.hasAccessToAllLanguages || false,
documentStartNode: this.documentStartNodeId ? { id: this.documentStartNodeId } : null,
documentRootAccess: this.documentRootAccess || false,
mediaStartNode: this.mediaStartNodeId ? { id: this.mediaStartNodeId } : null,
mediaRootAccess: this.mediaRootAccess || false,
fallbackPermissions: this.fallbackPermissionsBuilder ? this.fallbackPermissionsBuilder.build() : [],
permissions: this.userGroupPermissionBuilder ? this.userGroupPermissionBuilder.build() : [],
description: this.description || '',
elementStartNode: this.elementStartNodeId ? { id: this.elementStartNodeId } : null,
elementRootAccess: this.elementRootAccess || false,
};
}
}
exports.UserGroupBuilder = UserGroupBuilder;
//# sourceMappingURL=userGroupBuilder.js.map