| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { Container } from 'unstated';
- /**
- * Service container for admin security page (LocalSecuritySetting.jsx)
- * @extends {Container} unstated Container
- */
- export default class AdminLocalSecurityContainer extends Container {
- constructor(appContainer) {
- super();
- this.appContainer = appContainer;
- this.state = {
- registrationMode: 'Open',
- registrationWhiteList: [],
- };
- }
- async retrieveSecurityData() {
- const response = await this.appContainer.apiv3.get('/security-setting/');
- const { localSetting } = response.data.securityParams;
- this.setState({
- registrationMode: localSetting.registrationMode,
- registrationWhiteList: localSetting.registrationWhiteList,
- });
- }
- /**
- * Workaround for the mangling in production build to break constructor.name
- */
- static getClassName() {
- return 'AdminLocalSecurityContainer';
- }
- /**
- * Change registration mode
- */
- changeRegistrationMode(value) {
- this.setState({ registrationMode: value });
- }
- /**
- * Change registration white list
- */
- changeRegistrationWhiteList(value) {
- this.setState({ registrationWhiteList: value.split('\n') });
- }
- /**
- * update local security setting
- */
- async updateLocalSecuritySetting() {
- let { registrationWhiteList } = this.state;
- registrationWhiteList = Array.isArray(registrationWhiteList) ? registrationWhiteList : registrationWhiteList.split('\n');
- const response = await this.appContainer.apiv3.put('/security-setting/local-setting', {
- registrationMode: this.state.registrationMode,
- registrationWhiteList,
- });
- const { localSettingParams } = response.data;
- this.setState({
- registrationMode: localSettingParams.registrationMode,
- registrationWhiteList: localSettingParams.registrationWhiteList,
- });
- return localSettingParams;
- }
- }
|