// Copyright 2021 The casbin Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import React from 'react'; import {Link} from "react-router-dom"; import {Form, Input, Select, Checkbox, Button, Row, Col} from 'antd'; import * as Setting from "../Setting"; import * as AuthBackend from "./AuthBackend"; import i18next from "i18next"; import * as Util from "./Util"; import {authConfig} from "./Auth"; import * as ApplicationBackend from "../backend/ApplicationBackend"; const { Option } = Select; const formItemLayout = { labelCol: { xs: { span: 24, }, sm: { span: 6, }, }, wrapperCol: { xs: { span: 24, }, sm: { span: 18, }, }, }; const tailFormItemLayout = { wrapperCol: { xs: { span: 24, offset: 0, }, sm: { span: 16, offset: 8, }, }, }; class SignupPage extends React.Component { constructor(props) { super(props); this.state = { classes: props, applicationName: props.match.params.applicationName !== undefined ? props.match.params.applicationName : authConfig.appName, application: null, }; this.form = React.createRef(); } UNSAFE_componentWillMount() { if (this.state.applicationName !== undefined) { this.getApplication(); } else { Util.showMessage("error", `Unknown application name: ${this.state.applicationName}`); } } getApplication() { if (this.state.applicationName === undefined) { return; } ApplicationBackend.getApplication("admin", this.state.applicationName) .then((application) => { this.setState({ application: application, }); }); } onFinish(values) { AuthBackend.signup(values) .then((res) => { if (res.status === 'ok') { this.props.history.push('/result'); } else { Setting.showMessage("error", `Failed to sign up: ${res.msg}`); } }); } onFinishFailed(values, errorFields, outOfDate) { this.form.current.scrollToField(errorFields[0].name); } renderForm(application) { const prefixSelector = (