Merge branch 'dev' of github.com:wenjianzhang/go-admin into table/dev

This commit is contained in:
linwenxiang
2020-08-29 23:29:42 +08:00
10 changed files with 64 additions and 55 deletions
+32
View File
@@ -51,3 +51,35 @@ func (e *DataPermission) GetDataScope(tbname string, table *gorm.DB) (*gorm.DB,
return table, nil
}
func DataScopes(tableName string, userid int) func(db *gorm.DB) *gorm.DB {
return func(db *gorm.DB) *gorm.DB {
SysUser := new(SysUser)
SysRole := new(SysRole)
SysUser.UserId = userid
user, err := SysUser.Get()
if err != nil {
db.Error = errors.New("获取用户数据出错 msg:" + err.Error())
return db
}
SysRole.RoleId = user.RoleId
role, err := SysRole.Get()
if err != nil {
db.Error = errors.New("获取用户数据出错 msg:" + err.Error())
return db
}
if role.DataScope == "2" {
return db.Where(tableName+".create_by in (select sys_user.user_id from sys_role_dept left join sys_user on sys_user.dept_id=sys_role_dept.dept_id where sys_role_dept.role_id = ?)", user.RoleId)
}
if role.DataScope == "3" {
return db.Where(tableName+".create_by in (SELECT user_id from sys_user where dept_id = ? )", user.DeptId)
}
if role.DataScope == "4" {
return db.Where(tableName+".create_by in (SELECT user_id from sys_user where sys_user.dept_id in(select dept_id from sys_dept where dept_path like ? ))", "%"+tools.IntToString(user.DeptId)+"%")
}
if role.DataScope == "5" || role.DataScope == "" {
return db.Where(tableName+".create_by = ?", userid)
}
return db
}
}
+9 -13
View File
@@ -57,15 +57,17 @@ func (e *SysJob) GetPage(pageSize int, pageIndex int, v interface{}, list interf
table := orm.Eloquent.Table(e.TableName()).Scopes(tools.MakeCondition(v))
// 数据权限控制(如果不需要数据权限请将此处去掉)
dataPermission := new(DataPermission)
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
table, err := dataPermission.GetDataScope(e.TableName(), table)
if err != nil {
return 0, err
}
//dataPermission := new(DataPermission)
userid, _ := tools.StringToInt(e.DataScope)
//dataPermission.UserId = userid
//table, err := dataPermission.GetDataScope(e.TableName(), table)
//if err != nil {
// return 0, err
//}
var count int64
if err := table.Scopes(tools.Paginate(pageSize, pageIndex)).Find(list).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
if err := table.Scopes(DataScopes(e.TableName(),userid),tools.Paginate(pageSize, pageIndex)).Find(list).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
return 0, err
}
return int(count), nil
@@ -81,9 +83,6 @@ func (e *SysJob) Update(id interface{}) (err error) {
}
func (e *SysJob) RemoveAllEntryID() (update SysJob, err error) {
//参数1:是要修改的数据
//参数2:是修改的数据
if err = orm.Eloquent.Table(e.TableName()).Where("entry_id > ?", 0).Update("entry_id", 0).Error; err != nil {
return
}
@@ -91,9 +90,6 @@ func (e *SysJob) RemoveAllEntryID() (update SysJob, err error) {
}
func (e *SysJob) RemoveEntryID(entryID int) (update SysJob, err error) {
//参数1:是要修改的数据
//参数2:是修改的数据
if err = orm.Eloquent.Table(e.TableName()).Where("entry_id = ?", entryID).Updates(map[string]interface{}{"entry_id": 0}).Error; err != nil {
return
}
+8 -8
View File
@@ -215,16 +215,16 @@ func (e *SysUser) GetPage(pageSize int, pageIndex int) ([]SysUserPage, int, erro
table = table.Where("sys_user.dept_id in (select dept_id from sys_dept where dept_path like ? )", "%"+tools.IntToString(e.DeptId)+"%")
}
// 数据权限控制
dataPermission := new(DataPermission)
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
table, err := dataPermission.GetDataScope("sys_user", table)
if err != nil {
return nil, 0, err
}
userid, _ := tools.StringToInt(e.DataScope)
//dataPermission.UserId = userid
//table, err := dataPermission.GetDataScope(e.TableName(), table)
//if err != nil {
// return 0, err
//}
var count int64
if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
if err := table.Scopes(DataScopes(e.TableName(),userid)).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil {
return nil, 0, err
}
//table.Where("sys_user.deleted_at IS NULL").Count(&count)