1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-01 01:18:10 +02:00
unleash.unleash/frontend/src/hooks/api/getters/useAuth/useAuthPermissions.ts
2022-12-15 16:07:22 +02:00

37 lines
1.0 KiB
TypeScript

import { IPermission } from 'interfaces/user';
import { IUseAuthEndpointOutput, useAuthEndpoint } from './useAuthEndpoint';
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
import { IUiConfig } from 'interfaces/uiConfig';
interface IUseAuthPermissionsOutput {
permissions?: IPermission[];
refetchPermissions: () => void;
loading: boolean;
error?: Error;
}
const getPermissions = (
auth: IUseAuthEndpointOutput,
uiConfig: IUiConfig
): IPermission[] | undefined => {
let permissions =
auth.data && 'permissions' in auth.data && !uiConfig?.flags?.maintenance
? auth.data.permissions
: undefined;
return permissions;
};
export const useAuthPermissions = (): IUseAuthPermissionsOutput => {
const auth = useAuthEndpoint();
const { uiConfig } = useUiConfig();
const permissions = getPermissions(auth, uiConfig);
return {
permissions,
refetchPermissions: auth.refetchAuth,
loading: auth.loading,
error: auth.error,
};
};