TorbatYar/frontend/modules/experience/hooks/useExperiencePermissions.ts
Mortezakoohjani 0eec9f729b feat(experience): deploy Experience frontend FE-11.0-11.5 portal
Commit completed Torbat Pages admin frontend module, BFF proxy, routes, and validation artifacts for official platform deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:01:50 +03:30

37 lines
1.1 KiB
TypeScript

"use client";
import { useQuery } from "@tanstack/react-query";
import { useTenantId } from "@/hooks/useTenantId";
import { useMe } from "@/hooks/useMe";
/** Permission checks — backend is authoritative; owner gets full access in UI. */
export function useExperiencePermissions() {
const { tenantId } = useTenantId();
const { me } = useMe();
const membership = me?.memberships.find((m) => m.tenant_id === tenantId);
const isOwner = membership?.is_owner ?? false;
const isPlatformAdmin = me?.platform_role === "platform_admin";
const can = (permission?: string) => {
if (!permission) return true;
if (isOwner || isPlatformAdmin) return true;
if (permission.endsWith(".view") || permission === "experience.view") return !!tenantId;
return false;
};
const canManage = (viewPerm?: string, managePerm?: string) => {
if (isOwner || isPlatformAdmin) return true;
if (managePerm) return can(managePerm);
if (viewPerm) return can(viewPerm.replace(".view", ".manage"));
return can("experience.manage");
};
return {
can,
canManage,
isOwner,
isLoading: false,
};
}