diff --git a/frontend/vue/views/RoleManager/detail/detail.vue b/frontend/vue/views/RoleManager/detail/detail.vue index 7885317858684586f1b58ef6d9746abbe0b4b916..ae92b771931861b2c033b33122003ec2bbc65385 100644 --- a/frontend/vue/views/RoleManager/detail/detail.vue +++ b/frontend/vue/views/RoleManager/detail/detail.vue @@ -1,112 +1,114 @@ - - - - + + + + diff --git a/pkg/app/server/controller/rolehandler.go b/pkg/app/server/controller/rolehandler.go index 417a51cf38c3c0138e0e0735be291cd82ac74ee2..d1e97ccec8a5670b678f002d0047554de8e2a977 100644 --- a/pkg/app/server/controller/rolehandler.go +++ b/pkg/app/server/controller/rolehandler.go @@ -16,8 +16,11 @@ package controller import ( "net/http" + "strconv" + "strings" "github.com/gin-gonic/gin" + "openeuler.org/PilotGo/PilotGo/pkg/app/server/config" "openeuler.org/PilotGo/PilotGo/pkg/app/server/service/auditlog" "openeuler.org/PilotGo/PilotGo/pkg/app/server/service/auth" "openeuler.org/PilotGo/PilotGo/pkg/app/server/service/common" @@ -172,23 +175,26 @@ func UpdateUserRoleHandler(c *gin.Context) { } func RolePermissionChangeHandler(c *gin.Context) { - var roleChange roleservice.RolePermissionChange - if err := c.Bind(&roleChange); err != nil { - response.Fail(c, nil, "parameter error") + fd := &userservice.Frontdata{} + if err := c.Bind(fd); err != nil { + response.Fail(c, nil, "parameter error"+":"+err.Error()) return } - //TODO: - fd := &userservice.Frontdata{} log := auditlog.New(auditlog.LogTypePermission, "修改角色权限", "", fd) auditlog.Add(log) - userRole, err := roleservice.RolePermissionChangeMethod(roleChange) + userRole, err := roleservice.RolePermissionChangeMethod(fd) if err != nil { + log_s := auditlog.New_sub(log.LogUUID, strings.Split(config.Config().HttpServer.Addr, ":")[0], log.Action, err.Error(), log.Module, strconv.Itoa(fd.Role_roleid), http.StatusBadRequest) + auditlog.Add(log_s) auditlog.UpdateStatus(log, auditlog.StatusFail) response.Fail(c, nil, err.Error()) + return } - auditlog.UpdateStatus(log, auditlog.StatusSuccess) + log_s := auditlog.New_sub(log.LogUUID, strings.Split(config.Config().HttpServer.Addr, ":")[0], log.Action, "", log.Module, strconv.Itoa(fd.Role_roleid), http.StatusOK) + auditlog.Add(log_s) + auditlog.UpdateStatus(log, auditlog.ActionOK) response.Success(c, gin.H{"data": userRole}, "角色权限变更成功") } diff --git a/pkg/app/server/dao/agentlogdao.go b/pkg/app/server/dao/agentlogdao.go index 97bd18eb7119a0f46010b575a37052053630a490..8337ef7f0a8334d91d080fa7e841352a53f51ce4 100644 --- a/pkg/app/server/dao/agentlogdao.go +++ b/pkg/app/server/dao/agentlogdao.go @@ -22,6 +22,27 @@ import ( "openeuler.org/PilotGo/PilotGo/pkg/logger" ) +type Frontdata struct { + ID uint `json:"id"` + Username_creaate string `json:"userName_create,omitempty"` + Departname_create string `json:"departName_create,omitempty"` + RoleID string `json:"roleid,omitempty"` + + Deldatas []string `json:"delDatas,omitempty"` + Username string `json:"userName,omitempty"` + Departname string `json:"departName,omitempty"` + Email string `json:"email,omitempty"` + DepartFirst int `json:"departPid,omitempty"` + DepartSecond int `json:"departId,omitempty"` + Password string `json:"password,omitempty"` + Phone string `json:"phone,omitempty"` + UserType int `json:"userType,omitempty"` + + Menus []string `json:"menus,omitempty"` + ButtonId []string `json:"buttonId,omitempty"` + Role_roleid int `json:"role_roleid,omitempty"` +} + type AuditLog struct { ID uint `gorm:"primary_key;AUTO_INCREMENT" json:"id"` LogUUID string `gorm:"not null;unique" json:"log_uuid"` diff --git a/pkg/app/server/dao/roledao.go b/pkg/app/server/dao/roledao.go index e66e8ea3f803430471371391c3d51905955e1934..06c340e3610810525f7257ab90441a6c8f85bb84 100644 --- a/pkg/app/server/dao/roledao.go +++ b/pkg/app/server/dao/roledao.go @@ -48,11 +48,11 @@ type RoleButton struct { Button string `json:"button"` } -type RolePermissionChange struct { - RoleID int `json:"id"` - Menus []string `json:"menus"` - ButtonId []string `json:"buttonId"` -} +// type RolePermissionChange struct { +// RoleID int `json:"id"` +// Menus []string `json:"menus"` +// ButtonId []string `json:"buttonId"` +// } // 根据角色名称返回角色id和用户类型 func GetRoleIdAndUserType(role string) (roleId string, user_type int, err error) { @@ -201,7 +201,7 @@ func UpdateRoleDescription(roleId int, desc string) error { } // 变更用户角色权限 -func UpdateRolePermission(permission RolePermissionChange) (UserRole, error) { +func UpdateRolePermission(permission *Frontdata) (UserRole, error) { var userRole UserRole // 数组切片转为string menus := strings.Replace(strings.Trim(fmt.Sprint(permission.Menus), "[]"), " ", ",", -1) @@ -211,7 +211,7 @@ func UpdateRolePermission(permission RolePermissionChange) (UserRole, error) { Menus: menus, ButtonID: buttonId, } - err := mysqlmanager.MySQL().Model(&userRole).Where("id = ?", permission.RoleID).Updates(&r).Error + err := mysqlmanager.MySQL().Model(&userRole).Where("id = ?", permission.Role_roleid).Updates(&r).Error return userRole, err } diff --git a/pkg/app/server/dao/userdao.go b/pkg/app/server/dao/userdao.go index f2d2d2064ce53061bcd21c84e9201ab4d0c65911..e8f7a675aac39e9c740224d17d6a20f33c023d0a 100644 --- a/pkg/app/server/dao/userdao.go +++ b/pkg/app/server/dao/userdao.go @@ -64,22 +64,6 @@ func ToUserDto(user User) UserDto { } } -type Frontdata struct { - ID uint `json:"id"` - Username_creaate string `json:"userName_create,omitempty"` - Departname_create string `json:"departName_create,omitempty"` - Deldatas []string `json:"delDatas,omitempty"` - Username string `json:"userName,omitempty"` - Departname string `json:"departName,omitempty"` - Email string `json:"email,omitempty"` - DepartFirst int `json:"departPid,omitempty"` - DepartSecond int `json:"departId,omitempty"` - Password string `json:"password,omitempty"` - Phone string `json:"phone,omitempty"` - UserType int `json:"userType,omitempty"` - RoleID string `json:"role,omitempty"` -} - // 获取所有的用户角色 func AllUserRole() ([]UserRole, error) { var role []UserRole diff --git a/pkg/app/server/service/role/role.go b/pkg/app/server/service/role/role.go index bbeda99ae2b34f840e37f031b0e3e909cb9db399..abac62c6efa5aa676bb6229aba2272ec2716d562 100644 --- a/pkg/app/server/service/role/role.go +++ b/pkg/app/server/service/role/role.go @@ -1,73 +1,73 @@ -/****************************************************************************** - * Copyright (c) KylinSoft Co., Ltd.2021-2022. All rights reserved. - * PilotGo is licensed under the Mulan PSL v2. - * You can use this software accodring to the terms and conditions of the Mulan PSL v2. - * You may obtain a copy of Mulan PSL v2 at: - *     http://license.coscl.org.cn/MulanPSL2 - * THIS SOFTWARE IS PROVIDED ON AN 'AS IS' BASIS, WITHOUT WARRANTIES OF ANY KIND, - * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PSL v2 for more details. - * Author: zhanghan - * Date: 2022-04-27 15:32:50 - * LastEditTime: 2022-04-27 17:17:48 - * Description: 用户角色逻辑代码 - ******************************************************************************/ -package role - -import ( - "openeuler.org/PilotGo/PilotGo/pkg/app/server/dao" - "openeuler.org/PilotGo/PilotGo/pkg/app/server/service/common" -) - -type RolePermissionChange = dao.RolePermissionChange -type UserRole = dao.UserRole - -type RoleID struct { - RoleId []int `json:"roleId"` -} - -// 获取用户最高权限的角色id -func RoleId(R RoleID) int { - min := R.RoleId[0] - if len(R.RoleId) > 1 { - for _, v := range R.RoleId { - if v < min { - min = v - } - } - } - return min -} - -func GetLoginUserPermission(Roleid RoleID) (dao.UserRole, interface{}, error) { - roleId := RoleId(Roleid) //用户的最高权限 - userRole, err := dao.RoleIdToGetAllInfo(roleId) - if err != nil { - return userRole, nil, err - } - buttons, err := dao.PermissionButtons(userRole.ButtonID) - if err != nil { - return userRole, buttons, err - } - return userRole, buttons, nil -} - -func GetRoles(query *common.PaginationQ) (int, interface{}, error) { - roles, total, err := dao.GetAllRoles() - if err != nil { - return total, nil, err - } - data, err := common.DataPaging(query, roles, total) - if err != nil { - return total, data, err - } - return total, data, nil -} - -func RolePermissionChangeMethod(roleChange dao.RolePermissionChange) (*dao.UserRole, error) { - userRole, err := dao.UpdateRolePermission(roleChange) - if err != nil { - return &userRole, err - } - return &userRole, nil -} +/****************************************************************************** + * Copyright (c) KylinSoft Co., Ltd.2021-2022. All rights reserved. + * PilotGo is licensed under the Mulan PSL v2. + * You can use this software accodring to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + *     http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN 'AS IS' BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * Author: zhanghan + * Date: 2022-04-27 15:32:50 + * LastEditTime: 2022-04-27 17:17:48 + * Description: 用户角色逻辑代码 + ******************************************************************************/ +package role + +import ( + "openeuler.org/PilotGo/PilotGo/pkg/app/server/dao" + "openeuler.org/PilotGo/PilotGo/pkg/app/server/service/common" +) + +// type RolePermissionChange = dao.RolePermissionChange +type UserRole = dao.UserRole + +type RoleID struct { + RoleId []int `json:"roleId"` +} + +// 获取用户最高权限的角色id +func RoleId(R RoleID) int { + min := R.RoleId[0] + if len(R.RoleId) > 1 { + for _, v := range R.RoleId { + if v < min { + min = v + } + } + } + return min +} + +func GetLoginUserPermission(Roleid RoleID) (dao.UserRole, interface{}, error) { + roleId := RoleId(Roleid) //用户的最高权限 + userRole, err := dao.RoleIdToGetAllInfo(roleId) + if err != nil { + return userRole, nil, err + } + buttons, err := dao.PermissionButtons(userRole.ButtonID) + if err != nil { + return userRole, buttons, err + } + return userRole, buttons, nil +} + +func GetRoles(query *common.PaginationQ) (int, interface{}, error) { + roles, total, err := dao.GetAllRoles() + if err != nil { + return total, nil, err + } + data, err := common.DataPaging(query, roles, total) + if err != nil { + return total, data, err + } + return total, data, nil +} + +func RolePermissionChangeMethod(roleChange *dao.Frontdata) (*dao.UserRole, error) { + userRole, err := dao.UpdateRolePermission(roleChange) + if err != nil { + return &userRole, err + } + return &userRole, nil +}