如何根据react-admin的用户权限配置资源和crud操作程序化

How to configure the resource and crud operation programmatic according to the user permission on react-admin

我使用的是 react-admin,它非常快速且高效。但是,我想根据登录用户的属性实现一些功能,如程序化显示资源和crud操作组件。

像这样。

const App = () => (
    <Admin restClient={jsonServerRestClient('http://jsonplaceholder.typicode.com')}>
        <Resource name="users" list={UserList} haveListPermission={user.hasUsersListPermission}/>
        <Resource name="tags" havePermission={user.hasTagPermission} />
    </Admin>
);

此处记录:https://marmelab.com/react-admin/Authorization.html

简而言之,Admin 组件接受一个函数作为子函数(想想 render prop),它将在您的权限(来自您的 authProvider)的情况下调用。因此,假设您正在使用 react-admin(而不是 admin-on-rest)并且您的 authProvider 在使用类型 AUTH_GET_PERMISSIONS:

调用时与当前用户一起解析
const App = () => (
    <Admin authProvider={authProvider} dataProvider={jsonServerRestClient('http://jsonplaceholder.typicode.com')}>
        {user => (
            {user.hasUsersListPermission && <Resource name="users" list={UserList} />}
            {user.hasTagPermission && <Resource name="tags" />
        )}
    )}
    </Admin>
);