refactor🎨:菜单、角色、用户模块调整

This commit is contained in:
wenjianzhang
2021-06-16 18:34:25 +08:00
parent e4ffd1df14
commit 8f637e02d0
3 changed files with 68 additions and 46 deletions
+37 -36
View File
@@ -204,42 +204,43 @@ func (e SysMenu) GetMenuRole(c *gin.Context) {
e.OK(result, "")
}
// GetMenuIDS 获取角色对应的菜单id数组
// @Summary 获取角色对应的菜单id数组,设置角色权限使用
// @Description 获取JSON
// @Tags 菜单
// @Param id path int true "id"
// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
// @Router /api/v1/menuids/{id} [get]
// @Security Bearer
func (e SysMenu) GetMenuIDS(c *gin.Context) {
s := new(service.SysMenu)
r := service.SysRole{}
m := dto.SysRoleByName{}
err := e.MakeContext(c).
MakeOrm().
Bind(&m, binding.JSON).
MakeService(&s.Service).
MakeService(&r.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
r.GetWithName(&m)
var data models.RoleMenu
data.RoleName = c.GetString("role")
data.UpdateBy = user.GetUserId(c)
result, err := data.GetIDS(s.Orm)
if err != nil {
e.Logger.Errorf("GetIDS error, %s", err.Error())
e.Error(500, err, "获取失败")
return
}
e.OK(result, "")
}
//// GetMenuIDS 获取角色对应的菜单id数组
//// @Summary 获取角色对应的菜单id数组,设置角色权限使用
//// @Description 获取JSON
//// @Tags 菜单
//// @Param id path int true "id"
//// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
//// @Router /api/v1/menuids/{id} [get]
//// @Security Bearer
//func (e SysMenu) GetMenuIDS(c *gin.Context) {
// s := new(service.SysMenu)
// r := service.SysRole{}
// m := dto.SysRoleByName{}
// err := e.MakeContext(c).
// MakeOrm().
// Bind(&m, binding.JSON).
// MakeService(&s.Service).
// MakeService(&r.Service).
// Errors
// if err != nil {
// e.Logger.Error(err)
// e.Error(500, err, err.Error())
// return
// }
// var data models.SysRole
// err = r.GetWithName(&m, &data).Error
//
// //data.RoleName = c.GetString("role")
// //data.UpdateBy = user.GetUserId(c)
// //result, err := data.GetIDS(s.Orm)
//
// if err != nil {
// e.Logger.Errorf("GetIDS error, %s", err.Error())
// e.Error(500, err, "获取失败")
// return
// }
// e.OK(result, "")
//}
// GetMenuTreeSelect 根据角色ID查询菜单下拉树结构
// @Summary 角色修改使用的菜单列表
+6 -3
View File
@@ -397,8 +397,10 @@ func (e SysUser) GetProfile(c *gin.Context) {
func (e SysUser) GetInfo(c *gin.Context) {
req := dto.SysUserById{}
s := service.SysUser{}
r := service.SysRole{}
err := e.MakeContext(c).
MakeOrm().
MakeService(&r.Service).
MakeService(&s.Service).
Errors
if err != nil {
@@ -413,15 +415,16 @@ func (e SysUser) GetInfo(c *gin.Context) {
permissions[0] = "*:*:*"
var buttons = make([]string, 1)
buttons[0] = "*:*:*"
RoleMenu := models.RoleMenu{}
RoleMenu.RoleId = user.GetRoleId(c)
//RoleMenu := models.RoleMenu{}
//RoleMenu.RoleId = user.GetRoleId(c)
var mp = make(map[string]interface{})
mp["roles"] = roles
if user.GetRoleName(c) == "admin" || user.GetRoleName(c) == "系统管理员" {
mp["permissions"] = permissions
mp["buttons"] = buttons
} else {
list, _ := RoleMenu.GetPermis(e.Orm)
list, _ := r.GetById(user.GetRoleId(c))
mp["permissions"] = list
mp["buttons"] = list
}
+25 -7
View File
@@ -252,24 +252,42 @@ func (e *SysRole) UpdateStatus(c *dto.UpdateStatusReq) error {
return nil
}
// Get 获取SysRole对象
func (e *SysRole) GetWithName(d *dto.SysRoleByName, model *models.SysRole) error {
// GetWithName 获取SysRole对象
func (e *SysRole) GetWithName(d *dto.SysRoleByName, model *models.SysRole) *SysRole {
var err error
db := e.Orm.Where("role_name = ?",d.RoleName).First(model)
db := e.Orm.Where("role_name = ?", d.RoleName).First(model)
err = db.Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
e.Log.Errorf("db error:%s", err)
return err
_ = e.AddError(err)
return e
}
if err != nil {
e.Log.Errorf("db error:%s", err)
return err
_ = e.AddError(err)
return e
}
model.MenuIds, err = e.GetRoleMenuId(model.RoleId)
if err != nil {
e.Log.Errorf("get menuIds error, %s", err.Error())
return err
_ = e.AddError(err)
return e
}
return nil
return e
}
// GetById 获取SysRole对象
func (e *SysRole) GetById(roleId int) ([]string, error) {
permissions := make([]string, 0)
model := models.SysRole{}
model.RoleId = roleId
if err := e.Orm.Model(&model).Preload("SysMenu").First(&model).Error; err != nil {
return nil, err
}
l := *model.SysMenu
for i := 0; i < len(l); i++ {
permissions = append(permissions, l[i].Permission)
}
return permissions, nil
}