summaryrefslogtreecommitdiff
path: root/hooks
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-08 11:23:40 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-08 11:23:40 +0000
commitb84621f9b2b7161a5ad4f0b194264e9df3e65dbf (patch)
treece5ec30b3d1e5104a3a2d942c71973779436783b /hooks
parent97936ddf280c56a4f122dedcb8dc389d0d2e63a2 (diff)
(대표님) 20250708 미반영분 커밋
Diffstat (limited to 'hooks')
-rw-r--r--hooks/use-auth-role.ts28
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