func (role *Role) NewPermission() *Permission {
	return &Permission{
		Role:         role,
		AllowedRoles: map[PermissionMode][]string{},
		DeniedRoles:  map[PermissionMode][]string{},
	}
}
NewPermission initialize permission
package roles
import (
	"fmt"
	"net/http"
)
const (
	Anyone = "*"
)
type Checker func(req *http.Request, user interface{}) bool
func New() *Role {
	return &Role{}
}
type Role struct {
	definitions map[string]Checker
}
func (role *Role) Register(name string, fc Checker) {
	if role.definitions == nil {
		role.definitions = map[string]Checker{}
	}
	definition := role.definitions[name]
	if definition != nil {
		fmt.Printf("Role `%v` already defined, overwrited it!\n", name)
	}
	role.definitions[name] = fc
}