Show signupApplication in user edit page.

This commit is contained in:
Gucheng Wang 2022-01-15 18:29:10 +08:00
parent e7a6986b62
commit dee9bac110
13 changed files with 57 additions and 4 deletions

View File

@ -38,8 +38,17 @@ func (c *ApiController) GetApplications() {
value := c.Input().Get("value") value := c.Input().Get("value")
sortField := c.Input().Get("sortField") sortField := c.Input().Get("sortField")
sortOrder := c.Input().Get("sortOrder") sortOrder := c.Input().Get("sortOrder")
organization := c.Input().Get("organization")
if limit == "" || page == "" { if limit == "" || page == "" {
c.Data["json"] = object.GetMaskedApplications(object.GetApplications(owner), userId) var applications []*object.Application
if organization == "" {
applications = object.GetApplications(owner)
} else {
applications = object.GetApplicationsByOrganizationName(owner, organization)
}
c.Data["json"] = object.GetMaskedApplications(applications, userId)
c.ServeJSON() c.ServeJSON()
} else { } else {
limit := util.ParseInt(limit) limit := util.ParseInt(limit)

View File

@ -89,7 +89,7 @@ func GetPaginationApplications(owner string, offset, limit int, field, value, so
return applications return applications
} }
func getApplicationsByOrganizationName(owner string, organization string) []*Application { func GetApplicationsByOrganizationName(owner string, organization string) []*Application {
applications := []*Application{} applications := []*Application{}
err := adapter.Engine.Desc("created_time").Find(&applications, &Application{Owner: owner, Organization: organization}) err := adapter.Engine.Desc("created_time").Find(&applications, &Application{Owner: owner, Organization: organization})
if err != nil { if err != nil {

View File

@ -124,7 +124,7 @@ func UpdateOrganization(id string, organization *Organization) bool {
} }
if name != organization.Name { if name != organization.Name {
applications := getApplicationsByOrganizationName("admin", name) applications := GetApplicationsByOrganizationName("admin", name)
for _, application := range applications { for _, application := range applications {
application.Organization = organization.Name application.Organization = organization.Name
UpdateApplication(application.GetId(), application) UpdateApplication(application.GetId(), application)

View File

@ -285,7 +285,7 @@ func UpdateUser(id string, user *User, columns []string, isGlobalAdmin bool) boo
if len(columns) == 0 { if len(columns) == 0 {
columns = []string{"owner", "display_name", "avatar", columns = []string{"owner", "display_name", "avatar",
"location", "address", "region", "language", "affiliation", "title", "homepage", "bio", "score", "tag", "location", "address", "region", "language", "affiliation", "title", "homepage", "bio", "score", "tag", "signup_application",
"is_admin", "is_global_admin", "is_forbidden", "is_deleted", "hash", "is_default_avatar", "properties"} "is_admin", "is_global_admin", "is_forbidden", "is_deleted", "hash", "is_default_avatar", "properties"}
} }
if isGlobalAdmin { if isGlobalAdmin {

View File

@ -45,12 +45,14 @@ class UserEditPage extends React.Component {
user: null, user: null,
application: null, application: null,
organizations: [], organizations: [],
applications: [],
}; };
} }
UNSAFE_componentWillMount() { UNSAFE_componentWillMount() {
this.getUser(); this.getUser();
this.getOrganizations(); this.getOrganizations();
this.getApplicationsByOrganization(this.state.organizationName);
this.getUserApplication(); this.getUserApplication();
} }
@ -72,6 +74,15 @@ class UserEditPage extends React.Component {
}); });
} }
getApplicationsByOrganization(organizationName) {
ApplicationBackend.getApplicationsByOrganization("admin", organizationName)
.then((res) => {
this.setState({
applications: (res.msg === undefined) ? res : [],
});
});
}
getUserApplication() { getUserApplication() {
ApplicationBackend.getUserApplication(this.state.organizationName, this.state.userName) ApplicationBackend.getUserApplication(this.state.organizationName, this.state.userName)
.then((application) => { .then((application) => {
@ -293,6 +304,18 @@ class UserEditPage extends React.Component {
}} /> }} />
</Col> </Col>
</Row> </Row>
<Row style={{marginTop: '20px'}} >
<Col style={{marginTop: '5px'}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("general:Signup application"), i18next.t("general:Signup application - Tooltip"))} :
</Col>
<Col span={22} >
<Select virtual={false} style={{width: '100%'}} disabled={!Setting.isAdminUser(this.props.account)} value={this.state.user.signupApplication} onChange={(value => {this.updateUserField('signupApplication', value);})}>
{
this.state.applications.map((application, index) => <Option key={index} value={application.name}>{application.name}</Option>)
}
</Select>
</Col>
</Row>
{ {
!this.isSelfOrAdmin() ? null : ( !this.isSelfOrAdmin() ? null : (
<Row style={{marginTop: '20px'}} > <Row style={{marginTop: '20px'}} >

View File

@ -21,6 +21,13 @@ export function getApplications(owner, page = "", pageSize = "", field = "", val
}).then(res => res.json()); }).then(res => res.json());
} }
export function getApplicationsByOrganization(owner, organization) {
return fetch(`${Setting.ServerUrl}/api/get-applications?owner=${owner}&organization=${organization}`, {
method: "GET",
credentials: "include"
}).then(res => res.json());
}
export function getApplication(owner, name) { export function getApplication(owner, name) {
return fetch(`${Setting.ServerUrl}/api/get-application?id=${owner}/${encodeURIComponent(name)}`, { return fetch(`${Setting.ServerUrl}/api/get-application?id=${owner}/${encodeURIComponent(name)}`, {
method: "GET", method: "GET",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "sign in url", "Signin URL - Tooltip": "sign in url",
"Signup URL": "Registrierungs-URL", "Signup URL": "Registrierungs-URL",
"Signup URL - Tooltip": "sign up url", "Signup URL - Tooltip": "sign up url",
"Signup application": "Signup application",
"Signup application - Tooltip": "Signup application - Tooltip",
"Sorry, the page you visited does not exist.": "Die von Ihnen besuchte Seite existiert leider nicht.", "Sorry, the page you visited does not exist.": "Die von Ihnen besuchte Seite existiert leider nicht.",
"Swagger": "Swagger", "Swagger": "Swagger",
"Syncers": "Syncers", "Syncers": "Syncers",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "Signin URL - Tooltip", "Signin URL - Tooltip": "Signin URL - Tooltip",
"Signup URL": "Signup URL", "Signup URL": "Signup URL",
"Signup URL - Tooltip": "Signup URL - Tooltip", "Signup URL - Tooltip": "Signup URL - Tooltip",
"Signup application": "Signup application",
"Signup application - Tooltip": "Signup application - Tooltip",
"Sorry, the page you visited does not exist.": "Sorry, the page you visited does not exist.", "Sorry, the page you visited does not exist.": "Sorry, the page you visited does not exist.",
"Swagger": "Swagger", "Swagger": "Swagger",
"Syncers": "Syncers", "Syncers": "Syncers",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "sign in url", "Signin URL - Tooltip": "sign in url",
"Signup URL": "URL d'inscription", "Signup URL": "URL d'inscription",
"Signup URL - Tooltip": "sign up url", "Signup URL - Tooltip": "sign up url",
"Signup application": "Signup application",
"Signup application - Tooltip": "Signup application - Tooltip",
"Sorry, the page you visited does not exist.": "Désolé, la page que vous avez visitée n'existe pas.", "Sorry, the page you visited does not exist.": "Désolé, la page que vous avez visitée n'existe pas.",
"Swagger": "Swagger", "Swagger": "Swagger",
"Syncers": "Synchronisateurs", "Syncers": "Synchronisateurs",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "sign in url", "Signin URL - Tooltip": "sign in url",
"Signup URL": "サインアップURL", "Signup URL": "サインアップURL",
"Signup URL - Tooltip": "sign up url", "Signup URL - Tooltip": "sign up url",
"Signup application": "Signup application",
"Signup application - Tooltip": "Signup application - Tooltip",
"Sorry, the page you visited does not exist.": "申し訳ありませんが、訪問したページは存在しません。", "Sorry, the page you visited does not exist.": "申し訳ありませんが、訪問したページは存在しません。",
"Swagger": "Swagger", "Swagger": "Swagger",
"Syncers": "Syncers", "Syncers": "Syncers",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "sign in url", "Signin URL - Tooltip": "sign in url",
"Signup URL": "Signup URL", "Signup URL": "Signup URL",
"Signup URL - Tooltip": "sign up url", "Signup URL - Tooltip": "sign up url",
"Signup application": "Signup application",
"Signup application - Tooltip": "Signup application - Tooltip",
"Sorry, the page you visited does not exist.": "Sorry, the page you visited does not exist.", "Sorry, the page you visited does not exist.": "Sorry, the page you visited does not exist.",
"Swagger": "Swagger", "Swagger": "Swagger",
"Syncers": "Syncers", "Syncers": "Syncers",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "sign in url", "Signin URL - Tooltip": "sign in url",
"Signup URL": "URL регистрации", "Signup URL": "URL регистрации",
"Signup URL - Tooltip": "sign up url", "Signup URL - Tooltip": "sign up url",
"Signup application": "Signup application",
"Signup application - Tooltip": "Signup application - Tooltip",
"Sorry, the page you visited does not exist.": "Извините, посещенная вами страница не существует.", "Sorry, the page you visited does not exist.": "Извините, посещенная вами страница не существует.",
"Swagger": "Swagger", "Swagger": "Swagger",
"Syncers": "Синхронизаторы", "Syncers": "Синхронизаторы",

View File

@ -154,6 +154,8 @@
"Signin URL - Tooltip": "用户的登录地址", "Signin URL - Tooltip": "用户的登录地址",
"Signup URL": "注册URL", "Signup URL": "注册URL",
"Signup URL - Tooltip": "展示给用户的注册地址", "Signup URL - Tooltip": "展示给用户的注册地址",
"Signup application": "注册应用",
"Signup application - Tooltip": "表示用户注册时通过哪个应用注册的",
"Sorry, the page you visited does not exist.": "抱歉,您访问的页面不存在", "Sorry, the page you visited does not exist.": "抱歉,您访问的页面不存在",
"Swagger": "API文档", "Swagger": "API文档",
"Syncers": "同步器", "Syncers": "同步器",