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
+}