AdminBasicSecurityContainer.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { Container } from 'unstated';
  2. import loggerFactory from '@alias/logger';
  3. // eslint-disable-next-line no-unused-vars
  4. const logger = loggerFactory('growi:security:AdminBasicSecurityContainer');
  5. /**
  6. * Service container for admin security page (BasicSecuritySetting.jsx)
  7. * @extends {Container} unstated Container
  8. */
  9. export default class AdminBasicSecurityContainer extends Container {
  10. constructor(appContainer) {
  11. super();
  12. this.appContainer = appContainer;
  13. this.state = {
  14. isSameUsernameTreatedAsIdenticalUser: false,
  15. };
  16. }
  17. /**
  18. * retrieve security data
  19. */
  20. async retrieveSecurityData() {
  21. const response = await this.appContainer.apiv3.get('/security-setting/');
  22. const { basicAuth } = response.data.securityParams;
  23. this.setState({
  24. isSameUsernameTreatedAsIdenticalUser: basicAuth.isSameUsernameTreatedAsIdenticalUser || false,
  25. });
  26. }
  27. /**
  28. * Workaround for the mangling in production build to break constructor.name
  29. */
  30. static getClassName() {
  31. return 'AdminBasicSecurityContainer';
  32. }
  33. /**
  34. * Switch isSameUsernameTreatedAsIdenticalUser
  35. */
  36. switchIsSameUsernameTreatedAsIdenticalUser() {
  37. this.setState({ isSameUsernameTreatedAsIdenticalUser: !this.state.isSameUsernameTreatedAsIdenticalUser });
  38. }
  39. /**
  40. * Update basicSetting
  41. */
  42. async updateBasicSetting() {
  43. const response = await this.appContainer.apiv3.put('/security-setting/basic', {
  44. isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
  45. });
  46. const { securitySettingParams } = response.data;
  47. this.setState({
  48. isSameUsernameTreatedAsIdenticalUser: securitySettingParams.isSameUsernameTreatedAsIdenticalUser,
  49. });
  50. return response;
  51. }
  52. }