V15: Collection Bulk Action Permissions conditions (#17593)
* Deprecated TypeScript exports * Removed the Bulk Action Permission condition * Removed the "bulkActionPermissions" configuration It's now based on manifest/extension conditions. * Added user permission checks for documents (media do not yet have entity permissions) * Added console warning for 'bulk-action-permissions' editor
This commit is contained in:
@@ -854,16 +854,6 @@ export const data: Array<UmbMockDataTypeModel> = [
|
||||
],
|
||||
},
|
||||
{ alias: 'orderBy', value: 'updateDate' },
|
||||
{
|
||||
alias: 'bulkActionPermissions',
|
||||
value: {
|
||||
allowBulkPublish: true,
|
||||
allowBulkUnpublish: false,
|
||||
allowBulkCopy: true,
|
||||
allowBulkMove: false,
|
||||
allowBulkDelete: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
alias: 'layouts',
|
||||
value: [
|
||||
@@ -898,16 +888,6 @@ export const data: Array<UmbMockDataTypeModel> = [
|
||||
],
|
||||
},
|
||||
{ alias: 'orderBy', value: 'updateDate' },
|
||||
{
|
||||
alias: 'bulkActionPermissions',
|
||||
value: {
|
||||
allowBulkPublish: false,
|
||||
allowBulkUnpublish: false,
|
||||
allowBulkCopy: true,
|
||||
allowBulkMove: true,
|
||||
allowBulkDelete: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
alias: 'layouts',
|
||||
value: [
|
||||
|
||||
@@ -4,6 +4,7 @@ import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@um
|
||||
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export class UmbCollectionBulkActionPermissionCondition
|
||||
extends UmbConditionBase<CollectionBulkActionPermissionConditionConfig>
|
||||
implements UmbExtensionCondition
|
||||
@@ -21,4 +22,5 @@ export class UmbCollectionBulkActionPermissionCondition
|
||||
}
|
||||
}
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export default UmbCollectionBulkActionPermissionCondition;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export const UMB_COLLECTION_ALIAS_CONDITION = 'Umb.Condition.CollectionAlias';
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export const UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION = 'Umb.Condition.CollectionBulkActionPermission';
|
||||
|
||||
@@ -8,6 +8,7 @@ export const manifests: Array<ManifestCondition> = [
|
||||
alias: UMB_COLLECTION_ALIAS_CONDITION,
|
||||
api: () => import('./collection-alias.condition.js'),
|
||||
},
|
||||
/** @deprecated No longer used internally. This class will be removed in Umbraco 17. [LK] */
|
||||
{
|
||||
type: 'condition',
|
||||
name: 'Collection Bulk Action Permission Condition',
|
||||
|
||||
@@ -2,6 +2,7 @@ import type { UmbCollectionBulkActionPermissions } from '../types.js';
|
||||
import type { UMB_COLLECTION_ALIAS_CONDITION, UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION } from './constants.js';
|
||||
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export type CollectionBulkActionPermissionConditionConfig = UmbConditionConfigBase<
|
||||
typeof UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION
|
||||
> & {
|
||||
|
||||
@@ -5,6 +5,7 @@ import type { UmbPaginationManager } from '@umbraco-cms/backoffice/utils';
|
||||
export type * from './extensions/index.js';
|
||||
export type * from './conditions/types.js';
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export interface UmbCollectionBulkActionPermissions {
|
||||
allowBulkCopy: boolean;
|
||||
allowBulkDelete: boolean;
|
||||
@@ -16,6 +17,7 @@ export interface UmbCollectionBulkActionPermissions {
|
||||
export interface UmbCollectionConfiguration {
|
||||
unique?: string;
|
||||
dataTypeId?: string;
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
allowedEntityBulkActions?: UmbCollectionBulkActionPermissions;
|
||||
layouts?: Array<UmbCollectionLayoutConfiguration>;
|
||||
orderBy?: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { UmbCollectionBulkActionPermissions, UmbCollectionConfiguration } from '../../collection/types.js';
|
||||
import type { UmbCollectionConfiguration } from '../../collection/types.js';
|
||||
import { UMB_CONTENT_COLLECTION_WORKSPACE_CONTEXT } from './content-collection-workspace.context-token.js';
|
||||
import { customElement, html, nothing, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
@@ -64,7 +64,6 @@ export class UmbContentCollectionWorkspaceViewElement extends UmbLitElement impl
|
||||
const pageSize = Number(config.getValueByAlias('pageSize'));
|
||||
return {
|
||||
unique: this._documentUnique,
|
||||
allowedEntityBulkActions: config?.getValueByAlias<UmbCollectionBulkActionPermissions>('bulkActionPermissions'),
|
||||
layouts: config?.getValueByAlias('layouts'),
|
||||
orderBy: config?.getValueByAlias('orderBy') ?? 'updateDate',
|
||||
orderDirection: config?.getValueByAlias('orderDirection') ?? 'asc',
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../../collection/index.js';
|
||||
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
|
||||
import { UMB_DOCUMENT_TREE_ALIAS } from '../../tree/manifests.js';
|
||||
import { UMB_USER_PERMISSION_DOCUMENT_DUPLICATE } from '../../user-permissions/constants.js';
|
||||
import { UMB_BULK_DUPLICATE_DOCUMENT_REPOSITORY_ALIAS } from './repository/constants.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import {
|
||||
UMB_COLLECTION_ALIAS_CONDITION,
|
||||
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
|
||||
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -27,8 +24,8 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
match: UMB_DOCUMENT_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkCopy,
|
||||
alias: 'Umb.Condition.UserPermission.Document',
|
||||
allOf: [UMB_USER_PERMISSION_DOCUMENT_DUPLICATE],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../collection/index.js';
|
||||
import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js';
|
||||
import {
|
||||
UMB_USER_PERMISSION_DOCUMENT_PUBLISH,
|
||||
UMB_USER_PERMISSION_DOCUMENT_UNPUBLISH,
|
||||
} from '../user-permissions/constants.js';
|
||||
import { manifests as duplicateToManifests } from './duplicate-to/manifests.js';
|
||||
import { manifests as moveToManifests } from './move-to/manifests.js';
|
||||
import { manifests as trashManifests } from './trash/manifests.js';
|
||||
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
|
||||
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
|
||||
import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import {
|
||||
UMB_COLLECTION_ALIAS_CONDITION,
|
||||
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
export const entityBulkActions: Array<ManifestEntityBulkAction> = [
|
||||
{
|
||||
@@ -29,8 +29,8 @@ export const entityBulkActions: Array<ManifestEntityBulkAction> = [
|
||||
match: UMB_DOCUMENT_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkPublish,
|
||||
alias: 'Umb.Condition.UserPermission.Document',
|
||||
allOf: [UMB_USER_PERMISSION_DOCUMENT_PUBLISH],
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -52,8 +52,8 @@ export const entityBulkActions: Array<ManifestEntityBulkAction> = [
|
||||
match: UMB_DOCUMENT_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkUnpublish,
|
||||
alias: 'Umb.Condition.UserPermission.Document',
|
||||
allOf: [UMB_USER_PERMISSION_DOCUMENT_UNPUBLISH],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../../collection/index.js';
|
||||
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
|
||||
import { UMB_DOCUMENT_TREE_ALIAS } from '../../tree/manifests.js';
|
||||
|
||||
import { UMB_USER_PERMISSION_DOCUMENT_MOVE } from '../../user-permissions/constants.js';
|
||||
import { UMB_BULK_MOVE_DOCUMENT_REPOSITORY_ALIAS } from './repository/constants.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import {
|
||||
UMB_COLLECTION_ALIAS_CONDITION,
|
||||
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
|
||||
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -28,8 +24,8 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
match: UMB_DOCUMENT_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkMove,
|
||||
alias: 'Umb.Condition.UserPermission.Document',
|
||||
allOf: [UMB_USER_PERMISSION_DOCUMENT_MOVE],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../../collection/index.js';
|
||||
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
|
||||
import { UMB_USER_PERMISSION_DOCUMENT_DELETE } from '../../user-permissions/constants.js';
|
||||
import { UMB_BULK_TRASH_DOCUMENT_REPOSITORY_ALIAS } from './repository/constants.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import {
|
||||
UMB_COLLECTION_ALIAS_CONDITION,
|
||||
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
|
||||
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -25,8 +22,8 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
match: UMB_DOCUMENT_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkDelete,
|
||||
alias: 'Umb.Condition.UserPermission.Document',
|
||||
allOf: [UMB_USER_PERMISSION_DOCUMENT_DELETE],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -6,11 +6,8 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type';
|
||||
import { UmbEntityContext } from '@umbraco-cms/backoffice/entity';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
|
||||
import {
|
||||
UmbCollectionElement,
|
||||
type UmbCollectionBulkActionPermissions,
|
||||
type UmbCollectionConfiguration,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import { UmbCollectionElement } from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionConfiguration } from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type';
|
||||
import type { UmbRoute } from '@umbraco-cms/backoffice/router';
|
||||
|
||||
@@ -74,7 +71,6 @@ export class UmbMediaDashboardElement extends UmbLitElement {
|
||||
return {
|
||||
unique: '',
|
||||
dataTypeId: '',
|
||||
allowedEntityBulkActions: config?.getValueByAlias<UmbCollectionBulkActionPermissions>('bulkActionPermissions'),
|
||||
layouts: config?.getValueByAlias('layouts'),
|
||||
orderBy: config?.getValueByAlias('orderBy') ?? 'updateDate',
|
||||
orderDirection: config?.getValueByAlias('orderDirection') ?? 'asc',
|
||||
|
||||
@@ -3,11 +3,7 @@ import { UMB_MEDIA_ENTITY_TYPE } from '../../entity.js';
|
||||
import { UMB_MEDIA_TREE_ALIAS } from '../../tree/constants.js';
|
||||
import { UMB_BULK_MOVE_MEDIA_REPOSITORY_ALIAS } from './repository/constants.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import {
|
||||
UMB_COLLECTION_ALIAS_CONDITION,
|
||||
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
|
||||
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
const bulkMoveAction: UmbExtensionManifest = {
|
||||
type: 'entityBulkAction',
|
||||
@@ -25,10 +21,6 @@ const bulkMoveAction: UmbExtensionManifest = {
|
||||
alias: UMB_COLLECTION_ALIAS_CONDITION,
|
||||
match: UMB_MEDIA_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkMove,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@@ -2,11 +2,7 @@ import { UMB_MEDIA_COLLECTION_ALIAS } from '../../collection/index.js';
|
||||
import { UMB_MEDIA_ENTITY_TYPE } from '../../entity.js';
|
||||
import { UMB_BULK_TRASH_MEDIA_REPOSITORY_ALIAS } from './repository/constants.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import {
|
||||
UMB_COLLECTION_ALIAS_CONDITION,
|
||||
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
|
||||
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
const bulkTrashAction: UmbExtensionManifest = {
|
||||
type: 'entityBulkAction',
|
||||
@@ -23,10 +19,6 @@ const bulkTrashAction: UmbExtensionManifest = {
|
||||
alias: UMB_COLLECTION_ALIAS_CONDITION,
|
||||
match: UMB_MEDIA_COLLECTION_ALIAS,
|
||||
},
|
||||
{
|
||||
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
|
||||
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkDelete,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/property-editor';
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export const manifest: ManifestPropertyEditorUi = {
|
||||
type: 'propertyEditorUi',
|
||||
alias: 'Umb.PropertyEditorUi.Collection.BulkActionPermissions',
|
||||
|
||||
@@ -18,6 +18,7 @@ type BulkActionPermissionType =
|
||||
|
||||
/**
|
||||
* @element umb-property-editor-ui-collection-permissions
|
||||
* @deprecated No longer used internally. This will be removed in Umbraco 17. [LK]
|
||||
*/
|
||||
@customElement('umb-property-editor-ui-collection-permissions')
|
||||
export class UmbPropertyEditorUICollectionPermissionsElement
|
||||
@@ -66,6 +67,12 @@ export class UmbPropertyEditorUICollectionPermissionsElement
|
||||
this.dispatchEvent(new UmbPropertyValueChangeEvent());
|
||||
}
|
||||
|
||||
protected override firstUpdated() {
|
||||
console.warn(
|
||||
'The `umb-property-editor-ui-collection-permissions` component has been deprecated, it will be removed in Umbraco 17.',
|
||||
);
|
||||
}
|
||||
|
||||
override render() {
|
||||
return html`<uui-toggle
|
||||
?checked=${this.value.allowBulkPublish}
|
||||
@@ -100,6 +107,7 @@ export class UmbPropertyEditorUICollectionPermissionsElement
|
||||
];
|
||||
}
|
||||
|
||||
/** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */
|
||||
export default UmbPropertyEditorUICollectionPermissionsElement;
|
||||
|
||||
declare global {
|
||||
|
||||
@@ -41,12 +41,6 @@ const propertyEditorUiManifest: ManifestPropertyEditorUi = {
|
||||
propertyEditorUiAlias: 'Umb.PropertyEditorUi.Integer',
|
||||
config: [{ alias: 'min', value: 0 }],
|
||||
},
|
||||
{
|
||||
alias: 'bulkActionPermissions',
|
||||
label: 'Bulk Action Permissions',
|
||||
description: 'The bulk actions that are allowed on items in the Collection view.',
|
||||
propertyEditorUiAlias: 'Umb.PropertyEditorUi.Collection.BulkActionPermissions',
|
||||
},
|
||||
{
|
||||
alias: 'icon',
|
||||
label: 'Workspace View icon',
|
||||
@@ -85,10 +79,6 @@ const propertyEditorUiManifest: ManifestPropertyEditorUi = {
|
||||
{ alias: 'pageSize', value: 10 },
|
||||
{ alias: 'orderBy', value: 'sortOrder' },
|
||||
{ alias: 'orderDirection', value: 'desc' },
|
||||
{
|
||||
alias: 'bulkActionPermissions',
|
||||
value: { allowBulkPublish: true, allowBulkUnpublish: true, allowBulkCopy: true },
|
||||
},
|
||||
{ alias: 'icon', value: 'icon-list' },
|
||||
],
|
||||
},
|
||||
|
||||
@@ -7,10 +7,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
import { UMB_DOCUMENT_COLLECTION_ALIAS } from '@umbraco-cms/backoffice/document';
|
||||
import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property';
|
||||
import { UMB_CONTENT_COLLECTION_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/content';
|
||||
import type {
|
||||
UmbCollectionBulkActionPermissions,
|
||||
UmbCollectionConfiguration,
|
||||
} from '@umbraco-cms/backoffice/collection';
|
||||
import type { UmbCollectionConfiguration } from '@umbraco-cms/backoffice/collection';
|
||||
|
||||
/**
|
||||
* @element umb-property-editor-ui-collection
|
||||
@@ -58,7 +55,6 @@ export class UmbPropertyEditorUICollectionElement extends UmbLitElement implemen
|
||||
): UmbCollectionConfiguration {
|
||||
const pageSize = Number(config?.getValueByAlias('pageSize'));
|
||||
return {
|
||||
allowedEntityBulkActions: config?.getValueByAlias<UmbCollectionBulkActionPermissions>('bulkActionPermissions'),
|
||||
layouts: config?.getValueByAlias('layouts'),
|
||||
orderBy: config?.getValueByAlias('orderBy') ?? 'updateDate',
|
||||
orderDirection: config?.getValueByAlias('orderDirection') ?? 'asc',
|
||||
|
||||
Reference in New Issue
Block a user