diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-08 11:23:40 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-08 11:23:40 +0000 |
| commit | b84621f9b2b7161a5ad4f0b194264e9df3e65dbf (patch) | |
| tree | ce5ec30b3d1e5104a3a2d942c71973779436783b /hooks/use-auth-role.ts | |
| parent | 97936ddf280c56a4f122dedcb8dc389d0d2e63a2 (diff) | |
(대표님) 20250708 미반영분 커밋
Diffstat (limited to 'hooks/use-auth-role.ts')
| -rw-r--r-- | hooks/use-auth-role.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/hooks/use-auth-role.ts b/hooks/use-auth-role.ts new file mode 100644 index 00000000..3f3efc1a --- /dev/null +++ b/hooks/use-auth-role.ts @@ -0,0 +1,28 @@ +// hooks/use-auth-role.ts +import { useSession } from "next-auth/react" + +export function useAuthRole() { + const { data: session, status } = useSession() + + return { + user: session?.user, + isLoading: status === "loading", + isAuthenticated: !!session?.user, + roles: session?.user?.roles ?? [], + + // 특정 키워드가 포함된 role이 있는지 체크 + hasRole: (keyword: string) => + session?.user?.roles?.some(role => role.includes(keyword)) ?? false, + + // 정확한 role name으로 체크 + hasExactRole: (roleName: string) => + session?.user?.roles?.includes(roleName) ?? false, + + // 편의 메서드들 + hasPeriodicEvaluationRole: () => + session?.user?.roles?.some(role => role.includes('정기평가')) ?? false, + + hasAdminRole: () => + session?.user?.roles?.some(role => role.includes('admin') || role.includes('관리자')) ?? false, + } +}
\ No newline at end of file |
