aboutsummaryrefslogtreecommitdiff
path: root/internal/route/api
diff options
context:
space:
mode:
authorJoe Chen <jc@unknwon.io>2022-11-27 19:36:10 +0800
committerGitHub <noreply@github.com>2022-11-27 19:36:10 +0800
commitae20d03aece78fb44dc1caaacfa40c3aa40c7949 (patch)
tree7e7b33f99eae57d8426eeead443276d5cbe0dd5a /internal/route/api
parent44333afd20a6312b617e0c33a497a4385ba3a250 (diff)
refactor(db): migrate `UpdateUser` off `user.go` (#7267)
Diffstat (limited to 'internal/route/api')
-rw-r--r--internal/route/api/v1/admin/user.go55
-rw-r--r--internal/route/api/v1/org/org.go23
2 files changed, 42 insertions, 36 deletions
diff --git a/internal/route/api/v1/admin/user.go b/internal/route/api/v1/admin/user.go
index c7c207af..97f7a0bb 100644
--- a/internal/route/api/v1/admin/user.go
+++ b/internal/route/api/v1/admin/user.go
@@ -15,7 +15,6 @@ import (
"gogs.io/gogs/internal/db"
"gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/route/api/v1/user"
- "gogs.io/gogs/internal/userutil"
)
func parseLoginSource(c *context.APIContext, sourceID int64) {
@@ -83,39 +82,30 @@ func EditUser(c *context.APIContext, form api.EditUserOption) {
return
}
- if len(form.Password) > 0 {
- u.Password = form.Password
- var err error
- if u.Salt, err = userutil.RandomSalt(); err != nil {
- c.Error(err, "get user salt")
- return
- }
- u.Password = userutil.EncodePassword(u.Password, u.Salt)
+ opts := db.UpdateUserOptions{
+ LoginSource: &form.SourceID,
+ LoginName: &form.LoginName,
+ FullName: &form.FullName,
+ Website: &form.Website,
+ Location: &form.Location,
+ MaxRepoCreation: form.MaxRepoCreation,
+ IsActivated: form.Active,
+ IsAdmin: form.Admin,
+ AllowGitHook: form.AllowGitHook,
+ AllowImportLocal: form.AllowImportLocal,
+ ProhibitLogin: nil, // TODO: Add this option to API
}
- u.LoginSource = form.SourceID
- u.LoginName = form.LoginName
- u.FullName = form.FullName
- u.Email = form.Email
- u.Website = form.Website
- u.Location = form.Location
- if form.Active != nil {
- u.IsActive = *form.Active
- }
- if form.Admin != nil {
- u.IsAdmin = *form.Admin
- }
- if form.AllowGitHook != nil {
- u.AllowGitHook = *form.AllowGitHook
+ if form.Password != "" {
+ opts.Password = &form.Password
}
- if form.AllowImportLocal != nil {
- u.AllowImportLocal = *form.AllowImportLocal
- }
- if form.MaxRepoCreation != nil {
- u.MaxRepoCreation = *form.MaxRepoCreation
+
+ if u.Email != form.Email {
+ opts.Email = &form.Email
}
- if err := db.UpdateUser(u); err != nil {
+ err := db.Users.Update(c.Req.Context(), u.ID, opts)
+ if err != nil {
if db.IsErrEmailAlreadyUsed(err) {
c.ErrorStatus(http.StatusUnprocessableEntity, err)
} else {
@@ -123,8 +113,13 @@ func EditUser(c *context.APIContext, form api.EditUserOption) {
}
return
}
- log.Trace("Account profile updated by admin %q: %s", c.User.Name, u.Name)
+ log.Trace("Account updated by admin %q: %s", c.User.Name, u.Name)
+ u, err = db.Users.GetByID(c.Req.Context(), u.ID)
+ if err != nil {
+ c.Error(err, "get user")
+ return
+ }
c.JSONSuccess(u.APIFormat())
}
diff --git a/internal/route/api/v1/org/org.go b/internal/route/api/v1/org/org.go
index 2f6b4b70..9b99bead 100644
--- a/internal/route/api/v1/org/org.go
+++ b/internal/route/api/v1/org/org.go
@@ -89,14 +89,25 @@ func Edit(c *context.APIContext, form api.EditOrgOption) {
return
}
- org.FullName = form.FullName
- org.Description = form.Description
- org.Website = form.Website
- org.Location = form.Location
- if err := db.UpdateUser(org); err != nil {
- c.Error(err, "update user")
+ err := db.Users.Update(
+ c.Req.Context(),
+ c.Org.Organization.ID,
+ db.UpdateUserOptions{
+ FullName: &form.FullName,
+ Website: &form.Website,
+ Location: &form.Location,
+ Description: &form.Description,
+ },
+ )
+ if err != nil {
+ c.Error(err, "update organization")
return
}
+ org, err = db.GetOrgByName(org.Name)
+ if err != nil {
+ c.Error(err, "get organization")
+ return
+ }
c.JSONSuccess(convert.ToOrganization(org))
}