diff --git a/controllers/account.go b/controllers/account.go index 29696516..a0939b0c 100644 --- a/controllers/account.go +++ b/controllers/account.go @@ -200,6 +200,10 @@ func (c *ApiController) Signup() { Type: userType, Password: authForm.Password, DisplayName: authForm.Name, + Gender: authForm.Gender, + Bio: authForm.Bio, + Tag: authForm.Tag, + Education: authForm.Education, Avatar: organization.DefaultAvatar, Email: authForm.Email, Phone: authForm.Phone, diff --git a/form/auth.go b/form/auth.go index 86df5980..ca704223 100644 --- a/form/auth.go +++ b/form/auth.go @@ -26,6 +26,10 @@ type AuthForm struct { Name string `json:"name"` FirstName string `json:"firstName"` LastName string `json:"lastName"` + Gender string `json:"gender"` + Bio string `json:"bio"` + Tag string `json:"tag"` + Education string `json:"education"` Email string `json:"email"` Phone string `json:"phone"` Affiliation string `json:"affiliation"` diff --git a/object/application.go b/object/application.go index 53037dfa..8915886d 100644 --- a/object/application.go +++ b/object/application.go @@ -87,7 +87,7 @@ type Application struct { SamlReplyUrl string `xorm:"varchar(100)" json:"samlReplyUrl"` Providers []*ProviderItem `xorm:"mediumtext" json:"providers"` SigninMethods []*SigninMethod `xorm:"varchar(2000)" json:"signinMethods"` - SignupItems []*SignupItem `xorm:"varchar(2000)" json:"signupItems"` + SignupItems []*SignupItem `xorm:"varchar(3000)" json:"signupItems"` SigninItems []*SigninItem `xorm:"mediumtext" json:"signinItems"` GrantTypes []string `xorm:"varchar(1000)" json:"grantTypes"` OrganizationObj *Organization `xorm:"-" json:"organizationObj"` diff --git a/web/src/auth/SignupPage.js b/web/src/auth/SignupPage.js index 8d6b3d8c..a49dc4fe 100644 --- a/web/src/auth/SignupPage.js +++ b/web/src/auth/SignupPage.js @@ -13,7 +13,7 @@ // limitations under the License. import React from "react"; -import {Button, Form, Input, Radio, Result, Row, message} from "antd"; +import {Button, Form, Input, Radio, Result, Row, Select, message} from "antd"; import * as Setting from "../Setting"; import * as AuthBackend from "./AuthBackend"; import * as ProviderButton from "./ProviderButton"; @@ -50,6 +50,38 @@ const formItemLayout = { }, }; +const renderFormItem = (signupItem) => { + const commonProps = { + name: signupItem.name.toLowerCase(), + label: signupItem.label || signupItem.name, + rules: [ + { + required: signupItem.required, + message: i18next.t(`signup:Please input your ${signupItem.label || signupItem.name}!`), + }, + ], + }; + + if (!signupItem.type || signupItem.type === "Input") { + return ( +