ultisuite-client/lib/auth/use-platform-admin-access.ts
R3D347HR4Y ad1370ea7e
Some checks are pending
E2E / Playwright e2e (push) Waiting to run
feat: enhance configuration and add new demo layouts
- Introduced turbopack alias for canvas in next.config.mjs.
- Updated package.json scripts for development and branding tasks.
- Added new dependencies for Tiptap extensions.
- Implemented new demo layouts for agenda, contacts, drive, and mail applications.
- Enhanced globals.css for improved theming and splash screen animations.
- Added OAuth callback handling for drive mounts.
- Updated layout components to integrate new demo shells and improve structure.
2026-06-12 19:10:24 +02:00

20 lines
794 B
TypeScript

"use client"
import { useAuthStore } from "@/lib/api/auth-store"
import { useCurrentUser } from "@/lib/api/hooks/use-current-user"
import { adminScopesFromToken, isPlatformAdminFromToken } from "@/lib/auth/admin"
/** Matches AdminAccessGuard: token groups or platform_admin from /users/me. */
export function usePlatformAdminAccess() {
const token = useAuthStore((s) => s.accessToken)
const { data: me, isFetched: meFetched } = useCurrentUser()
const scopes = adminScopesFromToken(token)
const fromToken = isPlatformAdminFromToken(token) || scopes.read
const fromAccount = me?.platform_admin === true
return {
isAdmin: fromToken || fromAccount,
/** Wait for /users/me when token alone is not enough to decide admin access. */
adminReady: fromToken || meFetched,
}
}