Link to content type and/or template from content/media/member info workspace view only if current user has access to settings (#17965)
* Link to content type and/or template from content/media/member info workspace view only if current user has access to sections. * Fixed HTML * add const for condition alias * export const * return permitted value in onChange callback * use condition to check for access * implement across content * replace strings with consts * replace strings with const * remove attr with the ifDefined directive * allow to pass in callback type * Pass callback type * Update index.ts * add tests for UmbSectionUserPermissionCondition --------- Co-authored-by: Mads Rasmussen <madsr@hey.com>
This commit is contained in:
@@ -3,4 +3,9 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
export type UmbConditionControllerArguments<
|
||||
ConditionConfigType extends UmbConditionConfigBase = UmbConditionConfigBase,
|
||||
> = { host: UmbControllerHost; config: ConditionConfigType; onChange: () => void };
|
||||
ConditionOnChangeCallbackType = () => void,
|
||||
> = {
|
||||
host: UmbControllerHost;
|
||||
config: ConditionConfigType;
|
||||
onChange: ConditionOnChangeCallbackType;
|
||||
};
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export const UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS = 'Umb.Condition.SectionUserPermission';
|
||||
@@ -1,3 +1,4 @@
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from './constants.js';
|
||||
import { UmbSectionAliasCondition } from './section-alias.condition.js';
|
||||
import { UmbSectionUserPermissionCondition } from './section-user-permission.condition.js';
|
||||
|
||||
@@ -5,7 +6,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'condition',
|
||||
name: 'Section User Permission Condition',
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
api: UmbSectionUserPermissionCondition,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
import { expect } from '@open-wc/testing';
|
||||
import { UmbNotificationContext } from '@umbraco-cms/backoffice/notification';
|
||||
import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbCurrentUserContext, UmbCurrentUserStore } from '@umbraco-cms/backoffice/current-user';
|
||||
import { UmbSectionUserPermissionCondition } from './section-user-permission.condition';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from './constants.js';
|
||||
|
||||
@customElement('test-controller-host')
|
||||
class UmbTestControllerHostElement extends UmbControllerHostElementMixin(HTMLElement) {
|
||||
currentUserContext = new UmbCurrentUserContext(this);
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
new UmbCurrentUserStore(this);
|
||||
new UmbNotificationContext(this);
|
||||
}
|
||||
|
||||
async init() {
|
||||
await this.currentUserContext.load();
|
||||
}
|
||||
}
|
||||
|
||||
describe('UmbSectionUserPermissionCondition', () => {
|
||||
let hostElement: UmbTestControllerHostElement;
|
||||
let condition: UmbSectionUserPermissionCondition;
|
||||
|
||||
beforeEach(async () => {
|
||||
hostElement = new UmbTestControllerHostElement();
|
||||
document.body.appendChild(hostElement);
|
||||
await hostElement.init();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
document.body.innerHTML = '';
|
||||
});
|
||||
|
||||
it('should return true if the user have access to the section', (done) => {
|
||||
condition = new UmbSectionUserPermissionCondition(hostElement, {
|
||||
host: hostElement,
|
||||
config: {
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: 'Umb.Section.Content',
|
||||
},
|
||||
onChange: (permitted) => {
|
||||
expect(permitted).to.be.true;
|
||||
done();
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('should return false if the user does not have access to the section', (done) => {
|
||||
condition = new UmbSectionUserPermissionCondition(hostElement, {
|
||||
host: hostElement,
|
||||
config: {
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: 'DOES_NOT_EXIST',
|
||||
},
|
||||
onChange: (permitted) => {
|
||||
expect(permitted).to.be.false;
|
||||
done();
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -4,12 +4,18 @@ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
||||
import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
// Do not export - for internal use only
|
||||
type UmbOnChangeCallbackType = (permitted: boolean) => void;
|
||||
|
||||
export class UmbSectionUserPermissionCondition extends UmbControllerBase implements UmbExtensionCondition {
|
||||
config: UmbSectionUserPermissionConditionConfig;
|
||||
permitted = false;
|
||||
#onChange: () => void;
|
||||
#onChange: UmbOnChangeCallbackType;
|
||||
|
||||
constructor(host: UmbControllerHost, args: UmbConditionControllerArguments<UmbSectionUserPermissionConditionConfig>) {
|
||||
constructor(
|
||||
host: UmbControllerHost,
|
||||
args: UmbConditionControllerArguments<UmbSectionUserPermissionConditionConfig, UmbOnChangeCallbackType>,
|
||||
) {
|
||||
super(host);
|
||||
this.config = args.config;
|
||||
this.#onChange = args.onChange;
|
||||
@@ -20,7 +26,7 @@ export class UmbSectionUserPermissionCondition extends UmbControllerBase impleme
|
||||
(currentUser) => {
|
||||
const allowedSections = currentUser?.allowedSections || [];
|
||||
this.permitted = allowedSections.includes(this.config.match);
|
||||
this.#onChange();
|
||||
this.#onChange(this.permitted);
|
||||
},
|
||||
'umbSectionUserPermissionConditionObserver',
|
||||
);
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import type { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from './constants.js';
|
||||
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export type UmbSectionUserPermissionConditionConfig = UmbConditionConfigBase<'Umb.Condition.SectionUserPermission'> & {
|
||||
export type UmbSectionUserPermissionConditionConfig = UmbConditionConfigBase<
|
||||
typeof UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS
|
||||
> & {
|
||||
/**
|
||||
*
|
||||
*
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
export * from './conditions/constants.js';
|
||||
export * from './paths.js';
|
||||
export * from './repository/constants.js';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
|
||||
import { UMB_USER_PERMISSION_DOCUMENT_PUBLIC_ACCESS } from '../../user-permissions/index.js';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
import { UMB_ENTITY_IS_NOT_TRASHED_CONDITION_ALIAS } from '@umbraco-cms/backoffice/recycle-bin';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
@@ -25,7 +26,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
alias: UMB_ENTITY_IS_NOT_TRASHED_CONDITION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: 'Umb.Section.Members',
|
||||
},
|
||||
],
|
||||
|
||||
@@ -11,6 +11,9 @@ import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace';
|
||||
import { UMB_TEMPLATE_PICKER_MODAL, UmbTemplateItemRepository } from '@umbraco-cms/backoffice/template';
|
||||
import type { UmbDocumentTypeDetailModel } from '@umbraco-cms/backoffice/document-type';
|
||||
import type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router';
|
||||
import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
// import of local components
|
||||
import './document-workspace-view-info-links.element.js';
|
||||
@@ -48,6 +51,9 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement {
|
||||
@state()
|
||||
private _variantsWithPendingChanges: Array<any> = [];
|
||||
|
||||
@state()
|
||||
private _hasSettingsAccess: boolean = false;
|
||||
|
||||
#workspaceContext?: typeof UMB_DOCUMENT_WORKSPACE_CONTEXT.TYPE;
|
||||
#templateRepository = new UmbTemplateItemRepository(this);
|
||||
#documentPublishingWorkspaceContext?: typeof UMB_DOCUMENT_PUBLISHING_WORKSPACE_CONTEXT.TYPE;
|
||||
@@ -83,6 +89,17 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement {
|
||||
this.#documentPublishingWorkspaceContext = instance;
|
||||
this.#observePendingChanges();
|
||||
});
|
||||
|
||||
createExtensionApiByAlias(this, UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS, [
|
||||
{
|
||||
config: {
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
onChange: (permitted: boolean) => {
|
||||
this._hasSettingsAccess = permitted;
|
||||
},
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
#observeContent() {
|
||||
@@ -189,7 +206,10 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement {
|
||||
<strong><umb-localize key="content_documentType">Document Type</umb-localize></strong>
|
||||
<uui-ref-node-document-type
|
||||
standalone
|
||||
href=${editDocumentTypePath + 'edit/' + this._documentTypeUnique}
|
||||
href=${ifDefined(
|
||||
this._hasSettingsAccess ? editDocumentTypePath + 'edit/' + this._documentTypeUnique : undefined,
|
||||
)}
|
||||
?readonly=${!this._hasSettingsAccess}
|
||||
name=${ifDefined(this.localize.string(this._documentTypeName ?? ''))}>
|
||||
<umb-icon slot="icon" name=${ifDefined(this._documentTypeIcon)}></umb-icon>
|
||||
</uui-ref-node-document-type>
|
||||
@@ -215,7 +235,10 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement {
|
||||
<uui-ref-node
|
||||
standalone
|
||||
name=${ifDefined(this._templateName)}
|
||||
href=${editTemplatePath + 'edit/' + this._templateUnique}>
|
||||
href=${ifDefined(
|
||||
this._hasSettingsAccess ? editTemplatePath + 'edit/' + this._templateUnique : undefined,
|
||||
)}
|
||||
?readonly=${!this._hasSettingsAccess}>
|
||||
<uui-icon slot="icon" name="icon-document-html"></uui-icon>
|
||||
<uui-action-bar slot="actions">
|
||||
<uui-button
|
||||
@@ -311,6 +334,11 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement {
|
||||
.variant-state > span {
|
||||
color: var(--uui-color-divider-emphasis);
|
||||
}
|
||||
|
||||
uui-ref-node-document-type[readonly] {
|
||||
padding-top: 7px;
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { UMB_CONTENT_SECTION_ALIAS } from '@umbraco-cms/backoffice/content';
|
||||
import { UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_CONTENT_MENU_ALIAS } from '@umbraco-cms/backoffice/document';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -13,7 +14,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: UMB_CONTENT_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'dashboard',
|
||||
@@ -13,7 +15,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: 'Umb.Section.Settings',
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_MENU_ALIAS } from '../media/index.js';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
const sectionAlias = 'Umb.Section.Media';
|
||||
|
||||
@@ -14,7 +15,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: sectionAlias,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -8,6 +8,9 @@ import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/rou
|
||||
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
||||
import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace';
|
||||
import type { MediaUrlInfoModel } from '@umbraco-cms/backoffice/external/backend-api';
|
||||
import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
// import of local components
|
||||
import './media-workspace-view-info-history.element.js';
|
||||
@@ -43,6 +46,9 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
|
||||
@state()
|
||||
private _updateDate?: string | null = null;
|
||||
|
||||
@state()
|
||||
private _hasSettingsAccess: boolean = false;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
@@ -55,6 +61,17 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
|
||||
this._editMediaTypePath = routeBuilder({});
|
||||
});
|
||||
|
||||
createExtensionApiByAlias(this, UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS, [
|
||||
{
|
||||
config: {
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
onChange: (permitted: boolean) => {
|
||||
this._hasSettingsAccess = permitted;
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
this.consumeContext(UMB_MEDIA_WORKSPACE_CONTEXT, (context) => {
|
||||
this.#workspaceContext = context;
|
||||
this._mediaTypeUnique = this.#workspaceContext.getContentTypeId()!;
|
||||
@@ -175,7 +192,10 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
|
||||
<strong><umb-localize key="content_mediaType">Media Type</umb-localize></strong>
|
||||
<uui-ref-node-document-type
|
||||
standalone
|
||||
href=${this._editMediaTypePath + 'edit/' + this._mediaTypeUnique}
|
||||
href=${ifDefined(
|
||||
this._hasSettingsAccess ? this._editMediaTypePath + 'edit/' + this._mediaTypeUnique : undefined,
|
||||
)}
|
||||
?readonly=${!this._hasSettingsAccess}
|
||||
name=${ifDefined(this._mediaTypeName)}>
|
||||
${this._mediaTypeIcon ? html`<umb-icon slot="icon" name=${this._mediaTypeIcon}></umb-icon>` : nothing}
|
||||
</uui-ref-node-document-type>
|
||||
@@ -281,6 +301,11 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
|
||||
.link-item.with-href:hover {
|
||||
background: var(--uui-color-divider);
|
||||
}
|
||||
|
||||
uui-ref-node-document-type[readonly] {
|
||||
padding-top: 7px;
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -3,12 +3,15 @@ import { UMB_MEMBER_WORKSPACE_CONTEXT } from '../../member-workspace.context-tok
|
||||
import { UmbMemberKind, type UmbMemberKindType } from '../../../../utils/index.js';
|
||||
import { TimeFormatOptions } from './utils.js';
|
||||
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
||||
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/workspace';
|
||||
import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace';
|
||||
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
|
||||
import { UmbMemberTypeItemRepository } from '@umbraco-cms/backoffice/member-type';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
@customElement('umb-member-workspace-view-member-info')
|
||||
export class UmbMemberWorkspaceViewMemberInfoElement extends UmbLitElement implements UmbWorkspaceViewElement {
|
||||
@@ -36,6 +39,9 @@ export class UmbMemberWorkspaceViewMemberInfoElement extends UmbLitElement imple
|
||||
@state()
|
||||
private _memberKind?: UmbMemberKindType;
|
||||
|
||||
@state()
|
||||
private _hasSettingsAccess: boolean = false;
|
||||
|
||||
#workspaceContext?: typeof UMB_MEMBER_WORKSPACE_CONTEXT.TYPE;
|
||||
#memberTypeItemRepository: UmbMemberTypeItemRepository = new UmbMemberTypeItemRepository(this);
|
||||
|
||||
@@ -64,6 +70,17 @@ export class UmbMemberWorkspaceViewMemberInfoElement extends UmbLitElement imple
|
||||
this._memberTypeName = memberType.name;
|
||||
this._memberTypeIcon = memberType.icon;
|
||||
});
|
||||
|
||||
createExtensionApiByAlias(this, UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS, [
|
||||
{
|
||||
config: {
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
onChange: (permitted: boolean) => {
|
||||
this._hasSettingsAccess = permitted;
|
||||
},
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
#setDateFormat(date: string | undefined | null): string {
|
||||
@@ -91,7 +108,10 @@ export class UmbMemberWorkspaceViewMemberInfoElement extends UmbLitElement imple
|
||||
<uui-ref-node
|
||||
standalone
|
||||
.name=${this._memberTypeName}
|
||||
.href=${this._editMemberTypePath + 'edit/' + this._memberTypeUnique}>
|
||||
href=${ifDefined(
|
||||
this._hasSettingsAccess ? this._editMemberTypePath + 'edit/' + this._memberTypeUnique : undefined,
|
||||
)}
|
||||
?readonly=${!this._hasSettingsAccess}>
|
||||
<umb-icon slot="icon" .name=${this._memberTypeIcon}></umb-icon>
|
||||
</uui-ref-node>
|
||||
</div>
|
||||
@@ -117,6 +137,11 @@ export class UmbMemberWorkspaceViewMemberInfoElement extends UmbLitElement imple
|
||||
h4 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
uui-ref-node[readonly] {
|
||||
padding-top: 7px;
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { UMB_MEMBER_MANAGEMENT_SECTION_ALIAS } from './constants.js';
|
||||
import { manifests as sectionSidebarAppManifests } from './sidebar-app/manifests.js';
|
||||
import { manifests as menuManifests } from './menu/manifests.js';
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
const section: UmbExtensionManifest = {
|
||||
type: 'section',
|
||||
@@ -14,7 +15,7 @@ const section: UmbExtensionManifest = {
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: UMB_MEMBER_MANAGEMENT_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'dashboard',
|
||||
@@ -12,7 +14,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: 'Umb.Section.Settings',
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
const sectionAlias = 'Umb.Section.Packages';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
@@ -12,7 +14,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: sectionAlias,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests = [
|
||||
{
|
||||
type: 'dashboard',
|
||||
@@ -12,7 +14,7 @@ export const manifests = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: 'Umb.Section.Settings',
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests = [
|
||||
{
|
||||
type: 'dashboard',
|
||||
@@ -12,7 +14,7 @@ export const manifests = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: 'Umb.Section.Settings',
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { manifests as examineManifests } from './examine-management-dashboard/manifests.js';
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -32,7 +33,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: 'Umb.Section.Settings',
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from './constants.js';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> = [
|
||||
@@ -13,7 +14,7 @@ export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> =
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests = [
|
||||
{
|
||||
type: 'dashboard',
|
||||
@@ -12,7 +14,7 @@ export const manifests = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: 'Umb.Section.Settings',
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const sectionAlias = 'Umb.Section.Settings';
|
||||
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -19,7 +19,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionAlias',
|
||||
match: sectionAlias,
|
||||
match: UMB_SETTINGS_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { UMB_TRANSLATION_SECTION_ALIAS } from './constants.js';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -12,7 +13,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: UMB_TRANSLATION_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'userProfileApp',
|
||||
@@ -23,7 +25,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: 'Umb.Section.Users',
|
||||
},
|
||||
],
|
||||
|
||||
@@ -2,6 +2,7 @@ import { UMB_USER_MANAGEMENT_SECTION_ALIAS } from './constants.js';
|
||||
import { manifests as sectionSidebarAppManifests } from './sidebar-app/manifests.js';
|
||||
import { manifests as menuManifests } from './menu/manifests.js';
|
||||
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> = [
|
||||
{
|
||||
@@ -15,7 +16,7 @@ export const manifests: Array<UmbExtensionManifest | UmbExtensionManifestKind> =
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.SectionUserPermission',
|
||||
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
||||
match: UMB_USER_MANAGEMENT_SECTION_ALIAS,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -316,7 +316,7 @@ export const foundConsts = [{
|
||||
},
|
||||
{
|
||||
path: '@umbraco-cms/backoffice/section',
|
||||
consts: ["UMB_SECTION_PATH_PATTERN","UMB_SECTION_ITEM_REPOSITORY_ALIAS","UMB_SECTION_PICKER_MODAL","UMB_SECTION_SIDEBAR_CONTEXT","UMB_SECTION_CONTEXT"]
|
||||
consts: ["UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS","UMB_SECTION_PATH_PATTERN","UMB_SECTION_ITEM_REPOSITORY_ALIAS","UMB_SECTION_PICKER_MODAL","UMB_SECTION_SIDEBAR_CONTEXT","UMB_SECTION_CONTEXT"]
|
||||
},
|
||||
{
|
||||
path: '@umbraco-cms/backoffice/server-file-system',
|
||||
|
||||
Reference in New Issue
Block a user