Refactor DbGetUserByID

Fixes #15
This commit is contained in:
Matthew Dillon 2015-10-13 09:13:35 -07:00
parent e283ec7004
commit 3bfb6fe2b7
3 changed files with 11 additions and 10 deletions

View file

@ -60,14 +60,12 @@ func (u UserService) List(val *url.Values, claims *types.Claims) (types.Entity,
// Get retrieves a single user.
func (u UserService) Get(id int64, dummy string, claims *types.Claims) (types.Entity, *types.AppError) {
user, err := models.DbGetUserByID(id)
user, err := models.GetUser(id, dummy, claims)
user.Password = ""
if err != nil {
return nil, newJSONError(err, http.StatusInternalServerError)
}
user.CanEdit = claims.Role == "A" || id == claims.Sub
payload := payloads.User{
User: user,
Meta: &models.UserMeta{
@ -81,7 +79,7 @@ func (u UserService) Get(id int64, dummy string, claims *types.Claims) (types.En
func (u UserService) Update(id int64, e *types.Entity, dummy string, claims *types.Claims) *types.AppError {
user := (*e).(*payloads.User).User
originalUser, err := models.DbGetUserByID(id)
originalUser, err := models.GetUser(id, dummy, claims)
if err != nil {
return newJSONError(err, http.StatusInternalServerError)
}
@ -263,7 +261,7 @@ func HandleUserLockout(w http.ResponseWriter, r *http.Request) *types.AppError {
func HandleUserPasswordChange(w http.ResponseWriter, r *http.Request) *types.AppError {
claims := helpers.GetClaims(r)
if err := models.UpdateUserPassword(claims.Sub, r.FormValue("password")); err != nil {
if err := models.UpdateUserPassword(&claims, r.FormValue("password")); err != nil {
return newJSONError(err, http.StatusInternalServerError)
}

View file

@ -299,7 +299,7 @@ func (fn errorHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
func tokenRefresh(j *jwt.Middleware) errorHandler {
t := func(w http.ResponseWriter, r *http.Request) *types.AppError {
claims := helpers.GetClaims(r)
user, err := models.DbGetUserByID(claims.Sub)
user, err := models.GetUser(claims.Sub, "", &claims)
if err != nil {
return newJSONError(err, http.StatusInternalServerError)
}

View file

@ -112,8 +112,8 @@ func DbAuthenticate(email string, password string) error {
return nil
}
// DbGetUserByID returns a specific user record by ID.
func DbGetUserByID(id int64) (*User, error) {
// GetUser returns a specific user record by ID.
func GetUser(id int64, dummy string, claims *types.Claims) (*User, error) {
var user User
q := `SELECT *
FROM users
@ -126,6 +126,9 @@ func DbGetUserByID(id int64) (*User, error) {
}
return nil, err
}
user.CanEdit = claims.Role == "A" || id == claims.Sub
return &user, nil
}
@ -167,8 +170,8 @@ func ListUsers(opt helpers.ListOptions, claims *types.Claims) (*Users, error) {
return &users, nil
}
func UpdateUserPassword(id int64, password string) error {
user, err := DbGetUserByID(id)
func UpdateUserPassword(claims *types.Claims, password string) error {
user, err := GetUser(claims.Sub, "", claims)
if err != nil {
return err
}