Conditional SSO with env var

Signed-off-by: HichamELBSI <elabbassih@gmail.com>
This commit is contained in:
HichamELBSI 2021-01-29 15:47:11 +01:00
parent 55433bd9a5
commit e80d9c9c3e
7 changed files with 29 additions and 18 deletions

View File

@ -30,6 +30,7 @@ module.exports = {
expect: false, expect: false,
assert: false, assert: false,
chai: false, chai: false,
ENABLED_EE_FEATURES: false,
// TODO: put all this in process.env in webpack to avoid having to set them here // TODO: put all this in process.env in webpack to avoid having to set them here
REMOTE_URL: true, REMOTE_URL: true,
BACKEND_URL: true, BACKEND_URL: true,

View File

@ -44,6 +44,7 @@ module.exports = {
PUBLIC_PATH: '/admin', PUBLIC_PATH: '/admin',
REMOTE_URL: '/', REMOTE_URL: '/',
NODE_ENV: 'test', NODE_ENV: 'test',
ENABLED_EE_FEATURES: [],
}, },
moduleDirectories: [ moduleDirectories: [
'node_modules', 'node_modules',

View File

@ -21,7 +21,7 @@ const Login = loginProps => {
const { isLoading, data: providers } = useAuthProviders(); const { isLoading, data: providers } = useAuthProviders();
const { formatMessage } = useIntl(); const { formatMessage } = useIntl();
if (!isLoading && providers.length === 0) { if (!ENABLED_EE_FEATURES.includes('sso') || (!isLoading && providers.length === 0)) {
return <BaseLogin {...loginProps} />; return <BaseLogin {...loginProps} />;
} }

View File

@ -25,7 +25,7 @@ const Providers = () => {
push('/auth/login'); push('/auth/login');
}; };
if (!isLoading && providers.length === 0) { if (!ENABLED_EE_FEATURES.includes('sso') || (!isLoading && providers.length === 0)) {
return <Redirect to="/auth/login" />; return <Redirect to="/auth/login" />;
} }

View File

@ -1,12 +1,16 @@
import { SETTINGS_BASE_URL } from '../../../../../admin/src/config'; import { SETTINGS_BASE_URL } from '../../../../../admin/src/config';
import SingleSignOn from '../SingleSignOn'; import SingleSignOn from '../SingleSignOn';
const customRoutes = [ const ssoRoutes = ENABLED_EE_FEATURES.includes('sso')
{ ? [
Component: SingleSignOn, {
to: `${SETTINGS_BASE_URL}/single-sign-on`, Component: SingleSignOn,
exact: true, to: `${SETTINGS_BASE_URL}/single-sign-on`,
}, exact: true,
]; },
]
: [];
const customRoutes = [...ssoRoutes];
export default customRoutes; export default customRoutes;

View File

@ -1,14 +1,18 @@
import { SETTINGS_BASE_URL } from '../../../../../admin/src/config'; import { SETTINGS_BASE_URL } from '../../../../../admin/src/config';
import adminPermissions from '../../../../../admin/src/permissions'; import adminPermissions from '../../../../../admin/src/permissions';
const customGlobalLinks = [ const ssoGlobalRoutes = ENABLED_EE_FEATURES.includes('sso')
{ ? [
title: { id: 'Settings.sso.title' }, {
to: `${SETTINGS_BASE_URL}/single-sign-on`, title: { id: 'Settings.sso.title' },
name: 'sso', to: `${SETTINGS_BASE_URL}/single-sign-on`,
isDisplayed: false, name: 'sso',
permissions: adminPermissions.settings.sso.main, isDisplayed: false,
}, permissions: adminPermissions.settings.sso.main,
]; },
]
: [];
const customGlobalLinks = [...ssoGlobalRoutes];
export default customGlobalLinks; export default customGlobalLinks;

View File

@ -15,6 +15,7 @@ module.exports = () => {
const options = { const options = {
backend: 'http://localhost:1337', backend: 'http://localhost:1337',
publicPath: '/admin/', publicPath: '/admin/',
features: process.env.ENABLED_EE_FEATURES || [],
}; };
const args = { const args = {