2024-11-16 13:21:55 +03:00

41 lines
739 B
Go

package blogspolicies
import (
blogrules "enshi/ABAC/blogsPolicies/blogRules"
"enshi/ABAC/rules"
"github.com/gin-gonic/gin"
)
const (
DELETE_BLOG = "delete_blog"
UPDATE_BLOG = "update_blog"
CREATE_BLOG = "create_blog"
GET_BLOG = "get_blog"
)
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_BLOG:
return rules.CheckRule(c, blogrules.BlogDeleteRule)
case UPDATE_BLOG:
return rules.CheckRule(c, blogrules.BlogUpdateRule)
case GET_BLOG:
return rules.CheckRule(c, blogrules.BlogReadRule)
case CREATE_BLOG:
return rules.CheckRule(c, blogrules.BlogCreateRule)
}
return false, nil
}