From f82fd5ff1b56a601d69abb0d8dc3e6d3c6fc19db Mon Sep 17 00:00:00 2001 From: hskwon Date: Wed, 26 Nov 2025 22:01:27 +0900 Subject: [PATCH] =?UTF-8?q?fix(mng):=20=EA=B6=8C=ED=95=9C=20=EB=B6=84?= =?UTF-8?q?=EC=84=9D=EC=97=90=EC=84=9C=20=EC=97=AD=ED=95=A0=20=EA=B8=B0?= =?UTF-8?q?=EB=B0=98=20=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - getUserRoles(): user_roles 테이블에서 model_has_roles(Spatie) 테이블로 변경 - roles 테이블의 display_name → description 컬럼으로 수정 - traceUsersWithPermission()에서도 동일한 컬럼명 수정 --- app/Services/PermissionAnalyzeService.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/Services/PermissionAnalyzeService.php b/app/Services/PermissionAnalyzeService.php index 50f933db..1f768a25 100644 --- a/app/Services/PermissionAnalyzeService.php +++ b/app/Services/PermissionAnalyzeService.php @@ -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)