diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
index 5b28627085..59d50a40ec 100644
--- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
+++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
@@ -6,62 +6,68 @@
(activate)="tableActivate.emit($event)"
>
@if (actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)) {
-
-
-
-
-
-
-
-
- } @for (prop of propList; track prop.name; let i = $index) {
-
-
- @if (prop.tooltip) {
-
- {{ column.name }}
-
- }@else{
- {{ column.name }}
- }
-
-
-
-
- @if (!row['_' + prop.name].component) {
-
- }@else{
-
+
+
+
+
+ @if (hasAvailableActions(i, row)) {
+
}
+
+
+
+ }
+ @for (prop of propList; track prop.name; let i = $index) {
+
+
+ @if (prop.tooltip) {
+
+ {{ column.name }}
+
+ } @else {
+ {{ column.name }}
+ }
+
+
+
+
+ @if (!row['_' + prop.name].component) {
+
+ } @else {
+
+ }
+
-
-
-
+
+
}
diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
index 0018f90985..8ed24133f2 100644
--- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
+++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
@@ -109,6 +109,7 @@ export class ExtensibleTableComponent implements OnChanges {
entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);
#injector = inject(Injector);
getInjected = this.#injector.get.bind(this.#injector);
+ permissionService = this.#injector.get(PermissionService);
constructor() {
const extensions = this.#injector.get(ExtensionsService);
@@ -117,9 +118,8 @@ export class ExtensibleTableComponent implements OnChanges {
this.actionList = extensions['entityActions'].get(name)
.actions as unknown as EntityActionList;
- const permissionService = this.#injector.get(PermissionService);
this.hasAtLeastOnePermittedAction =
- permissionService.filterItemsByPolicy(
+ this.permissionService.filterItemsByPolicy(
this.actionList.toArray().map(action => ({ requiredPolicy: action.permission })),
).length > 0;
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
@@ -205,4 +205,9 @@ export class ExtensibleTableComponent implements OnChanges {
return record;
});
}
+
+ hasAvailableActions(index, row): boolean {
+ const { permission, visible } = this.actionList.get(index).value;
+ return this.permissionService.getGrantedPolicy(permission) && visible(row);
+ }
}