This commit is contained in:
counterweight 2025-12-18 23:54:51 +01:00
parent b173b47925
commit 66bc4c5a45
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
10 changed files with 367 additions and 320 deletions

View file

@ -1,6 +1,6 @@
"use client";
import { createContext, useContext, useState, useEffect, ReactNode } from "react";
import { createContext, useContext, useState, useEffect, useCallback, ReactNode } from "react";
import { API_URL } from "./config";
@ -100,17 +100,17 @@ export function AuthProvider({ children }: { children: ReactNode }) {
setUser(null);
};
const hasPermission = (permission: PermissionType): boolean => {
const hasPermission = useCallback((permission: PermissionType): boolean => {
return user?.permissions.includes(permission) ?? false;
};
}, [user]);
const hasAnyPermission = (...permissions: PermissionType[]): boolean => {
const hasAnyPermission = useCallback((...permissions: PermissionType[]): boolean => {
return permissions.some((p) => user?.permissions.includes(p) ?? false);
};
}, [user]);
const hasRole = (role: string): boolean => {
const hasRole = useCallback((role: string): boolean => {
return user?.roles.includes(role) ?? false;
};
}, [user]);
return (
<AuthContext.Provider