- 用户添加角色时,判断用户类型

This commit is contained in:
gazebo
2019-08-20 15:36:49 +08:00
parent 73a26e0d36
commit 3780f5c62e
2 changed files with 26 additions and 5 deletions

View File

@@ -88,7 +88,7 @@ func RegisterUser(user *model.User, mobileVerifyCode string, inAuthInfo *auth2.A
if !mobileAuth.IsUserEmpty() { if !mobileAuth.IsUserEmpty() {
return nil, jsonerr.New(mobileAuth, model.ErrCodeJsonActSkuConflict) return nil, jsonerr.New(mobileAuth, model.ErrCodeJsonActSkuConflict)
} }
user.Type = model.UserTypeConsumer user.Type = model.UserTypeConsumer | model.UserTypeBoss
if inAuthInfo.AuthBindInfo.Type == dingding.AuthTypeStaff { if inAuthInfo.AuthBindInfo.Type == dingding.AuthTypeStaff {
user.Type |= model.UserTypeOperator user.Type |= model.UserTypeOperator
} }
@@ -206,8 +206,25 @@ func GetRoleUserList(ctx *jxcontext.Context, r *authz.RoleInfo) (userIDList []st
return api2.RoleMan.GetRoleUserList(r) return api2.RoleMan.GetRoleUserList(r)
} }
func checkUserType(userID string, userType int8) (err error) {
userList, _, err := dao.GetUsers(dao.GetDB(), 0, "", []string{userID}, "", "", 0, 0)
if err != nil {
return err
}
if len(userList) == 0 {
return fmt.Errorf("找不到用户:%s", userID)
}
if userList[0].Type&userType == 0 {
return fmt.Errorf("用户:%s不能用于当前操作", userID)
}
return nil
}
func AddRoles4User(ctx *jxcontext.Context, userID string, rList []*authz.RoleInfo) (err error) { func AddRoles4User(ctx *jxcontext.Context, userID string, rList []*authz.RoleInfo) (err error) {
errList := errlist.New() errList := errlist.New()
if err = checkUserType(userID, model.UserTypeNonConsumer); err != nil {
return err
}
for _, v := range rList { for _, v := range rList {
if err = autils.ValidateRole(v.Name, v.StoreID); err == nil { if err = autils.ValidateRole(v.Name, v.StoreID); err == nil {
if err = api2.RoleMan.AddRole4User(userID, v); err != nil { if err = api2.RoleMan.AddRole4User(userID, v); err != nil {
@@ -237,6 +254,9 @@ func AddUsers4Role(ctx *jxcontext.Context, r *authz.RoleInfo, userIDList []strin
errList := errlist.New() errList := errlist.New()
for _, v := range userIDList { for _, v := range userIDList {
if err = checkUserType(v, model.UserTypeNonConsumer); err != nil {
return err
}
if err = api2.RoleMan.AddRole4User(v, r); err != nil { if err = api2.RoleMan.AddRole4User(v, r); err != nil {
errList.AddErr(err) errList.AddErr(err)
} }

View File

@@ -6,10 +6,11 @@ const (
) )
const ( const (
UserTypeConsumer = 1 UserTypeConsumer = 1
UserTypeStoreBoss = 2 UserTypeStoreBoss = 2
UserTypeOperator = 4 UserTypeOperator = 4
UserTypeBoss = 8 UserTypeBoss = 8
UserTypeNonConsumer = ^1
) )
var ( var (