在没有任何资源的情况下显示仪表板

Show the dashboad without any resources

如果用户没有任何权限来显示 react-admin 的资源,他将无法登录,并且会收到此消息:

React-admin is properly configured.
Now you can add a first <Resource> as child of <Admin>

我们如何在没有资源的情况下显示登录页面和仪表板?

const App = ({ classes }) => (
    <React.Fragment>
        <Admin
            locale="fr"
            i18nProvider={i18nProvider}
            customReducers={{ reducer, theme: themeReducer }}
            customRoutes={customRoutes}
            appLayout={MyLayout}
            authProvider={authProvider}
            dashboard={Dashboard}
            loginPage={MyLoginForm}
            dataProvider={dataProvider}
        >
            {permissions => [

                hasRight(permissions, 'resource') ?
                    <Resource name="Myresource"
                        list={MyresourceList}
                        show={hasRight(permissions, 'show') ? MyresourceShow : null}
                        create={hasRight(permissions, 'create') ? MyresourceCreate : null}
                        edit={hasRight(permissions, 'edit') ? MyresourceEdit : null}
                        />
                    : null,

            ]}

        </Admin>
    </React.Fragment>
)

当然,此消息应该仅用于调试。 我在 React Admin 上开了一个问题:https://github.com/marmelab/react-admin/issues/2749

同时,您可以在呈现管理组件之前复制在 authProvider 中完成的检查。

const App = () => {
    if (userHasNotAccess) {
        return <ErrorPage />;
    }

    return (
        <Admin {...props}>
            {/* ... */}
        </Admin>
    );
};