-
Notifications
You must be signed in to change notification settings - Fork 0
/
adminGroupService.go
63 lines (52 loc) · 1.55 KB
/
adminGroupService.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
* @Description:用户组服务
* @Author: gphper
* @Date: 2021-07-17 21:03:55
*/
package admin
import (
"github.com/kumataahh/eagle-eye/internal/dao"
"github.com/kumataahh/eagle-eye/internal/models"
"github.com/kumataahh/eagle-eye/pkg/casbinauth"
)
type adminGroupService struct{}
var AgService = adminGroupService{}
//获取角色列表
func (ser *adminGroupService) GetList() (adminGroups []models.AdminGroup, err error) {
err = dao.AgDao.DB.Where("group_id != ?", 1).Find(&adminGroups).Error
return
}
//保存角色
func (ser *adminGroupService) SaveGroup(req models.AdminGroupSaveReq) error {
oldGroup := casbinauth.GetPoliceByGroup(req.GroupName)
oldLen := len(oldGroup)
oldSlice := make([]string, oldLen)
if oldLen > 0 {
for oldk, oldv := range oldGroup {
oldSlice[oldk] = oldv[1] + ":" + oldv[2]
}
}
tx := models.Db.Begin()
_, err := casbinauth.UpdatePolices(req.GroupName, oldSlice, req.Privs, tx)
if err != nil {
tx.Rollback()
return err
}
return nil
}
//获取角色信息
func (ser *adminGroupService) GetGroup(id string) (adminGroup models.AdminGroup, err error) {
err = dao.AgDao.DB.Where("group_id = ?", id).First(&adminGroup).Error
return
}
//获取所有角色
func (ser *adminGroupService) GetAllGroup() (adminGroups []models.AdminGroup, err error) {
err = dao.AgDao.DB.Where("group_id != ?", 1).Find(&adminGroups).Error
return
}
//删除角色
func (ser *adminGroupService) DelGroup(id string) (ok bool, err error) {
polices := casbinauth.GetPoliceByGroup(id)
ok, err = casbinauth.DelGroups("p", polices)
return
}