fixed bugs

This commit is contained in:
2025-03-19 19:56:58 +02:00
parent 1488d7db16
commit 32d64f3637
14 changed files with 173 additions and 98 deletions

46
auth/utils.go Normal file
View File

@@ -0,0 +1,46 @@
package auth
import (
"fmt"
"git.acooldomain.co/server-manager/backend/models"
"github.com/gin-gonic/gin"
)
const AuthorizedParam string = "authorized"
func AuthorizedTo(requiredPermissions models.Permission) gin.HandlerFunc {
return func(ctx *gin.Context) {
claimsPointer, exists := ctx.Get("claims")
if !exists {
ctx.AbortWithError(500, fmt.Errorf("Did not call LoggedIn first"))
return
}
claims, ok := claimsPointer.(*AuthClaims)
if !ok {
return
}
if (requiredPermissions&claims.Permissions != requiredPermissions) && (models.Admin&claims.Permissions != models.Admin) {
return
}
ctx.Set(AuthorizedParam, true)
}
}
func AuthorizationEnforcer() gin.HandlerFunc {
return func(ctx *gin.Context) {
authorized, exists := ctx.Get(AuthorizedParam)
if !exists {
ctx.AbortWithStatus(403)
return
}
if !authorized.(bool) {
ctx.AbortWithStatus(403)
}
}
}