fix(mng): 권한 분석에서 역할 기반 사용자가 표시되지 않는 버그 수정
- getUserRoles(): user_roles 테이블에서 model_has_roles(Spatie) 테이블로 변경 - roles 테이블의 display_name → description 컬럼으로 수정 - traceUsersWithPermission()에서도 동일한 컬럼명 수정
This commit is contained in:
@@ -321,25 +321,25 @@ private function getUserDepartments(int $userId, ?int $tenantId): array
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자의 역할 목록 조회
|
||||
* 사용자의 역할 목록 조회 (Spatie model_has_roles 테이블 사용)
|
||||
*/
|
||||
private function getUserRoles(int $userId, ?int $tenantId): array
|
||||
{
|
||||
$query = DB::table('user_roles as ur')
|
||||
->join('roles as r', 'r.id', '=', 'ur.role_id')
|
||||
->select('r.id', 'r.name', 'r.display_name')
|
||||
->where('ur.user_id', $userId)
|
||||
->whereNull('ur.deleted_at');
|
||||
$query = DB::table('model_has_roles as mhr')
|
||||
->join('roles as r', 'r.id', '=', 'mhr.role_id')
|
||||
->select('r.id', 'r.name', 'r.description')
|
||||
->where('mhr.model_type', User::class)
|
||||
->where('mhr.model_id', $userId);
|
||||
|
||||
if ($tenantId) {
|
||||
$query->where('ur.tenant_id', $tenantId);
|
||||
$query->where('mhr.tenant_id', $tenantId);
|
||||
}
|
||||
|
||||
return $query->get()->map(function ($role) {
|
||||
return [
|
||||
'id' => $role->id,
|
||||
'name' => $role->name,
|
||||
'display_name' => $role->display_name,
|
||||
'display_name' => $role->description,
|
||||
];
|
||||
})->toArray();
|
||||
}
|
||||
@@ -363,7 +363,7 @@ public function traceUsersWithPermission(int $menuId, string $permissionType = '
|
||||
->join('permissions as p', 'p.id', '=', 'rhp.permission_id')
|
||||
->join('users as u', 'u.id', '=', 'mhr.model_id')
|
||||
->join('roles as r', 'r.id', '=', 'mhr.role_id')
|
||||
->select('u.id as user_id', 'u.name as user_name', 'u.email', 'r.id as role_id', 'r.name as role_name', 'r.display_name as role_display_name')
|
||||
->select('u.id as user_id', 'u.name as user_name', 'u.email', 'r.id as role_id', 'r.name as role_name', 'r.description as role_display_name')
|
||||
->where('mhr.model_type', User::class)
|
||||
->where('p.guard_name', $guardName)
|
||||
->where('p.name', $permissionName)
|
||||
|
||||
Reference in New Issue
Block a user