- 用户添加角色时,判断用户类型
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
Reference in New Issue
Block a user