作者 yangfu

fix: 管理员角色权限修改

... ... @@ -66,9 +66,9 @@ type Menu struct {
Category string `json:"category,omitempty"`
// 路径节点路径("0,11,12,")
ParentPath string `json:"parentPath,omitempty"`
// 菜单是否公开状态,[1:显示],[2:隐藏],默认显示 (移除不使用)
// 菜单是否公开状态,[1:显示],[2:隐藏],默认显示
IsPublish int `json:"isPublish,omitempty"`
// 启用状态(启用:1 禁用:2),默认启用
// 启用状态(启用:1 禁用:2),默认启用 (移除不使用,现在只有is_publish状态)
EnableStatus int `json:"enableStatus,omitempty"`
// 外链接(需要菜单跳转的时候使用)
Link string `json:"link"`
... ...
... ... @@ -46,7 +46,7 @@ type Org struct {
OrgStatus int `json:"orgStatus,omitempty"`
// 父级ID
ParentId int64 `json:"parentId,omitempty"`
// 父级节点路径("0,11,12,")
// 父级节点路径("11,12") 注意:parent_id为0时 parentPath "",公司级别的组织没有父级组织
ParentPath string `json:"parentPath,omitempty"`
// 企业id
... ... @@ -202,6 +202,12 @@ func (org *Org) ID() string {
func (org *Org) IsChild(pid int64) bool {
paths := strings.Split(org.ParentPath, PathSegment)
pidStr := strconv.FormatInt(pid, 10)
if org.OrgId == pid {
return true
}
if org.ParentId == pid {
return true
}
for _, v := range paths {
if strings.EqualFold(pidStr, v) {
return true
... ...
... ... @@ -112,7 +112,8 @@ func (ptr *PgBatchAddUserService) BatchAddUser(optUser *domain.OperateInfo, user
failRows = append(failRows, user)
continue
}
var org, dep *domain.Org
var org = optUserOrg
var dep *domain.Org
var ok bool
// 使用导入用户的组织作为默认组织
//if org, ok = mapOrg[user.Org]; !ok {
... ...
... ... @@ -35,6 +35,9 @@ func (ptr *PgRoleAccessMenusService) AccessMenus(options *domain.OperateInfo, ro
if role, _ = roleRepository.FindOne(map[string]interface{}{"roleId": roleIds[i]}); role == nil {
continue
}
if role.RoleType&domain.RoleTypeAdmin > 0 {
hasAdminRole = true
}
// 只要当前登录组织的有权限菜单
if option.OrgId > 0 && option.OrgId != role.OrgId {
continue
... ... @@ -42,9 +45,6 @@ func (ptr *PgRoleAccessMenusService) AccessMenus(options *domain.OperateInfo, ro
for i := 0; i < len(role.AccessMenus); i++ {
menuIdSet.Add(role.AccessMenus[i])
}
if role.RoleType&domain.RoleTypeAdmin > 0 {
hasAdminRole = true
}
}
// 2.获取所有公开的菜单
... ... @@ -78,12 +78,10 @@ func (ptr *PgRoleAccessMenusService) AccessMenus(options *domain.OperateInfo, ro
// 4. 设置别名、返回有效的菜单列表
var mapMenus = make(map[int64]*domain.Menu)
for i := range menus {
if menus[i].EnableStatus == domain.MenuStatusEnable {
menus[i].EnableStatus = domain.MenuStatusDisable
if hasAdminRole {
if menus[i].IsPublish == domain.MenuPublic && hasAdminRole {
menus[i].EnableStatus = domain.MenuStatusEnable //管理员角色,返回所有权限
}
}
mapMenus[menus[i].MenuId] = menus[i]
}
// 4.1.设置别名
... ...