diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index fae03d8f7..861714ac3 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -88,7 +88,7 @@ func RegisterUser(user *model.User, mobileVerifyCode string, inAuthInfo *auth2.A if !mobileAuth.IsUserEmpty() { return nil, jsonerr.New(mobileAuth, model.ErrCodeJsonActSkuConflict) } - user.Type = model.UserTypeConsumer + user.Type = model.UserTypeConsumer | model.UserTypeBoss if inAuthInfo.AuthBindInfo.Type == dingding.AuthTypeStaff { user.Type |= model.UserTypeOperator } @@ -206,8 +206,25 @@ func GetRoleUserList(ctx *jxcontext.Context, r *authz.RoleInfo) (userIDList []st 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) { errList := errlist.New() + if err = checkUserType(userID, model.UserTypeNonConsumer); err != nil { + return err + } for _, v := range rList { if err = autils.ValidateRole(v.Name, v.StoreID); 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() for _, v := range userIDList { + if err = checkUserType(v, model.UserTypeNonConsumer); err != nil { + return err + } if err = api2.RoleMan.AddRole4User(v, r); err != nil { errList.AddErr(err) } diff --git a/business/model/user.go b/business/model/user.go index d46127f4d..5b01f1dec 100644 --- a/business/model/user.go +++ b/business/model/user.go @@ -6,10 +6,11 @@ const ( ) const ( - UserTypeConsumer = 1 - UserTypeStoreBoss = 2 - UserTypeOperator = 4 - UserTypeBoss = 8 + UserTypeConsumer = 1 + UserTypeStoreBoss = 2 + UserTypeOperator = 4 + UserTypeBoss = 8 + UserTypeNonConsumer = ^1 ) var (