This repository has been archived by the owner on May 18, 2023. It is now read-only.
/
role.go
executable file
·109 lines (94 loc) · 3.03 KB
/
role.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package system
import (
"github.com/gin-gonic/gin"
"github.com/go-playground/validator/v10"
"github.com/pddzl/kubeops/server/global"
"github.com/pddzl/kubeops/server/model/common/request"
"github.com/pddzl/kubeops/server/model/common/response"
systemReq "github.com/pddzl/kubeops/server/model/system/request"
"go.uber.org/zap"
)
type RoleApi struct{}
// GetRoles 获取所有角色
func (ra *RoleApi) GetRoles(c *gin.Context) {
if list, err := roleService.GetRoles(); err != nil {
response.FailWithMessage(err.Error(), c)
} else {
response.OkWithDetailed(list, "获取成功", c)
}
}
// AddRole 添加角色
func (ra *RoleApi) AddRole(c *gin.Context) {
var roleReq systemReq.Role
_ = c.ShouldBindJSON(&roleReq)
// 参数校验
validate := validator.New()
if err := validate.Struct(&roleReq); err != nil {
response.FailWithMessage("请求参数错误", c)
global.KOP_LOG.Error("请求参数错误", zap.Error(err))
return
}
if role, err := roleService.AddRole(roleReq.RoleName); err != nil {
response.FailWithMessage("添加失败", c)
global.KOP_LOG.Error("添加角色失败", zap.Error(err))
} else {
if err = casbinService.EditCasbin(role.ID, systemReq.DefaultCasbin()); err != nil {
global.KOP_LOG.Error("更新casbin rule失败", zap.Error(err))
}
response.OkWithDetailed(role, "添加成功", c)
}
}
// DeleteRole 删除角色
func (ra *RoleApi) DeleteRole(c *gin.Context) {
var cId request.CId
_ = c.ShouldBindJSON(&cId)
// 参数校验
validate := validator.New()
if err := validate.Struct(&cId); err != nil {
response.FailWithMessage("请求参数错误", c)
global.KOP_LOG.Error("请求参数错误", zap.Error(err))
return
}
if err := roleService.DeleteRole(cId.ID); err != nil {
response.FailWithMessage("删除失败", c)
global.KOP_LOG.Error("删除角色失败", zap.Error(err))
} else {
response.OkWithMessage("删除成功", c)
}
}
// EditRole 编辑用户
func (ra *RoleApi) EditRole(c *gin.Context) {
var eRole systemReq.EditRole
_ = c.ShouldBindJSON(&eRole)
// 参数校验
validate := validator.New()
if err := validate.Struct(&eRole); err != nil {
response.FailWithMessage("请求参数错误", c)
global.KOP_LOG.Error("请求参数错误", zap.Error(err))
return
}
if err := roleService.EditRole(eRole); err != nil {
response.FailWithMessage("编辑失败", c)
global.KOP_LOG.Error("编辑失败", zap.Error(err))
} else {
response.OkWithMessage("编辑成功", c)
}
}
// EditRoleMenu 编辑用户menu
func (ra *RoleApi) EditRoleMenu(c *gin.Context) {
var editRE systemReq.EditRoleMenu
_ = c.ShouldBindJSON(&editRE)
// 参数校验
validate := validator.New()
if err := validate.Struct(&editRE); err != nil {
response.FailWithMessage("请求参数错误", c)
global.KOP_LOG.Error("请求参数错误", zap.Error(err))
return
}
if err := roleService.EditRoleMenu(editRE.RoleId, editRE.Ids); err != nil {
response.FailWithMessage("编辑失败", c)
global.KOP_LOG.Error("编辑失败", zap.Error(err))
} else {
response.OkWithMessage("编辑成功", c)
}
}