diff --git a/cmd/web.go b/cmd/web.go index 79d28c485..2cbbb7c5c 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -247,6 +247,7 @@ func runWeb(ctx *cli.Context) error { m.Combo("/applications").Get(user.SettingsApplications). Post(bindIgnErr(auth.NewAccessTokenForm{}), user.SettingsApplicationsPost) m.Post("/applications/delete", user.SettingsDeleteApplication) + m.Get("/organizations", user.SettingsOrganizations) m.Route("/delete", "GET,POST", user.SettingsDelete) }, reqSignIn, func(ctx *context.Context) { ctx.Data["PageIsUserSettings"] = true diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index be36ae7c4..9b05ba402 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -337,6 +337,8 @@ access_token_deletion = Personal Access Token Deletion access_token_deletion_desc = Delete this personal access token will remove all related accesses of application. Do you want to continue? delete_token_success = Personal access token has been removed successfully! Don't forget to update your application as well. +orgs_none = You are not a member of any organizations. + delete_account = Delete Your Account delete_prompt = The operation will delete your account permanently, and CANNOT be undone! confirm_delete_account = Confirm Deletion diff --git a/public/less/_form.less b/public/less/_form.less index 88ab7d00a..ab74eb2ab 100644 --- a/public/less/_form.less +++ b/public/less/_form.less @@ -18,6 +18,16 @@ } } +ui.attached.segment.orgs { + padding: 0px; + div .item { + padding: 11px; + .content { + font-weight: bold; + } + } +} + @create-page-form-input-padding: 250px !important; #create-page-form { form { diff --git a/routers/user/setting.go b/routers/user/setting.go index 217084f33..14136e9e4 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -21,16 +21,17 @@ import ( ) const ( - SETTINGS_PROFILE base.TplName = "user/settings/profile" - SETTINGS_AVATAR base.TplName = "user/settings/avatar" - SETTINGS_PASSWORD base.TplName = "user/settings/password" - SETTINGS_EMAILS base.TplName = "user/settings/email" - SETTINGS_SSH_KEYS base.TplName = "user/settings/sshkeys" - SETTINGS_SOCIAL base.TplName = "user/settings/social" - SETTINGS_APPLICATIONS base.TplName = "user/settings/applications" - SETTINGS_DELETE base.TplName = "user/settings/delete" - NOTIFICATION base.TplName = "user/notification" - SECURITY base.TplName = "user/security" + SETTINGS_PROFILE base.TplName = "user/settings/profile" + SETTINGS_AVATAR base.TplName = "user/settings/avatar" + SETTINGS_PASSWORD base.TplName = "user/settings/password" + SETTINGS_EMAILS base.TplName = "user/settings/email" + SETTINGS_SSH_KEYS base.TplName = "user/settings/sshkeys" + SETTINGS_SOCIAL base.TplName = "user/settings/social" + SETTINGS_APPLICATIONS base.TplName = "user/settings/applications" + SETTINGS_ORGANIZATIONS base.TplName = "user/settings/organizations" + SETTINGS_DELETE base.TplName = "user/settings/delete" + NOTIFICATION base.TplName = "user/notification" + SECURITY base.TplName = "user/security" ) func Settings(ctx *context.Context) { @@ -423,6 +424,20 @@ func SettingsDeleteApplication(ctx *context.Context) { }) } +func SettingsOrganizations(ctx *context.Context) { + ctx.Data["Title"] = ctx.Tr("settings") + ctx.Data["PageIsSettingsOrganizations"] = true + + orgs, err := models.GetOrgsByUserID(ctx.User.ID, ctx.IsSigned && ctx.User.IsAdmin) + if err != nil { + ctx.Handle(500, "GetOrgsByUserID", err) + return + } + ctx.Data["Orgs"] = orgs + + ctx.HTML(200, SETTINGS_ORGANIZATIONS) +} + func SettingsDelete(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("settings") ctx.Data["PageIsSettingsDelete"] = true diff --git a/templates/user/settings/navbar.tmpl b/templates/user/settings/navbar.tmpl index 5166bafab..4293fed09 100644 --- a/templates/user/settings/navbar.tmpl +++ b/templates/user/settings/navbar.tmpl @@ -19,6 +19,9 @@ {{.i18n.Tr "settings.applications"}} + + {{.i18n.Tr "settings.orgs"}} + {{.i18n.Tr "settings.delete"}} diff --git a/templates/user/settings/organizations.tmpl b/templates/user/settings/organizations.tmpl new file mode 100644 index 000000000..64bdf9e03 --- /dev/null +++ b/templates/user/settings/organizations.tmpl @@ -0,0 +1,37 @@ +{{template "base/head" .}} +