diff --git a/code.go b/code.go index d631b8e..c3ff078 100644 --- a/code.go +++ b/code.go @@ -875,11 +875,12 @@ var TptProject = Proj{ } linkAuthMap := that.Db.Get(v.GetString("link"), "auth", Map{"id": user.GetCeilInt(v.GetString("name"))}) - linkAuth := linkAuthMap.GetMap("auth") + oldLinkAuth := linkAuthMap.GetMap("auth") + linkAuth := Map{} //conf := ObjToMap(string(btes)) //menus := conf.GetSlice("menus") - if linkAuth == nil { - linkAuth = Map{} + if oldLinkAuth != nil { + linkAuth = oldLinkAuth } for k1, _ := range menus { @@ -890,7 +891,7 @@ var TptProject = Proj{ } if v1["auth"] != nil { - if linkAuth[name] == nil { + if oldLinkAuth == nil { linkAuth[name] = v1["auth"] } else { newAuth := Slice{} @@ -913,7 +914,7 @@ var TptProject = Proj{ } if v2["auth"] != nil { - if linkAuth[name] == nil { + if oldLinkAuth == nil { linkAuth[name] = v2["auth"] } else { @@ -935,32 +936,36 @@ var TptProject = Proj{ for k1, _ := range menus { v1 := menus.GetMap(k1) - //保证个人权限可用 - if fileConfig.GetString("table") == v1.GetString("table") { - v1["auth"] = Slice{"info", "edit"} - } + name := v1.GetString("name") if name == "" { name = v1.GetString("table") } - if linkAuth[name] != nil { + if len(linkAuth.GetSlice(name)) != 0 { + v1["auth"] = linkAuth[name] + } else + //保证个人权限可用 + if fileConfig.GetString("table") == v1.GetString("table") { + v1["auth"] = Slice{"info", "edit"} + } else { v1["auth"] = linkAuth[name] } - v1menus := v1.GetSlice("menus") for k2, _ := range v1menus { v2 := v1menus.GetMap(k2) //保证个人权限可用 - if fileConfig.GetString("table") == v2.GetString("table") { - v2["auth"] = Slice{"info", "edit"} - } name := v2.GetString("name") if name == "" { name = v2.GetString("table") } - if linkAuth[name] != nil { + if len(linkAuth.GetSlice(name)) != 0 { + v2["auth"] = linkAuth[name] + } else if fileConfig.GetString("table") == v2.GetString("table") { + v2["auth"] = Slice{"info", "edit"} + + } else { v2["auth"] = linkAuth[name] }