mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-10-13 00:50:45 +00:00
Merge branch 'dev' of github.com:wenjianzhang/go-admin into table/dev
This commit is contained in:
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user