如何根据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>
);
我使用的是 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>
);