From 5a5d30424454bb36b9e7e3dc191b2363831997fa Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Thu, 6 Jul 2023 11:41:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/adminRole.go | 2 +- api/service/role.go | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/api/controller/adminRole.go b/api/controller/adminRole.go index 6ec90ed..eb2f8f9 100644 --- a/api/controller/adminRole.go +++ b/api/controller/adminRole.go @@ -280,7 +280,7 @@ func (r *Role) PutRole(c *gin.Context) { } // 业务处理 - _, err = roleService.PutRole(c, roleId, roleRequest.PutRole) + _, err = roleService.PutRole(roleId, roleRequest.PutRole) if err != nil { responses.FailWithMessage(err.Error(), c) return diff --git a/api/service/role.go b/api/service/role.go index 0f5bfb1..f5683ef 100644 --- a/api/service/role.go +++ b/api/service/role.go @@ -240,15 +240,22 @@ func (r *RoleService) AddRole(c *gin.Context, AddRoleRequest requests.AddRole) ( } // PutRole 修改角色 -func (r *RoleService) PutRole(c *gin.Context, requestRoleId int64, PutRoleRequest requests.PutRole) (bool, error) { - // 获取当前登陆用户数据 - roleId := c.GetInt64("RoleId") - if roleId == 0 { - return false, errors.New("数据错误") +func (r *RoleService) PutRole(requestRoleId int64, PutRoleRequest requests.PutRole) (bool, error) { + + adminRoleDao := dao.AdminRoleDao{} + AdminMenuDao := dao.AdminMenuDao{} + + // 获取角色数据 + adminRole, err := adminRoleDao.GetAdminRoleFirstById(requestRoleId) + if err != nil || adminRole == nil { + return false, errors.New("修改失败") } - AdminRoleDao := dao.AdminRoleDao{} - AdminMenuDao := dao.AdminMenuDao{} + if len(PutRoleRequest.MenuIds) > 0 { + if adminRole.IsAdmin == 1 { + return false, errors.New("无法修改管理员菜单") + } + } // 判断菜单id for _, menuId := range PutRoleRequest.MenuIds { @@ -276,7 +283,7 @@ func (r *RoleService) PutRole(c *gin.Context, requestRoleId int64, PutRoleReques data := make(map[string]interface{}) data["role_name"] = PutRoleRequest.RoleName data["is_admin"] = PutRoleRequest.IsAdmin - err := AdminRoleDao.EditAdminRoleById(tx, requestRoleId, data) + err = adminRoleDao.EditAdminRoleById(tx, requestRoleId, data) if err != nil { tx.Rollback() return false, errors.New("修改失败")