more forEntityTypes
This commit is contained in:
@@ -44,7 +44,7 @@ export class UmbEntityActionsBundleElement extends UmbLitElement {
|
|||||||
this.observe(
|
this.observe(
|
||||||
umbExtensionsRegistry
|
umbExtensionsRegistry
|
||||||
.byType('entityAction')
|
.byType('entityAction')
|
||||||
.pipe(map((actions) => actions.filter((action) => action.meta.entityTypes.includes(this.entityType!)))),
|
.pipe(map((actions) => actions.filter((action) => action.forEntityTypes.includes(this.entityType!)))),
|
||||||
(actions) => {
|
(actions) => {
|
||||||
this._hasActions = actions.length > 0;
|
this._hasActions = actions.length > 0;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api';
|
|||||||
|
|
||||||
export interface ManifestEntityUserPermission extends ManifestBase {
|
export interface ManifestEntityUserPermission extends ManifestBase {
|
||||||
type: 'entityUserPermission';
|
type: 'entityUserPermission';
|
||||||
|
forEntityTypes: Array<string>;
|
||||||
meta: MetaEntityUserPermission;
|
meta: MetaEntityUserPermission;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MetaEntityUserPermission {
|
export interface MetaEntityUserPermission {
|
||||||
entityType: string;
|
|
||||||
verbs: Array<string>;
|
verbs: Array<string>;
|
||||||
label?: string;
|
label?: string;
|
||||||
labelKey?: string;
|
labelKey?: string;
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
import type { ConditionTypes } from '../conditions/types.js';
|
import type { ConditionTypes } from '../conditions/types.js';
|
||||||
import type { MetaEntityAction } from './entity-action.model.js';
|
import type { MetaEntityAction } from './entity-action.model.js';
|
||||||
|
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
|
||||||
import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api';
|
import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api';
|
||||||
import type { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace';
|
import type { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace';
|
||||||
|
|
||||||
export interface ManifestWorkspaceActionMenuItem
|
export interface ManifestWorkspaceActionMenuItem
|
||||||
extends ManifestElementAndApi<HTMLElement, UmbWorkspaceAction>,
|
extends ManifestElementAndApi<UmbControllerHostElement, UmbWorkspaceAction>,
|
||||||
ManifestWithDynamicConditions<ConditionTypes> {
|
ManifestWithDynamicConditions<ConditionTypes> {
|
||||||
type: 'workspaceActionMenuItem';
|
type: 'workspaceActionMenuItem';
|
||||||
meta: MetaWorkspaceActionMenuItem;
|
meta: MetaWorkspaceActionMenuItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Stop inheriting from from EntityActions, they are not equivalent as workspace actions have the workspace context available. [NL]
|
||||||
export interface MetaWorkspaceActionMenuItem extends MetaEntityAction {
|
export interface MetaWorkspaceActionMenuItem extends MetaEntityAction {
|
||||||
/**
|
/**
|
||||||
* Define which workspace actions this menu item should be shown for.
|
* Define which workspace actions this menu item should be shown for.
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ export abstract class UmbTreeItemContextBase<TreeItemType extends UmbTreeItemMod
|
|||||||
this.observe(
|
this.observe(
|
||||||
umbExtensionsRegistry
|
umbExtensionsRegistry
|
||||||
.byType('entityAction')
|
.byType('entityAction')
|
||||||
.pipe(map((actions) => actions.filter((action) => action.meta.entityTypes.includes(this.entityType!)))),
|
.pipe(map((actions) => actions.filter((action) => action.forEntityTypes.includes(this.entityType!)))),
|
||||||
(actions) => {
|
(actions) => {
|
||||||
this.#hasActions.setValue(actions.length > 0);
|
this.#hasActions.setValue(actions.length > 0);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export class UmbTreeItemElement extends UmbExtensionElementAndApiSlotElementBase
|
|||||||
|
|
||||||
const filterByEntityType = (manifest: ManifestTreeItem) => {
|
const filterByEntityType = (manifest: ManifestTreeItem) => {
|
||||||
if (!this._entityType) return false;
|
if (!this._entityType) return false;
|
||||||
return manifest.meta.entityTypes.includes(this._entityType);
|
return manifest.forEntityTypes.includes(this._entityType);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.observe(
|
this.observe(
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_READ,
|
alias: UMB_USER_PERMISSION_DOCUMENT_READ,
|
||||||
name: 'Read Document User Permission',
|
name: 'Read Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Read'],
|
verbs: ['Umb.Document.Read'],
|
||||||
labelKey: 'actions_browse',
|
labelKey: 'actions_browse',
|
||||||
descriptionKey: 'actionDescriptions_browse',
|
descriptionKey: 'actionDescriptions_browse',
|
||||||
@@ -38,8 +38,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_CREATE_BLUEPRINT,
|
alias: UMB_USER_PERMISSION_DOCUMENT_CREATE_BLUEPRINT,
|
||||||
name: 'Create Document Blueprint User Permission',
|
name: 'Create Document Blueprint User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.CreateBlueprint'],
|
verbs: ['Umb.Document.CreateBlueprint'],
|
||||||
labelKey: 'actions_createblueprint',
|
labelKey: 'actions_createblueprint',
|
||||||
descriptionKey: 'actionDescriptions_createblueprint',
|
descriptionKey: 'actionDescriptions_createblueprint',
|
||||||
@@ -49,8 +49,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_DELETE,
|
alias: UMB_USER_PERMISSION_DOCUMENT_DELETE,
|
||||||
name: 'Delete Document User Permission',
|
name: 'Delete Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Delete'],
|
verbs: ['Umb.Document.Delete'],
|
||||||
labelKey: 'actions_delete',
|
labelKey: 'actions_delete',
|
||||||
descriptionKey: 'actionDescriptions_delete',
|
descriptionKey: 'actionDescriptions_delete',
|
||||||
@@ -60,8 +60,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_CREATE,
|
alias: UMB_USER_PERMISSION_DOCUMENT_CREATE,
|
||||||
name: 'Create Document User Permission',
|
name: 'Create Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Create'],
|
verbs: ['Umb.Document.Create'],
|
||||||
labelKey: 'actions_create',
|
labelKey: 'actions_create',
|
||||||
descriptionKey: 'actionDescriptions_create',
|
descriptionKey: 'actionDescriptions_create',
|
||||||
@@ -71,8 +71,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_NOTIFICATIONS,
|
alias: UMB_USER_PERMISSION_DOCUMENT_NOTIFICATIONS,
|
||||||
name: 'Document Notifications User Permission',
|
name: 'Document Notifications User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Notifications'],
|
verbs: ['Umb.Document.Notifications'],
|
||||||
labelKey: 'actions_notify',
|
labelKey: 'actions_notify',
|
||||||
descriptionKey: 'actionDescriptions_notify',
|
descriptionKey: 'actionDescriptions_notify',
|
||||||
@@ -82,8 +82,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_PUBLISH,
|
alias: UMB_USER_PERMISSION_DOCUMENT_PUBLISH,
|
||||||
name: 'Publish Document User Permission',
|
name: 'Publish Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Publish'],
|
verbs: ['Umb.Document.Publish'],
|
||||||
labelKey: 'actions_publish',
|
labelKey: 'actions_publish',
|
||||||
descriptionKey: 'actionDescriptions_publish',
|
descriptionKey: 'actionDescriptions_publish',
|
||||||
@@ -93,8 +93,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_PERMISSIONS,
|
alias: UMB_USER_PERMISSION_DOCUMENT_PERMISSIONS,
|
||||||
name: 'Document Permissions User Permission',
|
name: 'Document Permissions User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Permissions'],
|
verbs: ['Umb.Document.Permissions'],
|
||||||
labelKey: 'actions_setPermissions',
|
labelKey: 'actions_setPermissions',
|
||||||
descriptionKey: 'actionDescriptions_rights',
|
descriptionKey: 'actionDescriptions_rights',
|
||||||
@@ -104,8 +104,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_UNPUBLISH,
|
alias: UMB_USER_PERMISSION_DOCUMENT_UNPUBLISH,
|
||||||
name: 'Unpublish Document User Permission',
|
name: 'Unpublish Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Unpublish'],
|
verbs: ['Umb.Document.Unpublish'],
|
||||||
labelKey: 'actions_unpublish',
|
labelKey: 'actions_unpublish',
|
||||||
descriptionKey: 'actionDescriptions_unpublish',
|
descriptionKey: 'actionDescriptions_unpublish',
|
||||||
@@ -115,8 +115,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_UPDATE,
|
alias: UMB_USER_PERMISSION_DOCUMENT_UPDATE,
|
||||||
name: 'Update Document User Permission',
|
name: 'Update Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Update'],
|
verbs: ['Umb.Document.Update'],
|
||||||
labelKey: 'actions_update',
|
labelKey: 'actions_update',
|
||||||
descriptionKey: 'actionDescriptions_update',
|
descriptionKey: 'actionDescriptions_update',
|
||||||
@@ -126,8 +126,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_DUPLICATE,
|
alias: UMB_USER_PERMISSION_DOCUMENT_DUPLICATE,
|
||||||
name: 'Duplicate Document User Permission',
|
name: 'Duplicate Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Duplicate'],
|
verbs: ['Umb.Document.Duplicate'],
|
||||||
labelKey: 'actions_copy',
|
labelKey: 'actions_copy',
|
||||||
descriptionKey: 'actionDescriptions_copy',
|
descriptionKey: 'actionDescriptions_copy',
|
||||||
@@ -138,8 +138,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_MOVE,
|
alias: UMB_USER_PERMISSION_DOCUMENT_MOVE,
|
||||||
name: 'Move Document User Permission',
|
name: 'Move Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Move'],
|
verbs: ['Umb.Document.Move'],
|
||||||
labelKey: 'actions_move',
|
labelKey: 'actions_move',
|
||||||
descriptionKey: 'actionDescriptions_move',
|
descriptionKey: 'actionDescriptions_move',
|
||||||
@@ -150,8 +150,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_SORT,
|
alias: UMB_USER_PERMISSION_DOCUMENT_SORT,
|
||||||
name: 'Sort Document User Permission',
|
name: 'Sort Document User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Sort'],
|
verbs: ['Umb.Document.Sort'],
|
||||||
labelKey: 'actions_sort',
|
labelKey: 'actions_sort',
|
||||||
descriptionKey: 'actionDescriptions_sort',
|
descriptionKey: 'actionDescriptions_sort',
|
||||||
@@ -162,8 +162,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_CULTURE_AND_HOSTNAMES,
|
alias: UMB_USER_PERMISSION_DOCUMENT_CULTURE_AND_HOSTNAMES,
|
||||||
name: 'Document Culture And Hostnames User Permission',
|
name: 'Document Culture And Hostnames User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.CultureAndHostnames'],
|
verbs: ['Umb.Document.CultureAndHostnames'],
|
||||||
labelKey: 'actions_assigndomain',
|
labelKey: 'actions_assigndomain',
|
||||||
descriptionKey: 'actionDescriptions_assignDomain',
|
descriptionKey: 'actionDescriptions_assignDomain',
|
||||||
@@ -174,8 +174,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_PUBLIC_ACCESS,
|
alias: UMB_USER_PERMISSION_DOCUMENT_PUBLIC_ACCESS,
|
||||||
name: 'Document Public Access User Permission',
|
name: 'Document Public Access User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.PublicAccess'],
|
verbs: ['Umb.Document.PublicAccess'],
|
||||||
labelKey: 'actions_protect',
|
labelKey: 'actions_protect',
|
||||||
descriptionKey: 'actionDescriptions_protect',
|
descriptionKey: 'actionDescriptions_protect',
|
||||||
@@ -186,8 +186,8 @@ const permissions: Array<ManifestEntityUserPermission> = [
|
|||||||
type: 'entityUserPermission',
|
type: 'entityUserPermission',
|
||||||
alias: UMB_USER_PERMISSION_DOCUMENT_ROLLBACK,
|
alias: UMB_USER_PERMISSION_DOCUMENT_ROLLBACK,
|
||||||
name: 'Document Rollback User Permission',
|
name: 'Document Rollback User Permission',
|
||||||
|
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
||||||
meta: {
|
meta: {
|
||||||
entityType: UMB_DOCUMENT_ENTITY_TYPE,
|
|
||||||
verbs: ['Umb.Document.Rollback'],
|
verbs: ['Umb.Document.Rollback'],
|
||||||
labelKey: 'actions_rollback',
|
labelKey: 'actions_rollback',
|
||||||
descriptionKey: 'actionDescriptions_rollback',
|
descriptionKey: 'actionDescriptions_rollback',
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export class UmbUserGroupEntityUserPermissionListElement extends UmbLitElement {
|
|||||||
this.observe(
|
this.observe(
|
||||||
umbExtensionsRegistry.byType('entityUserPermission'),
|
umbExtensionsRegistry.byType('entityUserPermission'),
|
||||||
(manifests) => {
|
(manifests) => {
|
||||||
this._entityTypes = [...new Set(manifests.map((manifest) => manifest.meta.entityType))];
|
this._entityTypes = [...new Set(manifests.map((manifest) => manifest.entityTypeFor))];
|
||||||
},
|
},
|
||||||
'umbUserPermissionsObserver',
|
'umbUserPermissionsObserver',
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -42,7 +42,9 @@ export class UmbInputEntityUserPermissionElement extends FormControlMixin(UmbLit
|
|||||||
this.#manifestObserver = this.observe(
|
this.#manifestObserver = this.observe(
|
||||||
umbExtensionsRegistry.byType('entityUserPermission'),
|
umbExtensionsRegistry.byType('entityUserPermission'),
|
||||||
(userPermissionManifests) => {
|
(userPermissionManifests) => {
|
||||||
this._manifests = userPermissionManifests.filter((manifest) => manifest.meta.entityType === this.entityType);
|
this._manifests = userPermissionManifests.filter((manifest) =>
|
||||||
|
manifest.forEntityTypes.some((x) => x === this.entityType),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
'umbUserPermissionManifestsObserver',
|
'umbUserPermissionManifestsObserver',
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user