mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 21:41:57 +00:00
29 lines
574 B
TypeScript
29 lines
574 B
TypeScript
'use client';
|
|
|
|
import { useAuth } from '@/services/hooks/useAuth';
|
|
|
|
interface RequirePermissionProps {
|
|
children: React.ReactNode;
|
|
permissions: string | string[];
|
|
}
|
|
|
|
const RequirePermission = ({
|
|
children,
|
|
permissions,
|
|
}: RequirePermissionProps) => {
|
|
const { permissionCheck } = useAuth();
|
|
|
|
const isPermitted =
|
|
typeof permissions === 'string'
|
|
? permissionCheck(permissions)
|
|
: permissions.some((permission) => permissionCheck(permission));
|
|
|
|
if (!isPermitted) {
|
|
return null;
|
|
}
|
|
|
|
return <>{children}</>;
|
|
};
|
|
|
|
export default RequirePermission;
|