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

时间:2018-05-23 14:17:56

标签: resources crud admin-on-rest 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>
);

1 个答案:

答案 0 :(得分:1)

此处记录了这些内容:https://marmelab.com/react-admin/Authorization.html

简而言之,Admin组件接受一个函数作为子项(想想渲染道具),将使用您的权限(来自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>
);