diff --git a/cmd/web.go b/cmd/web.go index 86cb7732..6442a115 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -212,18 +212,17 @@ func runWeb(ctx *cli.Context) error { m.Combo("/ssh").Get(user.SettingsSSHKeys). Post(bindIgnErr(form.AddSSHKey{}), user.SettingsSSHKeysPost) m.Post("/ssh/delete", user.DeleteSSHKey) - m.Combo("/applications").Get(user.SettingsApplications). - Post(bindIgnErr(form.NewAccessToken{}), user.SettingsApplicationsPost) - m.Post("/applications/delete", user.SettingsDeleteApplication) - - m.Group("/organizations", func() { - m.Get("", user.SettingsOrganizations) - m.Post("/leave", user.SettingsLeaveOrganization) - }) m.Group("/repositories", func() { m.Get("", user.SettingsRepos) m.Post("/leave", user.SettingsLeaveRepo) }) + m.Group("/organizations", func() { + m.Get("", user.SettingsOrganizations) + m.Post("/leave", user.SettingsLeaveOrganization) + }) + m.Combo("/applications").Get(user.SettingsApplications). + Post(bindIgnErr(form.NewAccessToken{}), user.SettingsApplicationsPost) + m.Post("/applications/delete", user.SettingsDeleteApplication) 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 6c30be29..81ad23b2 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -255,12 +255,10 @@ profile = Profile password = Password avatar = Avatar ssh_keys = SSH Keys -social = Social Accounts -applications = Applications -orgs = Organizations repos = Repositories +orgs = Organizations +applications = Applications delete = Delete Account -uid = Uid public_profile = Public Profile profile_desc = Your email address is public and will be used for any account related notifications, and any web based operations made via the site. diff --git a/routers/user/setting.go b/routers/user/setting.go index 9d22f038..7eb5954f 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -390,6 +390,58 @@ func SettingsApplications(ctx *context.Context) { ctx.HTML(200, SETTINGS_APPLICATIONS) } +func SettingsRepos(ctx *context.Context) { + ctx.Data["Title"] = ctx.Tr("settings") + ctx.Data["PageIsSettingsRepositories"] = true + + repos, err := models.GetUserAndCollaborativeRepositories(ctx.User.ID) + if err != nil { + ctx.Handle(500, "GetUserAndCollaborativeRepositories", err) + return + } + if err = models.RepositoryList(repos).LoadAttributes(); err != nil { + ctx.Handle(500, "LoadAttributes", err) + return + } + ctx.Data["Repos"] = repos + + ctx.HTML(200, SETTINGS_REPOSITORIES) +} + +func SettingsLeaveOrganization(ctx *context.Context) { + err := models.RemoveOrgUser(ctx.QueryInt64("id"), ctx.User.ID) + if err != nil { + if models.IsErrLastOrgOwner(err) { + ctx.Flash.Error(ctx.Tr("form.last_org_owner")) + } else { + ctx.Handle(500, "RemoveOrgUser", err) + return + } + } + + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/user/settings/organizations", + }) +} + +func SettingsLeaveRepo(ctx *context.Context) { + repo, err := models.GetRepositoryByID(ctx.QueryInt64("id")) + if err != nil { + ctx.NotFoundOrServerError("GetRepositoryByID", errors.IsRepoNotExist, err) + return + } + + if err = repo.DeleteCollaboration(ctx.User.ID); err != nil { + ctx.Handle(500, "DeleteCollaboration", err) + return + } + + ctx.Flash.Success(ctx.Tr("settings.repos.leave_success", repo.FullName())) + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubUrl + "/user/settings/repositories", + }) +} + func SettingsApplicationsPost(ctx *context.Context, f form.NewAccessToken) { ctx.Data["Title"] = ctx.Tr("settings") ctx.Data["PageIsSettingsApplications"] = true @@ -446,58 +498,6 @@ func SettingsOrganizations(ctx *context.Context) { ctx.HTML(200, SETTINGS_ORGANIZATIONS) } -func SettingsLeaveOrganization(ctx *context.Context) { - err := models.RemoveOrgUser(ctx.QueryInt64("id"), ctx.User.ID) - if err != nil { - if models.IsErrLastOrgOwner(err) { - ctx.Flash.Error(ctx.Tr("form.last_org_owner")) - } else { - ctx.Handle(500, "RemoveOrgUser", err) - return - } - } - - ctx.JSON(200, map[string]interface{}{ - "redirect": setting.AppSubUrl + "/user/settings/organizations", - }) -} - -func SettingsRepos(ctx *context.Context) { - ctx.Data["Title"] = ctx.Tr("settings") - ctx.Data["PageIsSettingsRepositories"] = true - - repos, err := models.GetUserAndCollaborativeRepositories(ctx.User.ID) - if err != nil { - ctx.Handle(500, "GetUserAndCollaborativeRepositories", err) - return - } - if err = models.RepositoryList(repos).LoadAttributes(); err != nil { - ctx.Handle(500, "LoadAttributes", err) - return - } - ctx.Data["Repos"] = repos - - ctx.HTML(200, SETTINGS_REPOSITORIES) -} - -func SettingsLeaveRepo(ctx *context.Context) { - repo, err := models.GetRepositoryByID(ctx.QueryInt64("id")) - if err != nil { - ctx.NotFoundOrServerError("GetRepositoryByID", errors.IsRepoNotExist, err) - return - } - - if err = repo.DeleteCollaboration(ctx.User.ID); err != nil { - ctx.Handle(500, "DeleteCollaboration", err) - return - } - - ctx.Flash.Success(ctx.Tr("settings.repos.leave_success", repo.FullName())) - ctx.JSON(200, map[string]interface{}{ - "redirect": setting.AppSubUrl + "/user/settings/repositories", - }) -} - func SettingsDelete(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("settings") ctx.Data["PageIsSettingsDelete"] = true