@acorex/platform 20.9.27 → 20.9.28

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.
@@ -191,8 +191,7 @@ function resolveEntityListFilterQueryField(filter, operator) {
191
191
  //#endregion
192
192
 
193
193
  //#region ---- Entity action helpers (pure data, no Angular) ----
194
- //#region Master
195
- function entityMasterCreateAction() {
194
+ function entityMasterCreateAction(permissions) {
196
195
  return {
197
196
  title: '@general:actions.create.title',
198
197
  command: {
@@ -201,9 +200,10 @@ function entityMasterCreateAction() {
201
200
  priority: 'primary',
202
201
  type: AXPSystemActionType.Create,
203
202
  scope: AXPEntityCommandScope.TypeLevel,
203
+ ...(permissions?.length ? { permissions } : {}),
204
204
  };
205
205
  }
206
- function entityMasterEditAction() {
206
+ function entityMasterEditAction(permissions) {
207
207
  return {
208
208
  title: '@general:actions.edit.title',
209
209
  command: 'Entity:Update',
@@ -211,9 +211,10 @@ function entityMasterEditAction() {
211
211
  type: AXPSystemActionType.Update,
212
212
  scope: AXPEntityCommandScope.Individual,
213
213
  default: true,
214
+ ...(permissions?.length ? { permissions } : {}),
214
215
  };
215
216
  }
216
- function entityMasterBulkDeleteAction() {
217
+ function entityMasterBulkDeleteAction(permissions) {
217
218
  return {
218
219
  title: '@general:actions.delete-items.title',
219
220
  command: 'delete-entity',
@@ -221,9 +222,10 @@ function entityMasterBulkDeleteAction() {
221
222
  type: AXPSystemActionType.Delete,
222
223
  scope: AXPEntityCommandScope.Selected,
223
224
  order: 100,
225
+ ...(permissions?.length ? { permissions } : {}),
224
226
  };
225
227
  }
226
- function entityMasterViewAction() {
228
+ function entityMasterViewAction(permissions) {
227
229
  return {
228
230
  title: '@general:actions.view.title',
229
231
  command: 'open-entity',
@@ -231,9 +233,10 @@ function entityMasterViewAction() {
231
233
  type: AXPSystemActionType.View,
232
234
  scope: AXPEntityCommandScope.Individual,
233
235
  default: true,
236
+ ...(permissions?.length ? { permissions } : {}),
234
237
  };
235
238
  }
236
- function entityMasterDeleteAction() {
239
+ function entityMasterDeleteAction(permissions) {
237
240
  return {
238
241
  title: '@general:actions.delete.title',
239
242
  command: 'delete-entity',
@@ -242,9 +245,10 @@ function entityMasterDeleteAction() {
242
245
  scope: AXPEntityCommandScope.Individual,
243
246
  order: 100,
244
247
  shortcuts: ['ctrl+shift+delete'],
248
+ ...(permissions?.length ? { permissions } : {}),
245
249
  };
246
250
  }
247
- function entityMasterCrudActions(options) {
251
+ function entityMasterCrudActions(options, permissions) {
248
252
  const opts = {
249
253
  create: true,
250
254
  delete: true,
@@ -254,22 +258,23 @@ function entityMasterCrudActions(options) {
254
258
  };
255
259
  const actions = [];
256
260
  if (opts.create) {
257
- actions.push(entityMasterCreateAction());
261
+ actions.push(entityMasterCreateAction(permissions?.create));
258
262
  }
259
263
  if (opts.delete) {
260
- actions.push(entityMasterBulkDeleteAction());
261
- actions.push(entityMasterDeleteAction());
264
+ // Bulk + row delete share the same delete permission keys.
265
+ actions.push(entityMasterBulkDeleteAction(permissions?.delete));
266
+ actions.push(entityMasterDeleteAction(permissions?.delete));
262
267
  }
263
268
  if (opts.view) {
264
- actions.push(entityMasterViewAction());
269
+ actions.push(entityMasterViewAction(permissions?.view));
265
270
  }
266
271
  if (opts.edit) {
267
- actions.push(entityMasterEditAction());
272
+ actions.push(entityMasterEditAction(permissions?.edit));
268
273
  }
269
274
  return actions;
270
275
  }
271
- function entityMasterRecordActions() {
272
- return [entityMasterDeleteAction()];
276
+ function entityMasterRecordActions(permissions) {
277
+ return [entityMasterDeleteAction(permissions)];
273
278
  }
274
279
  //#endregion
275
280
  //#region Details
@@ -454,6 +459,21 @@ function entityDetailsReferenceCreateActions(type) {
454
459
  }
455
460
  //#endregion
456
461
 
462
+ //#region ---- Entity action permission helpers ----
463
+ /**
464
+ * Returns whether an entity action is permitted for the current session.
465
+ * Empty / missing `permissions` keeps the action visible (migration-safe).
466
+ * When keys are present, all must pass (AND), matching {@link AXPSessionService.authorize}.
467
+ */
468
+ function isEntityActionPermitted(action, authorize) {
469
+ const keys = action.permissions;
470
+ if (!keys?.length) {
471
+ return true;
472
+ }
473
+ return authorize(...keys);
474
+ }
475
+ //#endregion
476
+
457
477
  //#region ---- Helpers barrel ----
458
478
  //#endregion
459
479
 
@@ -1248,5 +1268,5 @@ const AXPEntityEventsKeys = {
1248
1268
  * Generated bundle index. Do not edit.
1249
1269
  */
1250
1270
 
1251
- export { AXPEntityCommandScope, AXPEntityDataSourceKeys, AXPEntityEventsKeys, AXPEntityQueryType, AXPEntityType, AXPRelationshipCardinality, AXPRelationshipKind, AXP_RECORD_WORKFLOW_INFO_CORRELATION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_DEFINITION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_INSTANCE_ID_FIELD, ENTITY_LAYOUT_SINGLE_TITLE_PATH, ENTITY_ROW_POPUP_TITLE_OPTION, ENTITY_ROW_TITLE_TEMPLATE_OPTION, PAGE_LIST_WIDGET_NAME_PREFIX, buildAXPRecordWorkflowInfo, buildEntitySearchTitleContext, buildPageListTableWidgetId, buildPageListWidgetName, collectEntityListFilterDefinitions, collectEntityListSortableFields, collectEntityQuickSearchFieldPaths, collectMergeDetailListPropertyNames, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectPropertyExposeTargetPaths, collectQuickSearchPathsFromSingleEntityDefinition, createAllQueryView, createQueryView, encodeEntityListFilterContextField, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, getEntityInfo, getRecordWorkflowCorrelationId, getRecordWorkflowInstanceId, isCardFieldBadgeDisplay, isEntityPropertySortEnabled, isMeaningfulEntityDisplayTitle, isPageListWidgetName, isRowBoundEntityDisplayTemplate, isUnresolvedEntityDisplayTemplate, mergeForeignKeyFieldIntoCreateActions, normalizeEntityDisplayTemplate, normalizeExpressionTemplate, parseDottedFieldPath, parsePropertyExposeEntries, parseRelatedEntityFullName, resolveCardFieldBadgeColor, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveEntityColumnDataPath, resolveEntityListFilterContextField, resolveEntityListFilterQueryField, resolveEntityModifyRecordTitleTemplate, resolveEntityPropertyInlineFilterField, resolveEntityRowTitleTemplate, resolveLookupWidgetCreateOptions, resolvePropertyExposeDisplayTarget, sanitizeResolvedEntityDisplayTitle };
1271
+ export { AXPEntityCommandScope, AXPEntityDataSourceKeys, AXPEntityEventsKeys, AXPEntityQueryType, AXPEntityType, AXPRelationshipCardinality, AXPRelationshipKind, AXP_RECORD_WORKFLOW_INFO_CORRELATION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_DEFINITION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_INSTANCE_ID_FIELD, ENTITY_LAYOUT_SINGLE_TITLE_PATH, ENTITY_ROW_POPUP_TITLE_OPTION, ENTITY_ROW_TITLE_TEMPLATE_OPTION, PAGE_LIST_WIDGET_NAME_PREFIX, buildAXPRecordWorkflowInfo, buildEntitySearchTitleContext, buildPageListTableWidgetId, buildPageListWidgetName, collectEntityListFilterDefinitions, collectEntityListSortableFields, collectEntityQuickSearchFieldPaths, collectMergeDetailListPropertyNames, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectPropertyExposeTargetPaths, collectQuickSearchPathsFromSingleEntityDefinition, createAllQueryView, createQueryView, encodeEntityListFilterContextField, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, getEntityInfo, getRecordWorkflowCorrelationId, getRecordWorkflowInstanceId, isCardFieldBadgeDisplay, isEntityActionPermitted, isEntityPropertySortEnabled, isMeaningfulEntityDisplayTitle, isPageListWidgetName, isRowBoundEntityDisplayTemplate, isUnresolvedEntityDisplayTemplate, mergeForeignKeyFieldIntoCreateActions, normalizeEntityDisplayTemplate, normalizeExpressionTemplate, parseDottedFieldPath, parsePropertyExposeEntries, parseRelatedEntityFullName, resolveCardFieldBadgeColor, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveEntityColumnDataPath, resolveEntityListFilterContextField, resolveEntityListFilterQueryField, resolveEntityModifyRecordTitleTemplate, resolveEntityPropertyInlineFilterField, resolveEntityRowTitleTemplate, resolveLookupWidgetCreateOptions, resolvePropertyExposeDisplayTarget, sanitizeResolvedEntityDisplayTitle };
1252
1272
  //# sourceMappingURL=acorex-platform-layout-entity-contracts.mjs.map