employee role seed

This commit is contained in:
2026-04-13 14:53:10 +08:00
parent 62d1f28cb1
commit 7b0605a705
6 changed files with 119 additions and 12 deletions

View File

@@ -44,7 +44,7 @@ class RoleController extends BaseController
}
private function getFilteredPermissions()
private function getFilteredPermissions($targetRole = null)
{
$user = Auth::user();
$userType = $user->type ?? 'company';
@@ -54,8 +54,15 @@ class RoleController extends BaseController
return Permission::all()->groupBy('module');
}
// Get allowed modules for current user role
$allowedModules = config('role-permissions.' . $userType, config('role-permissions.company'));
// Determine the module list to use.
// If we are editing an 'employee' role specifically, use that list.
$targetType = $userType;
if ($targetRole && $targetRole->name === 'employee') {
$targetType = 'employee';
}
// Get allowed modules for target role type
$allowedModules = config('role-permissions.' . $targetType, config('role-permissions.company'));
// Filter permissions by allowed modules
$query = Permission::whereIn('module', $allowedModules);
@@ -92,8 +99,15 @@ class RoleController extends BaseController
return $permissions;
}
// Get allowed modules for current user role
$allowedModules = config('role-permissions.' . $userType, config('role-permissions.company'));
// Determine the module list to use.
$targetType = $userType;
$roleName = $role ? $role->name : Str::slug(request()->label);
if ($roleName === 'employee') {
$targetType = 'employee';
}
// Get allowed modules for target type
$allowedModules = config('role-permissions.' . $targetType, config('role-permissions.company'));
if (!is_array($allowedModules)) {
$allowedModules = [];
}