assign role roles
This commit is contained in:
@@ -56,6 +56,7 @@ $selectedTenantIds = $selectedTenantIds ?? [];
|
||||
$showRoles = $showRoles ?? false;
|
||||
$roles = $roles ?? [];
|
||||
$selectedRoleIds = $selectedRoleIds ?? [];
|
||||
$visibleSelectedRoleIds = $visibleSelectedRoleIds ?? $selectedRoleIds;
|
||||
$showDepartments = $showDepartments ?? false;
|
||||
$departmentOptionsByTenant = $departmentOptionsByTenant ?? [];
|
||||
$selectedDepartmentIds = $selectedDepartmentIds ?? [];
|
||||
@@ -681,7 +682,7 @@ foreach ($tenants as $tenant) {
|
||||
require templatePath('partials/app-empty-state.phtml');
|
||||
?>
|
||||
<?php else: ?>
|
||||
<?php multiSelectForm('user-roles', 'role_ids', 'Assigned roles', 'Select roles', $roles, $selectedRoleIds, $isReadOnly); ?>
|
||||
<?php multiSelectForm('user-roles', 'role_ids', 'Assigned roles', 'Select roles', $roles, $visibleSelectedRoleIds, $isReadOnly); ?>
|
||||
<?php endif; ?>
|
||||
</details>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -62,6 +62,10 @@ if ($allowedTenantIds) {
|
||||
$tenants = [];
|
||||
}
|
||||
$roles = $roleService->listActive();
|
||||
$assignableRoleService = app(\MintyPHP\Service\Access\AssignableRoleService::class);
|
||||
$assignableRoleIds = $assignableRoleService->listAssignableRoleIdsForActor($currentUserId);
|
||||
$assignableRoleIdMap = array_fill_keys($assignableRoleIds, true);
|
||||
$roles = array_values(array_filter($roles, static fn (array $r): bool => isset($assignableRoleIdMap[(int) ($r['id'] ?? 0)])));
|
||||
$selectedTenantIds = [];
|
||||
$selectedRoleIds = [];
|
||||
$selectedDepartmentIds = [];
|
||||
|
||||
@@ -117,7 +117,12 @@ if (!$primaryTenantId && count($selectedTenantIds) === 1) {
|
||||
}
|
||||
|
||||
$roles = $roleService->listActive();
|
||||
$assignableRoleService = app(\MintyPHP\Service\Access\AssignableRoleService::class);
|
||||
$assignableRoleIds = $assignableRoleService->listAssignableRoleIdsForActor($currentUserId);
|
||||
$assignableRoleIdMap = array_fill_keys($assignableRoleIds, true);
|
||||
$roles = array_values(array_filter($roles, static fn (array $r): bool => isset($assignableRoleIdMap[(int) ($r['id'] ?? 0)])));
|
||||
$selectedRoleIds = $userRoleRepository->listRoleIdsByUserId($userId);
|
||||
$visibleSelectedRoleIds = array_values(array_intersect($selectedRoleIds, $assignableRoleIds));
|
||||
$permissionRows = $canViewPermissionsTable
|
||||
? $rolePermissionRepository->listPermissionsWithRolesByRoleIds($selectedRoleIds)
|
||||
: [];
|
||||
@@ -233,7 +238,8 @@ if ($request->hasBody('email')) {
|
||||
$userId,
|
||||
$tenantIdsForSync,
|
||||
$selectedRoleIds,
|
||||
$selectedDepartmentIds
|
||||
$selectedDepartmentIds,
|
||||
$currentUserId
|
||||
);
|
||||
if (!$assignmentsSynced) {
|
||||
$errorBag->addGlobal(t('User assignments can not be updated'));
|
||||
|
||||
Reference in New Issue
Block a user