From 7dd93af411b4f30080ed7c1ee67254a57103d8b5 Mon Sep 17 00:00:00 2001 From: Mitja Zivkovic Date: Tue, 5 Mar 2019 20:16:16 +0100 Subject: [PATCH] fix(system): user.FindByID with nonexisting role --- system/repository/role.go | 2 +- system/repository/user.go | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/system/repository/role.go b/system/repository/role.go index 21e4be766..401868ed3 100644 --- a/system/repository/role.go +++ b/system/repository/role.go @@ -81,7 +81,7 @@ func (r *role) FindByMemberID(userID uint64) ([]*types.Role, error) { rval := make([]*types.Role, 0) for _, id := range ids { mod, err := r.FindByID(id) - if err != nil { + if err != nil && err != ErrRoleNotFound { return nil, err } rval = append(rval, mod) diff --git a/system/repository/user.go b/system/repository/user.go index 1f0402053..79887e4c8 100644 --- a/system/repository/user.go +++ b/system/repository/user.go @@ -86,7 +86,13 @@ func (r *user) FindByID(id uint64) (*types.User, error) { if err := isFound(r.db().Get(mod, sql, id), mod.ID > 0, ErrUserNotFound); err != nil { return nil, err } - return mod, r.prepare(mod, "roles") + + err := r.prepare(mod, "roles") + if err != nil { + return nil, err + } + + return mod, nil } func (r *user) FindByIDs(IDs ...uint64) (uu types.UserSet, err error) {