diff --git a/lib/Service/Access/DepartmentAuthorizationPolicy.php b/lib/Service/Access/DepartmentAuthorizationPolicy.php index 7487a04..e7a353e 100644 --- a/lib/Service/Access/DepartmentAuthorizationPolicy.php +++ b/lib/Service/Access/DepartmentAuthorizationPolicy.php @@ -100,6 +100,7 @@ class DepartmentAuthorizationPolicy implements AuthorizationPolicyInterface 'capabilities' => [ 'can_view_page' => true, 'can_update_department' => $this->hasPermission($actorUserId, PermissionService::DEPARTMENTS_UPDATE), + 'can_delete_department' => $this->hasPermission($actorUserId, PermissionService::DEPARTMENTS_DELETE), 'allowed_tenant_ids' => $this->scopeGateway->getUserTenantIds($actorUserId), ], ]); diff --git a/pages/admin/departments/edit($id).php b/pages/admin/departments/edit($id).php index 3ab7d42..5c0d866 100644 --- a/pages/admin/departments/edit($id).php +++ b/pages/admin/departments/edit($id).php @@ -48,8 +48,10 @@ if (!is_array($capabilities)) { } $canViewPage = (bool) ($capabilities['can_view_page'] ?? false); $canUpdateDepartment = (bool) ($capabilities['can_update_department'] ?? false); +$canDeleteDepartment = (bool) ($capabilities['can_delete_department'] ?? false); $viewAuth['page'] = [ 'can_update_department' => $canUpdateDepartment, + 'can_delete_department' => $canDeleteDepartment, ]; $allowedTenantIdsRaw = $capabilities['allowed_tenant_ids'] ?? []; $allowedTenantIds = is_array($allowedTenantIdsRaw) @@ -117,8 +119,10 @@ if ($request->hasBody('description')) { $submitCapabilities = $submitDecision->attribute('capabilities', []); if (is_array($submitCapabilities)) { $canUpdateDepartment = (bool) ($submitCapabilities['can_update_department'] ?? $canUpdateDepartment); + $canDeleteDepartment = (bool) ($submitCapabilities['can_delete_department'] ?? $canDeleteDepartment); $viewAuth['page'] = [ 'can_update_department' => $canUpdateDepartment, + 'can_delete_department' => $canDeleteDepartment, ]; } if (!$canUpdateDepartment) { diff --git a/pages/admin/settings/index(default).phtml b/pages/admin/settings/index(default).phtml index 60d79cd..dd31f64 100644 --- a/pages/admin/settings/index(default).phtml +++ b/pages/admin/settings/index(default).phtml @@ -287,7 +287,7 @@ $disabledAttr = $isReadOnly ? 'disabled' : '';
@@ -508,6 +508,7 @@ $disabledAttr = $isReadOnly ? 'disabled' : '';