Version: 3.xx.xx
usePermissions
usePermissions calls the getPermissions method from the authProvider under the hood.
It returns the result of react-query's useQuery which includes many properties, some of which being isSuccess and isError. Data that is resolved from the getPermissions will be returned as the data in the query result.
Usage
usePermissions can be useful when you want to get user's permission's anywhere in your code.
Imagine that you want to allow only users with the admin role to see the create button in a list page.
- We have a logic in
authProvider'sgetPermissionsmethod like below.
import { AuthProvider } from "@pankod/refine-core";
const authProvider: AuthProvider = {
...
getPermissions: () => {
return Promise.resolve(["admin"]);
},
...
};
- Get permissions data in the list page with
usePermissionsand check if the user has"admin" role.
pages/post/list
import { usePermissions } from "@pankod/refine-core";
import { List } from "@pankod/refine-antd";
export const PostList: React.FC = () => {
const { data: permissionsData } = usePermissions();
return <List canCreate={permissionsData?.includes("admin")}>...</List>;
};
CAUTION
This hook can only be used if the authProvider is provided.