27 lines
797 B
JavaScript
27 lines
797 B
JavaScript
import { useSelectedProject } from "../slices/apiDataManager";
|
|
import { useAllProjectLevelPermissions, useProfile } from "./useProfile";
|
|
|
|
export const useHasUserPermission = (permission) => {
|
|
const selectedProject = useSelectedProject();
|
|
const { profile } = useProfile();
|
|
const {
|
|
data: projectPermissions = [],
|
|
isLoading,
|
|
isError,
|
|
} = useAllProjectLevelPermissions(selectedProject);
|
|
|
|
if (isLoading || !permission) return false;
|
|
|
|
const globalPerms = profile?.featurePermissions ?? [];
|
|
const projectPerms = projectPermissions ?? [];
|
|
if (selectedProject) {
|
|
if (projectPerms.length === 0) {
|
|
return projectPerms.includes(permission);
|
|
} else {
|
|
return projectPerms.includes(permission);
|
|
}
|
|
} else {
|
|
return globalPerms.includes(permission);
|
|
}
|
|
};
|