Kaynağa Gözat

角色不存在,继续执行(或者可以拒绝访问)

urbanu 1 ay önce
ebeveyn
işleme
af35330d1f
1 değiştirilmiş dosya ile 6 ekleme ve 2 silme
  1. 6 2
      base/engine/middleware/auth.go

+ 6 - 2
base/engine/middleware/auth.go

@@ -21,8 +21,12 @@ func Auth() gin.HandlerFunc {
 		if err == nil {
 			// 必须存在用户ID 角色ID
 			roleId := c.GetInt64("roleId")
-			var role *system.Role
-			core.MainDb().Model(&system.Role{}).Where("id", roleId).First(&role)
+			var role system.Role
+			if err := core.MainDb().Model(&system.Role{}).Where("id", roleId).First(&role).Error; err != nil {
+				// 角色不存在,继续执行(或者可以拒绝访问)
+				c.Next()
+				return
+			}
 			if role.Apis != "*" {
 				authsList := strings.Split(role.Apis, ",") // 通过缓存获取角色配置的权限
 				if !lo.Contains(authsList, fmt.Sprintf("%d", api.ID)) {