update
This commit is contained in:
1 parent
0690285147
commit
5618cd2738
154 files changed
+5021
-3161
No files matched your search
+25
-14
@@ -4,8 +4,8 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"ezops/middleware"
|
||||
"ezops/config"
|
||||
"ezops/middleware"
|
||||
"ezops/model"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -62,20 +62,31 @@ func parseUserAgent(ua string) (browser, os string) {
|
||||
}
|
||||
// Browser
|
||||
switch {
|
||||
case containsAny(ua, "Edg/"): browser = "Edge"
|
||||
case containsAny(ua, "Chrome"): browser = "Chrome"
|
||||
case containsAny(ua, "Safari") && !containsAny(ua, "Chrome"): browser = "Safari"
|
||||
case containsAny(ua, "Firefox"): browser = "Firefox"
|
||||
case containsAny(ua, "curl"): browser = "curl"
|
||||
case containsAny(ua, "Python"): browser = "Python"
|
||||
case containsAny(ua, "Edg/"):
|
||||
browser = "Edge"
|
||||
case containsAny(ua, "Chrome"):
|
||||
browser = "Chrome"
|
||||
case containsAny(ua, "Safari") && !containsAny(ua, "Chrome"):
|
||||
browser = "Safari"
|
||||
case containsAny(ua, "Firefox"):
|
||||
browser = "Firefox"
|
||||
case containsAny(ua, "curl"):
|
||||
browser = "curl"
|
||||
case containsAny(ua, "Python"):
|
||||
browser = "Python"
|
||||
}
|
||||
// OS
|
||||
switch {
|
||||
case containsAny(ua, "Windows"): os = "Windows"
|
||||
case containsAny(ua, "Mac OS"): os = "macOS"
|
||||
case containsAny(ua, "Linux") || containsAny(ua, "X11"): os = "Linux"
|
||||
case containsAny(ua, "Android"): os = "Android"
|
||||
case containsAny(ua, "iPhone") || containsAny(ua, "iPad"): os = "iOS"
|
||||
case containsAny(ua, "Windows"):
|
||||
os = "Windows"
|
||||
case containsAny(ua, "Mac OS"):
|
||||
os = "macOS"
|
||||
case containsAny(ua, "Linux") || containsAny(ua, "X11"):
|
||||
os = "Linux"
|
||||
case containsAny(ua, "Android"):
|
||||
os = "Android"
|
||||
case containsAny(ua, "iPhone") || containsAny(ua, "iPad"):
|
||||
os = "iOS"
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -363,7 +374,7 @@ func collectUserPermissionCodes(db *gorm.DB, userID uint, isAdmin bool) []string
|
||||
if isAdmin {
|
||||
return []string{"*"}
|
||||
}
|
||||
// raw SQL: user → iam_user_roles → iam_roles → role_permissions → iam_permissions
|
||||
// raw SQL: user → iam_user_roles → iam_roles → iam_role_permissions → iam_permissions
|
||||
// 逐层 JOIN,任一层缺失自然返回空
|
||||
type permRow struct {
|
||||
Code string
|
||||
@@ -373,7 +384,7 @@ func collectUserPermissionCodes(db *gorm.DB, userID uint, isAdmin bool) []string
|
||||
SELECT DISTINCT p.code
|
||||
FROM iam_user_roles ur
|
||||
JOIN iam_roles r ON r.id = ur.role_id AND r.status = 1
|
||||
JOIN role_permissions rp ON rp.role_id = r.id
|
||||
JOIN iam_role_permissions rp ON rp.role_id = r.id
|
||||
JOIN iam_permissions p ON p.id = rp.permission_id AND p.status = 1
|
||||
WHERE ur.user_id = ?
|
||||
`, userID).Scan(&rows).Error
|
||||
|
||||
Reference in new issue
Block a user