| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import { Container } from 'unstated';
- import loggerFactory from '@alias/logger';
- import removeNullPropertyFromObject from '../../../lib/util/removeNullPropertyFromObject';
- const logger = loggerFactory('growi:security:AdminTwitterSecurityContainer');
- /**
- * Service container for admin security page (BasicSecuritySetting.jsx)
- * @extends {Container} unstated Container
- */
- export default class AdminBasicSecurityContainer extends Container {
- constructor(appContainer) {
- super();
- this.appContainer = appContainer;
- this.dummyIsSameUsernameTreatedAsIdenticalUser = 0;
- this.dummyIsSameUsernameTreatedAsIdenticalUserForError = 1;
- this.state = {
- retrieveError: null,
- // set dummy value tile for using suspense
- isSameUsernameTreatedAsIdenticalUser: this.dummyIsSameUsernameTreatedAsIdenticalUser,
- };
- }
- /**
- * retrieve security data
- */
- async retrieveSecurityData() {
- try {
- const response = await this.appContainer.apiv3.get('/security-setting/');
- const { basicAuth } = response.data.securityParams;
- this.setState({
- isSameUsernameTreatedAsIdenticalUser: basicAuth.isSameUsernameTreatedAsIdenticalUser,
- });
- }
- catch (err) {
- this.setState({ retrieveError: err });
- logger.error(err);
- throw new Error('Failed to fetch data');
- }
- }
- /**
- * Workaround for the mangling in production build to break constructor.name
- */
- static getClassName() {
- return 'AdminBasicSecurityContainer';
- }
- /**
- * Switch isSameUsernameTreatedAsIdenticalUser
- */
- switchIsSameUsernameTreatedAsIdenticalUser() {
- this.setState({ isSameUsernameTreatedAsIdenticalUser: !this.state.isSameUsernameTreatedAsIdenticalUser });
- }
- /**
- * Update basicSetting
- */
- async updateBasicSetting() {
- let requestParams = { isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser };
- requestParams = await removeNullPropertyFromObject(requestParams);
- const response = await this.appContainer.apiv3.put('/security-setting/basic', requestParams);
- const { securitySettingParams } = response.data;
- this.setState({
- isSameUsernameTreatedAsIdenticalUser: securitySettingParams.isSameUsernameTreatedAsIdenticalUser,
- });
- return response;
- }
- }
|