aboutsummaryrefslogtreecommitdiff
path: root/internal/route/org
diff options
context:
space:
mode:
authorJoe Chen <jc@unknwon.io>2022-11-27 15:19:44 +0800
committerGitHub <noreply@github.com>2022-11-27 15:19:44 +0800
commit13099a7e4fe7565bb858646d42d1fba817cb06cc (patch)
treeac932d0f5df9f14b0f9408c32f699ae7167edc25 /internal/route/org
parenta7dbc970dfaac9f04addf05da97bb0aa29083e37 (diff)
refactor(db): add `Users.Update` (#7263)
Diffstat (limited to 'internal/route/org')
-rw-r--r--internal/route/org/setting.go46
1 files changed, 24 insertions, 22 deletions
diff --git a/internal/route/org/setting.go b/internal/route/org/setting.go
index f3e65b9b..bcef4ea1 100644
--- a/internal/route/org/setting.go
+++ b/internal/route/org/setting.go
@@ -5,8 +5,6 @@
package org
import (
- "strings"
-
"github.com/pkg/errors"
log "unknwon.dev/clog/v2"
@@ -40,43 +38,47 @@ func SettingsPost(c *context.Context, f form.UpdateOrgSetting) {
org := c.Org.Organization
- // Check if organization name has been changed.
- if org.LowerName != strings.ToLower(f.Name) {
- if db.Users.IsUsernameUsed(c.Req.Context(), f.Name) {
- c.Data["OrgName"] = true
- c.RenderWithErr(c.Tr("form.username_been_taken"), SETTINGS_OPTIONS, &f)
- return
- } else if err := db.Users.ChangeUsername(c.Req.Context(), org.ID, f.Name); err != nil {
+ // Check if the organization username (including cases) had been changed
+ if org.Name != f.Name {
+ err := db.Users.ChangeUsername(c.Req.Context(), c.Org.Organization.ID, f.Name)
+ if err != nil {
c.Data["OrgName"] = true
+ var msg string
switch {
+ case db.IsErrUserAlreadyExist(errors.Cause(err)):
+ msg = c.Tr("form.username_been_taken")
case db.IsErrNameNotAllowed(errors.Cause(err)):
- c.RenderWithErr(c.Tr("user.form.name_not_allowed", err.(db.ErrNameNotAllowed).Value()), SETTINGS_OPTIONS, &f)
+ msg = c.Tr("user.form.name_not_allowed", err.(db.ErrNameNotAllowed).Value())
default:
c.Error(err, "change organization name")
+ return
}
+
+ c.RenderWithErr(msg, SETTINGS_OPTIONS, &f)
return
}
+
// reset c.org.OrgLink with new name
c.Org.OrgLink = conf.Server.Subpath + "/org/" + f.Name
log.Trace("Organization name changed: %s -> %s", org.Name, f.Name)
}
- // In case it's just a case change.
- org.Name = f.Name
- org.LowerName = strings.ToLower(f.Name)
+ opts := db.UpdateUserOptions{
+ FullName: f.FullName,
+ Website: f.Website,
+ Location: f.Location,
+ Description: f.Description,
+ MaxRepoCreation: org.MaxRepoCreation,
+ }
if c.User.IsAdmin {
- org.MaxRepoCreation = f.MaxRepoCreation
+ opts.MaxRepoCreation = f.MaxRepoCreation
}
-
- org.FullName = f.FullName
- org.Description = f.Description
- org.Website = f.Website
- org.Location = f.Location
- if err := db.UpdateUser(org); err != nil {
- c.Error(err, "update user")
+ err := db.Users.Update(c.Req.Context(), c.User.ID, opts)
+ if err != nil {
+ c.Error(err, "update organization")
return
}
- log.Trace("Organization setting updated: %s", org.Name)
+
c.Flash.Success(c.Tr("org.settings.update_setting_success"))
c.Redirect(c.Org.OrgLink + "/settings")
}