nologin.jsx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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 AppContainer from '~/client/services/AppContainer';
  7. import InstallerForm from '../components/InstallerForm';
  8. import LoginForm from '../components/LoginForm';
  9. import PasswordResetRequestForm from '../components/PasswordResetRequestForm';
  10. import PasswordResetExecutionForm from '../components/PasswordResetExecutionForm';
  11. const i18n = i18nFactory();
  12. // render InstallerForm
  13. const installerFormElem = document.getElementById('installer-form');
  14. if (installerFormElem) {
  15. const userName = installerFormElem.dataset.userName;
  16. const name = installerFormElem.dataset.name;
  17. const email = installerFormElem.dataset.email;
  18. const csrf = installerFormElem.dataset.csrf;
  19. ReactDOM.render(
  20. <I18nextProvider i18n={i18n}>
  21. <InstallerForm userName={userName} name={name} email={email} csrf={csrf} />
  22. </I18nextProvider>,
  23. installerFormElem,
  24. );
  25. }
  26. // render loginForm
  27. const loginFormElem = document.getElementById('login-form');
  28. if (loginFormElem) {
  29. const appContainer = new AppContainer();
  30. appContainer.initApp();
  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 isPasswordResetEnabled = loginFormElem.dataset.isPasswordResetEnabled === 'true';
  37. let registrationWhiteList = loginFormElem.dataset.registrationWhiteList;
  38. registrationWhiteList = registrationWhiteList.length > 0
  39. ? registrationWhiteList = loginFormElem.dataset.registrationWhiteList.split(',')
  40. : registrationWhiteList = [];
  41. const isLocalStrategySetup = loginFormElem.dataset.isLocalStrategySetup === 'true';
  42. const isLdapStrategySetup = loginFormElem.dataset.isLdapStrategySetup === 'true';
  43. const objOfIsExternalAuthEnableds = {
  44. google: loginFormElem.dataset.isGoogleAuthEnabled === 'true',
  45. github: loginFormElem.dataset.isGithubAuthEnabled === 'true',
  46. facebook: loginFormElem.dataset.isFacebookAuthEnabled === 'true',
  47. twitter: loginFormElem.dataset.isTwitterAuthEnabled === 'true',
  48. saml: loginFormElem.dataset.isSamlAuthEnabled === 'true',
  49. oidc: loginFormElem.dataset.isOidcAuthEnabled === 'true',
  50. basic: loginFormElem.dataset.isBasicAuthEnabled === 'true',
  51. };
  52. ReactDOM.render(
  53. <I18nextProvider i18n={i18n}>
  54. <Provider inject={[appContainer]}>
  55. <LoginForm
  56. username={username}
  57. name={name}
  58. email={email}
  59. isRegistrationEnabled={isRegistrationEnabled}
  60. registrationMode={registrationMode}
  61. registrationWhiteList={registrationWhiteList}
  62. isPasswordResetEnabled={isPasswordResetEnabled}
  63. isLocalStrategySetup={isLocalStrategySetup}
  64. isLdapStrategySetup={isLdapStrategySetup}
  65. objOfIsExternalAuthEnableds={objOfIsExternalAuthEnableds}
  66. />
  67. </Provider>
  68. </I18nextProvider>,
  69. loginFormElem,
  70. );
  71. }
  72. // render PasswordResetRequestForm
  73. const passwordResetRequestFormElem = document.getElementById('password-reset-request-form');
  74. const appContainer = new AppContainer();
  75. appContainer.initApp();
  76. if (passwordResetRequestFormElem) {
  77. ReactDOM.render(
  78. <I18nextProvider i18n={i18n}>
  79. <Provider inject={[appContainer]}>
  80. <PasswordResetRequestForm />
  81. </Provider>
  82. </I18nextProvider>,
  83. passwordResetRequestFormElem,
  84. );
  85. }
  86. // render PasswordResetExecutionForm
  87. const passwordResetExecutionFormElem = document.getElementById('password-reset-execution-form');
  88. if (passwordResetExecutionFormElem) {
  89. ReactDOM.render(
  90. <I18nextProvider i18n={i18n}>
  91. <Provider inject={[appContainer]}>
  92. <PasswordResetExecutionForm />
  93. </Provider>
  94. </I18nextProvider>,
  95. passwordResetExecutionFormElem,
  96. );
  97. }