| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- import { Container } from 'unstated';
- import loggerFactory from '@alias/logger';
- import { pathUtils } from 'growi-commons';
- import urljoin from 'url-join';
- // eslint-disable-next-line no-unused-vars
- const logger = loggerFactory('growi:security:AdminSamlSecurityContainer');
- /**
- * Service container for admin security page (SecuritySamlSetting.jsx)
- * @extends {Container} unstated Container
- */
- export default class AdminSamlSecurityContainer extends Container {
- constructor(appContainer) {
- super();
- this.appContainer = appContainer;
- this.state = {
- // TODO GW-583 set value
- useOnlyEnvVars: false,
- callbackUrl: urljoin(pathUtils.removeTrailingSlash(appContainer.config.crowi.url), '/passport/saml/callback'),
- missingMandatoryConfigKeys: [],
- samlDbEntryPoint: '',
- samlEnvVarEntryPoint: '',
- samlDbIssuer: '',
- samlEnvVarIssuer: '',
- samlDbCert: '',
- samlEnvVarCert: '',
- samlDbAttrMapId: '',
- samlEnvVarAttrMapId: '',
- samlDbAttrMapUserName: '',
- samlEnvVarAttrMapUserName: '',
- samlDbAttrMapMail: '',
- samlEnvVarAttrMapMail: '',
- samlDbAttrMapFirstName: '',
- samlEnvVarAttrMapFirstName: '',
- samlDbAttrMapLastName: '',
- samlEnvVarAttrMapLastName: '',
- isSameUsernameTreatedAsIdenticalUser: false,
- isSameEmailTreatedAsIdenticalUser: false,
- };
- }
- /**
- * retrieve security data
- */
- async retrieveSecurityData() {
- const response = await this.appContainer.apiv3.get('/security-setting/');
- const { samlAuth } = response.data.securityParams;
- this.setState({
- samlDbEntryPoint: samlAuth.samlDbEntryPoint || '',
- samlEnvVarEntryPoint: samlAuth.samlEnvVarEntryPoint || '',
- samlDbIssuer: samlAuth.samlDbIssuer || '',
- samlEnvVarIssuer: samlAuth.samlEnvVarIssuer || '',
- samlDbCert: samlAuth.samlDbCert || '',
- samlEnvVarCert: samlAuth.samlEnvVarCert || '',
- samlDbAttrMapId: samlAuth.samlDbAttrMapId || '',
- samlEnvVarAttrMapId: samlAuth.samlEnvVarAttrMapId || '',
- samlDbAttrMapUserName: samlAuth.samlDbAttrMapUserName || '',
- samlEnvVarAttrMapUserName: samlAuth.samlEnvVarAttrMapUserName || '',
- samlDbAttrMapMail: samlAuth.samlDbAttrMapMail || '',
- samlEnvVarAttrMapMail: samlAuth.samlEnvVarAttrMapMail || '',
- samlDbAttrMapFirstName: samlAuth.samlDbAttrMapFirstName || '',
- samlEnvVarAttrMapFirstName: samlAuth.samlEnvVarAttrMapFirstName || '',
- samlDbAttrMapLastName: samlAuth.samlDbAttrMapLastName || '',
- samlEnvVarAttrMapLastName: samlAuth.samlEnvVarAttrMapLastName || '',
- isSameUsernameTreatedAsIdenticalUser: samlAuth.isSameUsernameTreatedAsIdenticalUser || false,
- isSameEmailTreatedAsIdenticalUser: samlAuth.isSameEmailTreatedAsIdenticalUser || false,
- });
- }
- /**
- * Workaround for the mangling in production build to break constructor.name
- */
- static getClassName() {
- return 'AdminSamlSecurityContainer';
- }
- /**
- * Change samlDbEntryPoint
- */
- changeSamlDbEntryPoint(inputValue) {
- this.setState({ samlDbEntryPoint: inputValue });
- }
- /**
- * Change samlDbIssuer
- */
- changeSamlDbIssuer(inputValue) {
- this.setState({ samlDbIssuer: inputValue });
- }
- /**
- * Change samlDbCert
- */
- changeSamlDbCert(inputValue) {
- this.setState({ samlDbCert: inputValue });
- }
- /**
- * Change samlDbAttrMapId
- */
- changeSamlDbAttrMapId(inputValue) {
- this.setState({ samlDbAttrMapId: inputValue });
- }
- /**
- * Change samlDbAttrMapUserName
- */
- changeSamlDbAttrMapUserName(inputValue) {
- this.setState({ samlDbAttrMapUserName: inputValue });
- }
- /**
- * Change samlDbAttrMapMail
- */
- changeSamlDbAttrMapMail(inputValue) {
- this.setState({ samlDbAttrMapMail: inputValue });
- }
- /**
- * Change samlDbAttrMapFirstName
- */
- changeSamlDbAttrMapFirstName(inputValue) {
- this.setState({ samlDbAttrMapFirstName: inputValue });
- }
- /**
- * Change samlDbAttrMapLastName
- */
- changeSamlDbAttrMapLastName(inputValue) {
- this.setState({ samlDbAttrMapLastName: inputValue });
- }
- /**
- * Switch isSameUsernameTreatedAsIdenticalUser
- */
- switchIsSameUsernameTreatedAsIdenticalUser() {
- this.setState({ isSameUsernameTreatedAsIdenticalUser: !this.state.isSameUsernameTreatedAsIdenticalUser });
- }
- /**
- * Switch isSameEmailTreatedAsIdenticalUser
- */
- switchIsSameEmailTreatedAsIdenticalUser() {
- this.setState({ isSameEmailTreatedAsIdenticalUser: !this.state.isSameEmailTreatedAsIdenticalUser });
- }
- /**
- * Update saml option
- */
- async updateSamlSetting() {
- const response = await this.appContainer.apiv3.put('/security-setting/saml', {
- samlEntryPoint: this.state.samlDbEntryPoint,
- samlIssuer: this.state.samlDbIssuer,
- samlCert: this.state.samlDbCert,
- samlAttrMapId: this.state.samlDbAttrMapId,
- samlAttrMapUserName: this.state.samlDbAttrMapUserName,
- samlAttrMapMail: this.state.samlDbAttrMapMail,
- samlAttrMapFirstName: this.state.samlDbAttrMapFirstName,
- samlAttrMapLastName: this.state.samlDbAttrMapLastName,
- isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
- isSameEmailTreatedAsIdenticalUser: this.state.isSameEmailTreatedAsIdenticalUser,
- });
- const { securitySettingParams } = response.data;
- this.setState({
- samlDbEntryPoint: securitySettingParams.samlDbEntryPoint || '',
- samlDbIssuer: securitySettingParams.samlDbIssuer || '',
- samlDbCert: securitySettingParams.samlDbCert || '',
- samlDbAttrMapId: securitySettingParams.samlDbAttrMapId || '',
- samlDbAttrMapUserName: securitySettingParams.samlDbAttrMapUserName || '',
- samlDbAttrMapMail: securitySettingParams.samlDbAttrMapMail || '',
- samlDbAttrMapFirstName: securitySettingParams.samlDbAttrMapFirstName || '',
- samlDbAttrMapLastName: securitySettingParams.samlDbAttrMapLastName || '',
- isSameUsernameTreatedAsIdenticalUser: securitySettingParams.isSameUsernameTreatedAsIdenticalUser || false,
- isSameEmailTreatedAsIdenticalUser: securitySettingParams.isSameEmailTreatedAsIdenticalUser || false,
- });
- return response;
- }
- }
|