LoginContainer.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { Container } from 'unstated';
  2. import loggerFactory from '@alias/logger';
  3. import { toastError } from '../util/apiNotification';
  4. const logger = loggerFactory('growi:loginForm');
  5. /**
  6. * Service container for login form (LoginForm.jsx)
  7. * @extends {Container} unstated Container
  8. */
  9. export default class LoginForm extends Container {
  10. constructor(appContainer) {
  11. super();
  12. this.appContainer = appContainer;
  13. this.state = {
  14. retrieveError: null,
  15. isRegistrationEnabled: false,
  16. registrationMode: 'Closed',
  17. registrationWhiteList: [],
  18. isLocalStrategySetup: false,
  19. isLdapStrategySetup: false,
  20. objOfIsExternalAuthEnableds: {},
  21. };
  22. this.retrieveData = this.retrieveData.bind(this);
  23. }
  24. /**
  25. * Workaround for the mangling in production build to break constructor.name
  26. */
  27. static getClassName() {
  28. return 'LoginContainer';
  29. }
  30. /**
  31. * retrieve app sttings data
  32. */
  33. async retrieveData() {
  34. try {
  35. const response = await this.appContainer.apiv3.get('/login/');
  36. const { data } = response.data;
  37. this.setState({
  38. isRegistrationEnabled: data.isRegistrationEnabled,
  39. registrationMode: data.registrationMode,
  40. registrationWhiteList: data.registrationWhiteList,
  41. isLocalStrategySetup: data.isLocalStrategySetup,
  42. isLdapStrategySetup: data.isLdapStrategySetup,
  43. objOfIsExternalAuthEnableds: data.objOfIsExternalAuthEnableds,
  44. });
  45. }
  46. catch (err) {
  47. logger.error(err);
  48. toastError(new Error('Failed to fetch data'));
  49. }
  50. }
  51. }