fix 完善数据权限验证
This commit is contained in:
parent
8238ed6753
commit
10ed960475
@ -237,6 +237,8 @@ func (s *sSysRole) RoleDataScope(ctx context.Context, req *system.DataScopeReq)
|
|||||||
_, err = tx.Model(dao.SysRoleDept.Table()).Data(data).Insert()
|
_, err = tx.Model(dao.SysRoleDept.Table()).Data(data).Insert()
|
||||||
liberr.ErrIsNil(ctx, err, "设置失败")
|
liberr.ErrIsNil(ctx, err, "设置失败")
|
||||||
}
|
}
|
||||||
|
//清除缓存
|
||||||
|
commonService.Cache().Remove(ctx, consts.CacheSysRole)
|
||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
@ -678,7 +678,7 @@ func (s *sSysUser) GetDataWhere(ctx context.Context, userInfo *model.ContextUser
|
|||||||
}
|
}
|
||||||
dList = append(dList, m)
|
dList = append(dList, m)
|
||||||
}
|
}
|
||||||
l := libUtils.FindSonByParentId(dList, gconv.Int(userInfo.DeptId), "pid", "id")
|
l := libUtils.FindSonByParentId(dList, userInfo.DeptId, "pid", "id")
|
||||||
for _, li := range l {
|
for _, li := range l {
|
||||||
deptIdArr.Add(gconv.Int64(li["id"]))
|
deptIdArr.Add(gconv.Int64(li["id"]))
|
||||||
}
|
}
|
||||||
@ -695,3 +695,17 @@ func (s *sSysUser) GetDataWhere(ctx context.Context, userInfo *model.ContextUser
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HasAccessByDataWhere 判断用户是否有数据权限
|
||||||
|
func (s *sSysUser) HasAccessByDataWhere(ctx context.Context, where g.Map, uid interface{}) bool {
|
||||||
|
err := g.Try(ctx, func(ctx context.Context) {
|
||||||
|
rec, err := dao.SysUser.Ctx(ctx).As("user").
|
||||||
|
Fields("user.id").
|
||||||
|
Where("user.id",uid).Where(where).One()
|
||||||
|
liberr.ErrIsNil(ctx, err)
|
||||||
|
if rec.IsEmpty() {
|
||||||
|
liberr.ErrIsNil(ctx, gerror.New("没有数据"))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
@ -46,6 +46,7 @@ type (
|
|||||||
Delete(ctx context.Context, ids []int) (err error)
|
Delete(ctx context.Context, ids []int) (err error)
|
||||||
GetUsers(ctx context.Context, ids []int) (users []*model.SysUserSimpleRes, err error)
|
GetUsers(ctx context.Context, ids []int) (users []*model.SysUserSimpleRes, err error)
|
||||||
GetDataWhere(ctx context.Context, userInfo *model.ContextUser, entityData interface{}) (where g.Map, err error)
|
GetDataWhere(ctx context.Context, userInfo *model.ContextUser, entityData interface{}) (where g.Map, err error)
|
||||||
|
HasAccessByDataWhere(ctx context.Context, where g.Map,uid interface{}) bool
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user