nologin.jsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. let registrationWhiteList = loginFormElem.dataset.registrationWhiteList;
  37. registrationWhiteList = registrationWhiteList.length > 0
  38. ? registrationWhiteList = loginFormElem.dataset.registrationWhiteList.split(',')
  39. : registrationWhiteList = [];
  40. const isLocalStrategySetup = loginFormElem.dataset.isLocalStrategySetup === 'true';
  41. const isLdapStrategySetup = loginFormElem.dataset.isLdapStrategySetup === 'true';
  42. const objOfIsExternalAuthEnableds = {
  43. google: loginFormElem.dataset.isGoogleAuthEnabled === 'true',
  44. github: loginFormElem.dataset.isGithubAuthEnabled === 'true',
  45. facebook: loginFormElem.dataset.isFacebookAuthEnabled === 'true',
  46. twitter: loginFormElem.dataset.isTwitterAuthEnabled === 'true',
  47. saml: loginFormElem.dataset.isSamlAuthEnabled === 'true',
  48. oidc: loginFormElem.dataset.isOidcAuthEnabled === 'true',
  49. basic: loginFormElem.dataset.isBasicAuthEnabled === 'true',
  50. };
  51. ReactDOM.render(
  52. <I18nextProvider i18n={i18n}>
  53. <Provider inject={[noLoginContainer, appContainer]}>
  54. <LoginForm
  55. username={username}
  56. name={name}
  57. email={email}
  58. isRegistrationEnabled={isRegistrationEnabled}
  59. registrationMode={registrationMode}
  60. registrationWhiteList={registrationWhiteList}
  61. isLocalStrategySetup={isLocalStrategySetup}
  62. isLdapStrategySetup={isLdapStrategySetup}
  63. objOfIsExternalAuthEnableds={objOfIsExternalAuthEnableds}
  64. />
  65. </Provider>
  66. </I18nextProvider>,
  67. loginFormElem,
  68. );
  69. }