feat : admin 角色权限调整默认全部权限

This commit is contained in:
zhangwenjian
2020-10-23 23:33:57 +08:00
parent ac5b10e6c0
commit 870b144557
3 changed files with 24 additions and 240 deletions
+15 -10
View File
@@ -1,7 +1,8 @@
package middleware
import (
"fmt"
"go-admin/common/log"
"go-admin/tools/app"
"net/http"
"github.com/gin-gonic/gin"
@@ -17,16 +18,20 @@ func AuthCheckRole() gin.HandlerFunc {
data, _ := c.Get(jwtauth.JwtPayloadKey)
v := data.(jwtauth.MapClaims)
e := mycasbin.Casbin()
var res bool
var err error
msgID := tools.GenerateMsgIDFromContext(c)
//检查权限
res, err := e.Enforce(v["rolekey"], c.Request.URL.Path, c.Request.Method)
tools.HasError(err, "", 500)
fmt.Printf("%s [INFO] %s %s %s \r\n",
tools.GetCurrentTimeStr(),
c.Request.Method,
c.Request.URL.Path,
v["rolekey"],
)
if v["rolekey"]=="admin" {
res = true
log.Infof("msgID[%s] info:%s method:%s path:%s", msgID, v["rolekey"], c.Request.Method, c.Request.URL.Path)
}else {
res, err = e.Enforce(v["rolekey"], c.Request.URL.Path, c.Request.Method)
if err != nil {
log.Errorf("msgID[%s] error:%s method:%s path:%s", msgID, err, c.Request.Method, c.Request.URL.Path)
app.Error(c, 500, err, "")
}
}
if res {
c.Next()
+9 -2
View File
@@ -2,6 +2,7 @@ package models
import (
"errors"
"gorm.io/gorm"
orm "go-admin/common/global"
"go-admin/tools"
@@ -216,8 +217,14 @@ func (e *MenuRole) Get() (Menus []MenuRole, err error) {
}
func (e *Menu) GetByRoleName(rolename string) (Menus []Menu, err error) {
table := orm.Eloquent.Table(e.TableName()).Select("sys_menu.*").Joins("left join sys_role_menu on sys_role_menu.menu_id=sys_menu.menu_id")
table = table.Where("sys_role_menu.role_name=? and menu_type in ('M','C')", rolename)
var table *gorm.DB
if rolename == "admin" {
table = orm.Eloquent.Table(e.TableName()).Select("sys_menu.*")
table = table.Where(" menu_type in ('M','C')")
} else {
table = orm.Eloquent.Table(e.TableName()).Select("sys_menu.*").Joins("left join sys_role_menu on sys_role_menu.menu_id=sys_menu.menu_id")
table = table.Where("sys_role_menu.role_name=? and menu_type in ('M','C')", rolename)
}
if err = table.Order("sort").Find(&Menus).Error; err != nil {
return
}