This commit is contained in:
Tomáš Dvořák
2025-10-16 13:32:05 +02:00
commit 12cba639b9
663 changed files with 168914 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
package middleware
import (
"net/http"
"fotbal-club/internal/models"
"github.com/gin-gonic/gin"
)
// AdminMiddleware checks if the user has admin role
func AdminMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
user, exists := c.Get("user")
if !exists {
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Unauthorized"})
return
}
// Type assert the user to your User model
userModel, ok := user.(*models.User)
if !ok {
c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"error": "Internal server error"})
return
}
// Check if user is admin
if userModel.Role != "admin" {
c.AbortWithStatusJSON(http.StatusForbidden, gin.H{"error": "Forbidden - Admin access required"})
return
}
c.Next()
}
}