nologin.jsx 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import { Provider } from 'unstated';
  4. import { I18nextProvider } from 'react-i18next';
  5. import i18nFactory from './util/i18n';
  6. import NoLoginContainer from './services/NoLoginContainer';
  7. import AppContainer from './services/AppContainer';
  8. import InstallerForm from './components/InstallerForm';
  9. import LoginForm from './components/LoginForm';
  10. const i18n = i18nFactory();
  11. // render InstallerForm
  12. const installerFormElem = document.getElementById('installer-form');
  13. if (installerFormElem) {
  14. const userName = installerFormElem.dataset.userName;
  15. const name = installerFormElem.dataset.name;
  16. const email = installerFormElem.dataset.email;
  17. const csrf = installerFormElem.dataset.csrf;
  18. ReactDOM.render(
  19. <I18nextProvider i18n={i18n}>
  20. <InstallerForm userName={userName} name={name} email={email} csrf={csrf} />
  21. </I18nextProvider>,
  22. installerFormElem,
  23. );
  24. }
  25. // render loginForm
  26. const loginFormElem = document.getElementById('login-form');
  27. if (loginFormElem) {
  28. const noLoginContainer = new NoLoginContainer();
  29. const appContainer = new AppContainer();
  30. appContainer.init();
  31. const username = loginFormElem.dataset.username;
  32. const name = loginFormElem.dataset.name;
  33. const email = loginFormElem.dataset.email;
  34. const isRegistrationEnabled = loginFormElem.dataset.isRegistrationEnabled === 'true';
  35. const registrationMode = loginFormElem.dataset.registrationMode;
  36. const registrationWhiteList = loginFormElem.dataset.registrationWhiteList.split(',');
  37. const isLocalStrategySetup = loginFormElem.dataset.isLocalStrategySetup === 'true';
  38. const isLdapStrategySetup = loginFormElem.dataset.isLdapStrategySetup === 'true';
  39. const objOfIsExternalAuthEnableds = {
  40. google: loginFormElem.dataset.isGoogleAuthEnabled === 'true',
  41. github: loginFormElem.dataset.isGithubAuthEnabled === 'true',
  42. facebook: loginFormElem.dataset.isFacebookAuthEnabled === 'true',
  43. twitter: loginFormElem.dataset.isTwitterAuthEnabled === 'true',
  44. saml: loginFormElem.dataset.isSamlAuthEnabled === 'true',
  45. oidc: loginFormElem.dataset.isOidcAuthEnabled === 'true',
  46. basic: loginFormElem.dataset.isBasicAuthEnabled === 'true',
  47. };
  48. ReactDOM.render(
  49. <I18nextProvider i18n={i18n}>
  50. <Provider inject={[noLoginContainer, appContainer]}>
  51. <LoginForm
  52. username={username}
  53. name={name}
  54. email={email}
  55. isRegistrationEnabled={isRegistrationEnabled}
  56. registrationMode={registrationMode}
  57. registrationWhiteList={registrationWhiteList}
  58. isLocalStrategySetup={isLocalStrategySetup}
  59. isLdapStrategySetup={isLdapStrategySetup}
  60. objOfIsExternalAuthEnableds={objOfIsExternalAuthEnableds}
  61. />
  62. </Provider>
  63. </I18nextProvider>,
  64. loginFormElem,
  65. );
  66. }