Browse Source

权限完成

v1
超级管理员 3 years ago
parent
commit
80fb193ef0
  1. 65
      api/version1/grantpowers/postpower.go
  2. 8
      api/version1/grantpowers/type.go
  3. 52
      api/version1/user/userCont.go
  4. 2
      apirouter/v1/grantsystempower/pc.go

65
api/version1/grantpowers/postpower.go

@ -136,7 +136,7 @@ func GetSysKpiMenuPower(menusPower, operPower []string) (powersList []string) {
*/ */
func GetWmsMenuPower(menusPower []string) (powersList []string) { func GetWmsMenuPower(menusPower []string) (powersList []string) {
var permList []int64 var permList []int64
err := overall.CONSTANT_DB_AppPlatform.Model(&modelsstorage.AccesstoAddress{}).Select("`id`").Where("`state` = 1").Find(&permList).Error err := overall.CONSTANT_DB_Storage.Model(&modelsstorage.AccesstoAddress{}).Select("`id`").Where("`state` = 1").Find(&permList).Error
if err != nil { if err != nil {
return return
} }
@ -148,3 +148,66 @@ func GetWmsMenuPower(menusPower []string) (powersList []string) {
} }
return return
} }
/*
*
@ 作者: 秦东
@ 时间: 2023-05-30 14:36:57
@ 功能: 获取角色已配置的权限
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) GetRoleGrantPowers(c *gin.Context) {
var requestData GetRolePowerCont
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.RoleId == "" || requestData.RoleId == "0" {
publicmethod.Result(1, requestData, c, "未知角色!不可进行配权")
return
}
if requestData.SystemName == "" {
publicmethod.Result(1, requestData, c, "未知配权系统!不可进行配权")
return
}
var powerList []string
var empowerCont modelssystempermission.RoleEmpower
err = empowerCont.GetCont(map[string]interface{}{"`role_id`": requestData.RoleId, "`system`": requestData.SystemName}, "`id`", "`point_id`", "`operation`")
if err != nil {
publicmethod.Result(0, powerList, c)
return
}
switch requestData.SystemName {
case "kpi":
if empowerCont.PointId != "" || empowerCont.Operation != "" {
powerAry := strings.Split(empowerCont.PointId, ",")
opeartionAry := strings.Split(empowerCont.Operation, ",")
powerList = GetSysKpiMenuPower(powerAry, opeartionAry)
}
case "cangchu":
fmt.Printf("仓储--->%v\n", empowerCont.PointId)
if empowerCont.PointId != "" {
powerAry := strings.Split(empowerCont.PointId, ",")
powerList = GetWmsMenuPower(powerAry)
fmt.Printf("仓储--111->%v\n", powerList)
}
default:
if empowerCont.PointId != "" {
powerAry := strings.Split(empowerCont.PointId, ",")
powerList = GetSysAppMenuPower(powerAry)
}
}
publicmethod.Result(0, powerList, c)
}

8
api/version1/grantpowers/type.go

@ -39,3 +39,11 @@ type GetPostPowerCont struct {
PostId string `json:"postid"` //岗位 PostId string `json:"postid"` //岗位
SystemName string `json:"name"` //系统识别符 SystemName string `json:"name"` //系统识别符
} }
/*
根据系统获取岗位已配置的权限
*/
type GetRolePowerCont struct {
RoleId string `json:"roleid"` //角色Id
SystemName string `json:"name"` //系统识别符
}

52
api/version1/user/userCont.go

@ -107,24 +107,46 @@ func GetUserPower(appType string, postId int64, roleList []string) (menuPoint, o
} }
//获取角色权限 //获取角色权限
if len(roleList) > 0 { if len(roleList) > 0 {
for _, v := range roleList { var roleId []int64
var roleEmpower modelssystempermission.RoleEmpower err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("`state` = 1 AND `id` IN ?", roleList).Find(&roleId).Error
err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType}) if err == nil && len(roleId) > 0 {
if err == nil { for _, v := range roleId {
if roleEmpower.PointId != "" { var roleEmpower modelssystempermission.RoleEmpower
pointIdList := strings.Split(roleEmpower.PointId, ",") err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType})
menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) if err == nil {
} if roleEmpower.PointId != "" {
if roleEmpower.Operation != "" { pointIdList := strings.Split(roleEmpower.PointId, ",")
operationIdList := strings.Split(roleEmpower.Operation, ",") menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint)
opeart = publicmethod.MergeStruct[string](operationIdList, opeart) }
} if roleEmpower.Operation != "" {
if roleEmpower.Organization != "" { operationIdList := strings.Split(roleEmpower.Operation, ",")
orgIdList := strings.Split(roleEmpower.Organization, ",") opeart = publicmethod.MergeStruct[string](operationIdList, opeart)
orgList = publicmethod.MergeStruct[string](orgIdList, orgList) }
if roleEmpower.Organization != "" {
orgIdList := strings.Split(roleEmpower.Organization, ",")
orgList = publicmethod.MergeStruct[string](orgIdList, orgList)
}
} }
} }
} }
// for _, v := range roleList {
// var roleEmpower modelssystempermission.RoleEmpower
// err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType})
// if err == nil {
// if roleEmpower.PointId != "" {
// pointIdList := strings.Split(roleEmpower.PointId, ",")
// menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint)
// }
// if roleEmpower.Operation != "" {
// operationIdList := strings.Split(roleEmpower.Operation, ",")
// opeart = publicmethod.MergeStruct[string](operationIdList, opeart)
// }
// if roleEmpower.Organization != "" {
// orgIdList := strings.Split(roleEmpower.Organization, ",")
// orgList = publicmethod.MergeStruct[string](orgIdList, orgList)
// }
// }
// }
} }
return return

2
apirouter/v1/grantsystempower/pc.go

@ -15,6 +15,6 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) {
apiRouter.GET("", methodBinding.Index) //入口 apiRouter.GET("", methodBinding.Index) //入口
apiRouter.POST("", methodBinding.Index) //入口 apiRouter.POST("", methodBinding.Index) //入口
apiRouter.POST("get_post_grant_powers", methodBinding.GetPostGrantPowers) //获取岗位已配置的权限 apiRouter.POST("get_post_grant_powers", methodBinding.GetPostGrantPowers) //获取岗位已配置的权限
apiRouter.POST("get_role_grant_powers", methodBinding.GetRoleGrantPowers) //获取角色已配置的权限
} }
} }

Loading…
Cancel
Save