Enshi/enshi_back/ABAC/BookmarkPolicies/bookmarkPolicies.go
2024-11-25 17:36:29 +03:00

37 lines
717 B
Go

package bookmarkspolicies
import (
bookmarksrules "enshi/ABAC/BookmarkPolicies/bookmarkRules"
"enshi/ABAC/rules"
"github.com/gin-gonic/gin"
)
const (
DELETE_BOOKMARK = "delete_bookmark"
CREATE_BOOKMARK = "create_bookmark"
READ_BOOKMARK = "read_bookmark"
)
func BlogPolicies(c *gin.Context) (bool, []error) {
target, exists := c.Get("target")
if !exists {
return false, nil
}
// Permit if one permit
switch target {
case DELETE_BOOKMARK:
return rules.CheckRule(c, bookmarksrules.BookmarkDeleteRule)
case CREATE_BOOKMARK:
return rules.CheckRule(c, bookmarksrules.BookmarkCreateRule)
case READ_BOOKMARK:
return rules.CheckRule(c, bookmarksrules.BookmarkReadRule)
}
return false, nil
}