41 lines
739 B
Go
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
|
|
}
|