diff --git a/internal/entity/auth.go b/internal/entity/auth.go index 3fdd65e..aa71075 100644 --- a/internal/entity/auth.go +++ b/internal/entity/auth.go @@ -165,9 +165,7 @@ func (u *UserDB) ToUpdatedUser(req User) error { u.NIK = req.NIK } - if req.RoleID > 0 { - u.RoleID = int64(req.RoleID) - } + u.RoleID = int64(req.RoleID) if req.Password != "" { hashedPassword, err := req.HashedPassword(req.Password) @@ -178,6 +176,9 @@ func (u *UserDB) ToUpdatedUser(req User) error { u.Password = hashedPassword } + u.SiteID = req.SiteID + u.PartnerID = req.PartnerID + return nil } diff --git a/internal/services/users/users.go b/internal/services/users/users.go index 49287f7..032ec37 100644 --- a/internal/services/users/users.go +++ b/internal/services/users/users.go @@ -115,8 +115,10 @@ func (s *UserService) Update(ctx mycontext.Context, id int64, userReq *entity.Us return nil, errors.New("user not found") } - if *existingUser.PartnerID != *userReq.PartnerID { - return nil, errors.New("user not found") + if !ctx.IsAdmin() { + if *existingUser.PartnerID != *userReq.PartnerID { + return nil, errors.New("user partner cant be changed") + } } err = existingUser.ToUpdatedUser(*userReq)