Documentation ¶
Index ¶
- type CachedEnforcer
- type Enforcer
- func (e *Enforcer) AddFunction(name string, function govaluate.ExpressionFunction)
- func (e *Enforcer) AddGroupingPolicy(params ...interface{}) (bool, error)
- func (e *Enforcer) AddNamedGroupingPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *Enforcer) AddNamedPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *Enforcer) AddPermissionForUser(user string, permission ...string) (bool, error)
- func (e *Enforcer) AddPolicy(params ...interface{}) (bool, error)
- func (e *Enforcer) AddRoleForUser(user string, role string) (bool, error)
- func (e *Enforcer) AddRoleForUserInDomain(user string, role string, domain string) (bool, error)
- func (e *Enforcer) BuildRoleLinks() error
- func (e *Enforcer) ClearPolicy()
- func (e *Enforcer) DeletePermission(permission ...string) (bool, error)
- func (e *Enforcer) DeletePermissionForUser(user string, permission ...string) (bool, error)
- func (e *Enforcer) DeletePermissionsForUser(user string) (bool, error)
- func (e *Enforcer) DeleteRole(role string) (bool, error)
- func (e *Enforcer) DeleteRoleForUser(user string, role string) (bool, error)
- func (e *Enforcer) DeleteRoleForUserInDomain(user string, role string, domain string) (bool, error)
- func (e *Enforcer) DeleteRolesForUser(user string) (bool, error)
- func (e *Enforcer) DeleteUser(user string) (bool, error)
- func (e *Enforcer) EnableAutoBuildRoleLinks(autoBuildRoleLinks bool)
- func (e *Enforcer) EnableAutoSave(autoSave bool)
- func (e *Enforcer) EnableEnforce(enable bool)
- func (e *Enforcer) EnableLog(enable bool)
- func (e *Enforcer) Enforce(rvals ...interface{}) (bool, error)
- func (e *Enforcer) EnforceWithMatcher(matcher string, rvals ...interface{}) (bool, error)
- func (e *Enforcer) GetAdapter() persist.Adapter
- func (e *Enforcer) GetAllActions() []string
- func (e *Enforcer) GetAllNamedActions(ptype string) []string
- func (e *Enforcer) GetAllNamedObjects(ptype string) []string
- func (e *Enforcer) GetAllNamedRoles(ptype string) []string
- func (e *Enforcer) GetAllNamedSubjects(ptype string) []string
- func (e *Enforcer) GetAllObjects() []string
- func (e *Enforcer) GetAllRoles() []string
- func (e *Enforcer) GetAllSubjects() []string
- func (e *Enforcer) GetFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) [][]string
- func (e *Enforcer) GetFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
- func (e *Enforcer) GetFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
- func (e *Enforcer) GetFilteredPolicy(fieldIndex int, fieldValues ...string) [][]string
- func (e *Enforcer) GetGroupingPolicy() [][]string
- func (e *Enforcer) GetImplicitPermissionsForUser(user string, domain ...string) ([][]string, error)
- func (e *Enforcer) GetImplicitRolesForUser(name string, domain ...string) ([]string, error)
- func (e *Enforcer) GetImplicitUsersForPermission(permission ...string) ([]string, error)
- func (e *Enforcer) GetModel() model.Model
- func (e *Enforcer) GetNamedGroupingPolicy(ptype string) [][]string
- func (e *Enforcer) GetNamedPolicy(ptype string) [][]string
- func (e *Enforcer) GetPermissionsForUser(user string) [][]string
- func (e *Enforcer) GetPermissionsForUserInDomain(user string, domain string) [][]string
- func (e *Enforcer) GetPolicy() [][]string
- func (e *Enforcer) GetRoleManager() rbac.RoleManager
- func (e *Enforcer) GetRolesForUser(name string) ([]string, error)
- func (e *Enforcer) GetRolesForUserInDomain(name string, domain string) []string
- func (e *Enforcer) GetUsersForRole(name string) ([]string, error)
- func (e *Enforcer) GetUsersForRoleInDomain(name string, domain string) []string
- func (e *Enforcer) HasGroupingPolicy(params ...interface{}) bool
- func (e *Enforcer) HasNamedGroupingPolicy(ptype string, params ...interface{}) bool
- func (e *Enforcer) HasNamedPolicy(ptype string, params ...interface{}) bool
- func (e *Enforcer) HasPermissionForUser(user string, permission ...string) bool
- func (e *Enforcer) HasPolicy(params ...interface{}) bool
- func (e *Enforcer) HasRoleForUser(name string, role string) (bool, error)
- func (e *Enforcer) InitWithAdapter(modelPath string, adapter persist.Adapter) error
- func (e *Enforcer) InitWithFile(modelPath string, policyPath string) error
- func (e *Enforcer) InitWithModelAndAdapter(m model.Model, adapter persist.Adapter) error
- func (e *Enforcer) IsFiltered() bool
- func (e *Enforcer) LoadFilteredPolicy(filter interface{}) error
- func (e *Enforcer) LoadModel() error
- func (e *Enforcer) LoadPolicy() error
- func (e *Enforcer) RemoveFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) (bool, error)
- func (e *Enforcer) RemoveFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
- func (e *Enforcer) RemoveFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
- func (e *Enforcer) RemoveFilteredPolicy(fieldIndex int, fieldValues ...string) (bool, error)
- func (e *Enforcer) RemoveGroupingPolicy(params ...interface{}) (bool, error)
- func (e *Enforcer) RemoveNamedGroupingPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *Enforcer) RemoveNamedPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *Enforcer) RemovePolicy(params ...interface{}) (bool, error)
- func (e *Enforcer) SavePolicy() error
- func (e *Enforcer) SetAdapter(adapter persist.Adapter)
- func (e *Enforcer) SetEffector(eft effect.Effector)
- func (e *Enforcer) SetModel(m model.Model)
- func (e *Enforcer) SetRoleManager(rm rbac.RoleManager)
- func (e *Enforcer) SetWatcher(watcher persist.Watcher) error
- type IEnforcer
- type SyncedEnforcer
- func (e *SyncedEnforcer) AddFunction(name string, function govaluate.ExpressionFunction)
- func (e *SyncedEnforcer) AddGroupingPolicy(params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) AddNamedGroupingPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) AddNamedPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) AddPermissionForUser(user string, permission ...string) (bool, error)
- func (e *SyncedEnforcer) AddPolicy(params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) AddRoleForUser(user string, role string) (bool, error)
- func (e *SyncedEnforcer) AddRoleForUserInDomain(user string, role string, domain string) (bool, error)
- func (e *SyncedEnforcer) BuildRoleLinks() error
- func (e *SyncedEnforcer) ClearPolicy()
- func (e *SyncedEnforcer) DeletePermission(permission ...string) (bool, error)
- func (e *SyncedEnforcer) DeletePermissionForUser(user string, permission ...string) (bool, error)
- func (e *SyncedEnforcer) DeletePermissionsForUser(user string) (bool, error)
- func (e *SyncedEnforcer) DeleteRole(role string) (bool, error)
- func (e *SyncedEnforcer) DeleteRoleForUser(user string, role string) (bool, error)
- func (e *SyncedEnforcer) DeleteRoleForUserInDomain(user string, role string, domain string) (bool, error)
- func (e *SyncedEnforcer) DeleteRolesForUser(user string) (bool, error)
- func (e *SyncedEnforcer) DeleteUser(user string) (bool, error)
- func (e *SyncedEnforcer) Enforce(rvals ...interface{}) (bool, error)
- func (e *SyncedEnforcer) GetAllActions() []string
- func (e *SyncedEnforcer) GetAllNamedActions(ptype string) []string
- func (e *SyncedEnforcer) GetAllNamedObjects(ptype string) []string
- func (e *SyncedEnforcer) GetAllNamedRoles(ptype string) []string
- func (e *SyncedEnforcer) GetAllNamedSubjects(ptype string) []string
- func (e *SyncedEnforcer) GetAllObjects() []string
- func (e *SyncedEnforcer) GetAllRoles() []string
- func (e *SyncedEnforcer) GetAllSubjects() []string
- func (e *SyncedEnforcer) GetFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) [][]string
- func (e *SyncedEnforcer) GetFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
- func (e *SyncedEnforcer) GetFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
- func (e *SyncedEnforcer) GetFilteredPolicy(fieldIndex int, fieldValues ...string) [][]string
- func (e *SyncedEnforcer) GetGroupingPolicy() [][]string
- func (e *SyncedEnforcer) GetNamedGroupingPolicy(ptype string) [][]string
- func (e *SyncedEnforcer) GetNamedPolicy(ptype string) [][]string
- func (e *SyncedEnforcer) GetPermissionsForUser(user string) [][]string
- func (e *SyncedEnforcer) GetPermissionsForUserInDomain(user string, domain string) [][]string
- func (e *SyncedEnforcer) GetPolicy() [][]string
- func (e *SyncedEnforcer) GetRolesForUser(name string) ([]string, error)
- func (e *SyncedEnforcer) GetRolesForUserInDomain(name string, domain string) []string
- func (e *SyncedEnforcer) GetUsersForRole(name string) ([]string, error)
- func (e *SyncedEnforcer) GetUsersForRoleInDomain(name string, domain string) []string
- func (e *SyncedEnforcer) HasGroupingPolicy(params ...interface{}) bool
- func (e *SyncedEnforcer) HasNamedGroupingPolicy(ptype string, params ...interface{}) bool
- func (e *SyncedEnforcer) HasNamedPolicy(ptype string, params ...interface{}) bool
- func (e *SyncedEnforcer) HasPermissionForUser(user string, permission ...string) bool
- func (e *SyncedEnforcer) HasPolicy(params ...interface{}) bool
- func (e *SyncedEnforcer) HasRoleForUser(name string, role string) (bool, error)
- func (e *SyncedEnforcer) LoadPolicy() error
- func (e *SyncedEnforcer) RemoveFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) (bool, error)
- func (e *SyncedEnforcer) RemoveFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
- func (e *SyncedEnforcer) RemoveFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
- func (e *SyncedEnforcer) RemoveFilteredPolicy(fieldIndex int, fieldValues ...string) (bool, error)
- func (e *SyncedEnforcer) RemoveGroupingPolicy(params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) RemoveNamedGroupingPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) RemoveNamedPolicy(ptype string, params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) RemovePolicy(params ...interface{}) (bool, error)
- func (e *SyncedEnforcer) SavePolicy() error
- func (e *SyncedEnforcer) SetWatcher(watcher persist.Watcher) error
- func (e *SyncedEnforcer) StartAutoLoadPolicy(d time.Duration)
- func (e *SyncedEnforcer) StopAutoLoadPolicy()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CachedEnforcer ¶
type CachedEnforcer struct { *Enforcer // contains filtered or unexported fields }
CachedEnforcer wraps Enforcer and provides decision cache
func NewCachedEnforcer ¶
func NewCachedEnforcer(params ...interface{}) (*CachedEnforcer, error)
NewCachedEnforcer creates a cached enforcer via file or DB.
func (*CachedEnforcer) EnableCache ¶
func (e *CachedEnforcer) EnableCache(enableCache bool)
EnableCache determines whether to enable cache on Enforce(). When enableCache is enabled, cached result (true | false) will be returned for previous decisions.
func (*CachedEnforcer) Enforce ¶
func (e *CachedEnforcer) Enforce(rvals ...interface{}) (bool, error)
Enforce decides whether a "subject" can access a "object" with the operation "action", input parameters are usually: (sub, obj, act). if rvals is not string , ingore the cache
func (*CachedEnforcer) InvalidateCache ¶
func (e *CachedEnforcer) InvalidateCache()
InvalidateCache deletes all the existing cached decisions.
type Enforcer ¶
type Enforcer struct {
// contains filtered or unexported fields
}
Enforcer is the main interface for authorization enforcement and policy management.
func NewEnforcer ¶
NewEnforcer creates an enforcer via file or DB.
File:
e := casbin.NewEnforcer("path/to/basic_model.conf", "path/to/basic_policy.csv")
MySQL DB:
a := mysqladapter.NewDBAdapter("mysql", "mysql_username:mysql_password@tcp(127.0.0.1:3306)/") e := casbin.NewEnforcer("path/to/basic_model.conf", a)
func (*Enforcer) AddFunction ¶
func (e *Enforcer) AddFunction(name string, function govaluate.ExpressionFunction)
AddFunction adds a customized function.
func (*Enforcer) AddGroupingPolicy ¶
AddGroupingPolicy adds a role inheritance rule to the current policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*Enforcer) AddNamedGroupingPolicy ¶
AddNamedGroupingPolicy adds a named role inheritance rule to the current policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*Enforcer) AddNamedPolicy ¶
AddNamedPolicy adds an authorization rule to the current named policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*Enforcer) AddPermissionForUser ¶
AddPermissionForUser adds a permission for a user or role. Returns false if the user or role already has the permission (aka not affected).
func (*Enforcer) AddPolicy ¶
AddPolicy adds an authorization rule to the current policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*Enforcer) AddRoleForUser ¶
AddRoleForUser adds a role for a user. Returns false if the user already has the role (aka not affected).
func (*Enforcer) AddRoleForUserInDomain ¶
AddRoleForUserInDomain adds a role for a user inside a domain. Returns false if the user already has the role (aka not affected).
func (*Enforcer) BuildRoleLinks ¶
BuildRoleLinks manually rebuild the role inheritance relations.
func (*Enforcer) DeletePermission ¶
DeletePermission deletes a permission. Returns false if the permission does not exist (aka not affected).
func (*Enforcer) DeletePermissionForUser ¶
DeletePermissionForUser deletes a permission for a user or role. Returns false if the user or role does not have the permission (aka not affected).
func (*Enforcer) DeletePermissionsForUser ¶
DeletePermissionsForUser deletes permissions for a user or role. Returns false if the user or role does not have any permissions (aka not affected).
func (*Enforcer) DeleteRole ¶
DeleteRole deletes a role.
func (*Enforcer) DeleteRoleForUser ¶
DeleteRoleForUser deletes a role for a user. Returns false if the user does not have the role (aka not affected).
func (*Enforcer) DeleteRoleForUserInDomain ¶
DeleteRoleForUserInDomain deletes a role for a user inside a domain. Returns false if the user does not have the role (aka not affected).
func (*Enforcer) DeleteRolesForUser ¶
DeleteRolesForUser deletes all roles for a user. Returns false if the user does not have any roles (aka not affected).
func (*Enforcer) DeleteUser ¶
DeleteUser deletes a user. Returns false if the user does not exist (aka not affected).
func (*Enforcer) EnableAutoBuildRoleLinks ¶
EnableAutoBuildRoleLinks controls whether to rebuild the role inheritance relations when a role is added or deleted.
func (*Enforcer) EnableAutoSave ¶
EnableAutoSave controls whether to save a policy rule automatically to the adapter when it is added or removed.
func (*Enforcer) EnableEnforce ¶
EnableEnforce changes the enforcing state of Casbin, when Casbin is disabled, all access will be allowed by the Enforce() function.
func (*Enforcer) Enforce ¶
Enforce decides whether a "subject" can access a "object" with the operation "action", input parameters are usually: (sub, obj, act).
func (*Enforcer) EnforceWithMatcher ¶ added in v2.0.2
EnforceWithMatcher use a custom matcher to decides whether a "subject" can access a "object" with the operation "action", input parameters are usually: (matcher, sub, obj, act), use model matcher by default when matcher is "".
func (*Enforcer) GetAdapter ¶
GetAdapter gets the current adapter.
func (*Enforcer) GetAllActions ¶
GetAllActions gets the list of actions that show up in the current policy.
func (*Enforcer) GetAllNamedActions ¶
GetAllNamedActions gets the list of actions that show up in the current named policy.
func (*Enforcer) GetAllNamedObjects ¶
GetAllNamedObjects gets the list of objects that show up in the current named policy.
func (*Enforcer) GetAllNamedRoles ¶
GetAllNamedRoles gets the list of roles that show up in the current named policy.
func (*Enforcer) GetAllNamedSubjects ¶
GetAllNamedSubjects gets the list of subjects that show up in the current named policy.
func (*Enforcer) GetAllObjects ¶
GetAllObjects gets the list of objects that show up in the current policy.
func (*Enforcer) GetAllRoles ¶
GetAllRoles gets the list of roles that show up in the current policy.
func (*Enforcer) GetAllSubjects ¶
GetAllSubjects gets the list of subjects that show up in the current policy.
func (*Enforcer) GetFilteredGroupingPolicy ¶
GetFilteredGroupingPolicy gets all the role inheritance rules in the policy, field filters can be specified.
func (*Enforcer) GetFilteredNamedGroupingPolicy ¶
func (e *Enforcer) GetFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
GetFilteredNamedGroupingPolicy gets all the role inheritance rules in the policy, field filters can be specified.
func (*Enforcer) GetFilteredNamedPolicy ¶
func (e *Enforcer) GetFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
GetFilteredNamedPolicy gets all the authorization rules in the named policy, field filters can be specified.
func (*Enforcer) GetFilteredPolicy ¶
GetFilteredPolicy gets all the authorization rules in the policy, field filters can be specified.
func (*Enforcer) GetGroupingPolicy ¶
GetGroupingPolicy gets all the role inheritance rules in the policy.
func (*Enforcer) GetImplicitPermissionsForUser ¶
GetImplicitPermissionsForUser gets implicit permissions for a user or role. Compared to GetPermissionsForUser(), this function retrieves permissions for inherited roles. For example: p, admin, data1, read p, alice, data2, read g, alice, admin
GetPermissionsForUser("alice") can only get: [["alice", "data2", "read"]]. But GetImplicitPermissionsForUser("alice") will get: [["admin", "data1", "read"], ["alice", "data2", "read"]].
func (*Enforcer) GetImplicitRolesForUser ¶
GetImplicitRolesForUser gets implicit roles that a user has. Compared to GetRolesForUser(), this function retrieves indirect roles besides direct roles. For example: g, alice, role:admin g, role:admin, role:user
GetRolesForUser("alice") can only get: ["role:admin"]. But GetImplicitRolesForUser("alice") will get: ["role:admin", "role:user"].
func (*Enforcer) GetImplicitUsersForPermission ¶
GetImplicitUsersForPermission gets implicit users for a permission. For example: p, admin, data1, read p, bob, data1, read g, alice, admin
GetImplicitUsersForPermission("data1", "read") will get: ["alice", "bob"]. Note: only users will be returned, roles (2nd arg in "g") will be excluded.
func (*Enforcer) GetNamedGroupingPolicy ¶
GetNamedGroupingPolicy gets all the role inheritance rules in the policy.
func (*Enforcer) GetNamedPolicy ¶
GetNamedPolicy gets all the authorization rules in the named policy.
func (*Enforcer) GetPermissionsForUser ¶
GetPermissionsForUser gets permissions for a user or role.
func (*Enforcer) GetPermissionsForUserInDomain ¶
GetPermissionsForUserInDomain gets permissions for a user or role inside a domain.
func (*Enforcer) GetRoleManager ¶ added in v2.1.0
func (e *Enforcer) GetRoleManager() rbac.RoleManager
GetRoleManager gets the current role manager.
func (*Enforcer) GetRolesForUser ¶
GetRolesForUser gets the roles that a user has.
func (*Enforcer) GetRolesForUserInDomain ¶
GetRolesForUserInDomain gets the roles that a user has inside a domain.
func (*Enforcer) GetUsersForRole ¶
GetUsersForRole gets the users that has a role.
func (*Enforcer) GetUsersForRoleInDomain ¶
GetUsersForRoleInDomain gets the users that has a role inside a domain. Add by Gordon
func (*Enforcer) HasGroupingPolicy ¶
HasGroupingPolicy determines whether a role inheritance rule exists.
func (*Enforcer) HasNamedGroupingPolicy ¶
HasNamedGroupingPolicy determines whether a named role inheritance rule exists.
func (*Enforcer) HasNamedPolicy ¶
HasNamedPolicy determines whether a named authorization rule exists.
func (*Enforcer) HasPermissionForUser ¶
HasPermissionForUser determines whether a user has a permission.
func (*Enforcer) HasRoleForUser ¶
HasRoleForUser determines whether a user has a role.
func (*Enforcer) InitWithAdapter ¶
InitWithAdapter initializes an enforcer with a database adapter.
func (*Enforcer) InitWithFile ¶
InitWithFile initializes an enforcer with a model file and a policy file.
func (*Enforcer) InitWithModelAndAdapter ¶
InitWithModelAndAdapter initializes an enforcer with a model and a database adapter.
func (*Enforcer) IsFiltered ¶
IsFiltered returns true if the loaded policy has been filtered.
func (*Enforcer) LoadFilteredPolicy ¶
LoadFilteredPolicy reloads a filtered policy from file/database.
func (*Enforcer) LoadModel ¶
LoadModel reloads the model from the model CONF file. Because the policy is attached to a model, so the policy is invalidated and needs to be reloaded by calling LoadPolicy().
func (*Enforcer) LoadPolicy ¶
LoadPolicy reloads the policy from file/database.
func (*Enforcer) RemoveFilteredGroupingPolicy ¶
func (e *Enforcer) RemoveFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredGroupingPolicy removes a role inheritance rule from the current policy, field filters can be specified.
func (*Enforcer) RemoveFilteredNamedGroupingPolicy ¶
func (e *Enforcer) RemoveFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredNamedGroupingPolicy removes a role inheritance rule from the current named policy, field filters can be specified.
func (*Enforcer) RemoveFilteredNamedPolicy ¶
func (e *Enforcer) RemoveFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredNamedPolicy removes an authorization rule from the current named policy, field filters can be specified.
func (*Enforcer) RemoveFilteredPolicy ¶
RemoveFilteredPolicy removes an authorization rule from the current policy, field filters can be specified.
func (*Enforcer) RemoveGroupingPolicy ¶
RemoveGroupingPolicy removes a role inheritance rule from the current policy.
func (*Enforcer) RemoveNamedGroupingPolicy ¶
RemoveNamedGroupingPolicy removes a role inheritance rule from the current named policy.
func (*Enforcer) RemoveNamedPolicy ¶
RemoveNamedPolicy removes an authorization rule from the current named policy.
func (*Enforcer) RemovePolicy ¶
RemovePolicy removes an authorization rule from the current policy.
func (*Enforcer) SavePolicy ¶
SavePolicy saves the current policy (usually after changed with Casbin API) back to file/database.
func (*Enforcer) SetAdapter ¶
SetAdapter sets the current adapter.
func (*Enforcer) SetEffector ¶
SetEffector sets the current effector.
func (*Enforcer) SetRoleManager ¶
func (e *Enforcer) SetRoleManager(rm rbac.RoleManager)
SetRoleManager sets the current role manager.
type IEnforcer ¶ added in v2.1.1
type IEnforcer interface { /* Enforcer API */ InitWithFile(modelPath string, policyPath string) InitWithAdapter(modelPath string, adapter persist.Adapter) InitWithModelAndAdapter(m model.Model, adapter persist.Adapter) LoadModel() GetModel() model.Model SetModel(m model.Model) GetAdapter() persist.Adapter SetAdapter(adapter persist.Adapter) SetWatcher(watcher persist.Watcher) SetRoleManager(rm rbac.RoleManager) SetEffector(eft effect.Effector) ClearPolicy() LoadPolicy() error LoadFilteredPolicy(filter interface{}) error IsFiltered() bool SavePolicy() error EnableEnforce(enable bool) EnableLog(enable bool) EnableAutoSave(autoSave bool) EnableAutoBuildRoleLinks(autoBuildRoleLinks bool) BuildRoleLinks() Enforce(rvals ...interface{}) bool /* RBAC API */ GetRolesForUser(name string) ([]string, error) GetUsersForRole(name string) ([]string, error) HasRoleForUser(name string, role string) (bool, error) AddRoleForUser(user string, role string) bool AddPermissionForUser(user string, permission ...string) bool DeletePermissionForUser(user string, permission ...string) bool DeletePermissionsForUser(user string) bool GetPermissionsForUser(user string) [][]string HasPermissionForUser(user string, permission ...string) bool GetImplicitRolesForUser(name string, domain ...string) []string GetImplicitPermissionsForUser(user string, domain ...string) [][]string GetImplicitUsersForPermission(permission ...string) []string DeleteRoleForUser(user string, role string) bool DeleteRolesForUser(user string) bool DeleteUser(user string) bool DeleteRole(role string) DeletePermission(permission ...string) bool /* Management API */ GetAllSubjects() []string GetAllNamedSubjects(ptype string) []string GetAllObjects() []string GetAllNamedObjects(ptype string) []string GetAllActions() []string GetAllNamedActions(ptype string) []string GetAllRoles() []string GetAllNamedRoles(ptype string) []string GetPolicy() [][]string GetFilteredPolicy(fieldIndex int, fieldValues ...string) [][]string GetNamedPolicy(ptype string) [][]string GetFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string GetGroupingPolicy() [][]string GetFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) [][]string GetNamedGroupingPolicy(ptype string) [][]string GetFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string HasPolicy(params ...interface{}) bool HasNamedPolicy(ptype string, params ...interface{}) bool AddPolicy(params ...interface{}) bool AddNamedPolicy(ptype string, params ...interface{}) bool RemovePolicy(params ...interface{}) bool RemoveFilteredPolicy(fieldIndex int, fieldValues ...string) bool RemoveNamedPolicy(ptype string, params ...interface{}) bool RemoveFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) bool HasGroupingPolicy(params ...interface{}) bool HasNamedGroupingPolicy(ptype string, params ...interface{}) bool AddGroupingPolicy(params ...interface{}) bool AddNamedGroupingPolicy(ptype string, params ...interface{}) bool RemoveGroupingPolicy(params ...interface{}) bool RemoveFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) bool RemoveNamedGroupingPolicy(ptype string, params ...interface{}) bool RemoveFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) bool AddFunction(name string, function func(args ...interface{}) (interface{}, error)) }
type SyncedEnforcer ¶
type SyncedEnforcer struct { *Enforcer // contains filtered or unexported fields }
SyncedEnforcer wraps Enforcer and provides synchronized access
func NewSyncedEnforcer ¶
func NewSyncedEnforcer(params ...interface{}) (*SyncedEnforcer, error)
NewSyncedEnforcer creates a synchronized enforcer via file or DB.
func (*SyncedEnforcer) AddFunction ¶ added in v2.0.2
func (e *SyncedEnforcer) AddFunction(name string, function govaluate.ExpressionFunction)
AddFunction adds a customized function.
func (*SyncedEnforcer) AddGroupingPolicy ¶
func (e *SyncedEnforcer) AddGroupingPolicy(params ...interface{}) (bool, error)
AddGroupingPolicy adds a role inheritance rule to the current policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*SyncedEnforcer) AddNamedGroupingPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) AddNamedGroupingPolicy(ptype string, params ...interface{}) (bool, error)
AddNamedGroupingPolicy adds a named role inheritance rule to the current policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*SyncedEnforcer) AddNamedPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) AddNamedPolicy(ptype string, params ...interface{}) (bool, error)
AddNamedPolicy adds an authorization rule to the current named policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*SyncedEnforcer) AddPermissionForUser ¶
func (e *SyncedEnforcer) AddPermissionForUser(user string, permission ...string) (bool, error)
AddPermissionForUser adds a permission for a user or role. Returns false if the user or role already has the permission (aka not affected).
func (*SyncedEnforcer) AddPolicy ¶
func (e *SyncedEnforcer) AddPolicy(params ...interface{}) (bool, error)
AddPolicy adds an authorization rule to the current policy. If the rule already exists, the function returns false and the rule will not be added. Otherwise the function returns true by adding the new rule.
func (*SyncedEnforcer) AddRoleForUser ¶
func (e *SyncedEnforcer) AddRoleForUser(user string, role string) (bool, error)
AddRoleForUser adds a role for a user. Returns false if the user already has the role (aka not affected).
func (*SyncedEnforcer) AddRoleForUserInDomain ¶
func (e *SyncedEnforcer) AddRoleForUserInDomain(user string, role string, domain string) (bool, error)
AddRoleForUserInDomain adds a role for a user inside a domain. Returns false if the user already has the role (aka not affected).
func (*SyncedEnforcer) BuildRoleLinks ¶
func (e *SyncedEnforcer) BuildRoleLinks() error
BuildRoleLinks manually rebuild the role inheritance relations.
func (*SyncedEnforcer) ClearPolicy ¶
func (e *SyncedEnforcer) ClearPolicy()
ClearPolicy clears all policy.
func (*SyncedEnforcer) DeletePermission ¶
func (e *SyncedEnforcer) DeletePermission(permission ...string) (bool, error)
DeletePermission deletes a permission. Returns false if the permission does not exist (aka not affected).
func (*SyncedEnforcer) DeletePermissionForUser ¶
func (e *SyncedEnforcer) DeletePermissionForUser(user string, permission ...string) (bool, error)
DeletePermissionForUser deletes a permission for a user or role. Returns false if the user or role does not have the permission (aka not affected).
func (*SyncedEnforcer) DeletePermissionsForUser ¶
func (e *SyncedEnforcer) DeletePermissionsForUser(user string) (bool, error)
DeletePermissionsForUser deletes permissions for a user or role. Returns false if the user or role does not have any permissions (aka not affected).
func (*SyncedEnforcer) DeleteRole ¶
func (e *SyncedEnforcer) DeleteRole(role string) (bool, error)
DeleteRole deletes a role. Returns false if the role does not exist (aka not affected).
func (*SyncedEnforcer) DeleteRoleForUser ¶
func (e *SyncedEnforcer) DeleteRoleForUser(user string, role string) (bool, error)
DeleteRoleForUser deletes a role for a user. Returns false if the user does not have the role (aka not affected).
func (*SyncedEnforcer) DeleteRoleForUserInDomain ¶
func (e *SyncedEnforcer) DeleteRoleForUserInDomain(user string, role string, domain string) (bool, error)
DeleteRoleForUserInDomain deletes a role for a user inside a domain. Returns false if the user does not have the role (aka not affected).
func (*SyncedEnforcer) DeleteRolesForUser ¶
func (e *SyncedEnforcer) DeleteRolesForUser(user string) (bool, error)
DeleteRolesForUser deletes all roles for a user. Returns false if the user does not have any roles (aka not affected).
func (*SyncedEnforcer) DeleteUser ¶
func (e *SyncedEnforcer) DeleteUser(user string) (bool, error)
DeleteUser deletes a user. Returns false if the user does not exist (aka not affected).
func (*SyncedEnforcer) Enforce ¶
func (e *SyncedEnforcer) Enforce(rvals ...interface{}) (bool, error)
Enforce decides whether a "subject" can access a "object" with the operation "action", input parameters are usually: (sub, obj, act).
func (*SyncedEnforcer) GetAllActions ¶
func (e *SyncedEnforcer) GetAllActions() []string
GetAllActions gets the list of actions that show up in the current policy.
func (*SyncedEnforcer) GetAllNamedActions ¶ added in v2.0.2
func (e *SyncedEnforcer) GetAllNamedActions(ptype string) []string
GetAllNamedActions gets the list of actions that show up in the current named policy.
func (*SyncedEnforcer) GetAllNamedObjects ¶ added in v2.0.2
func (e *SyncedEnforcer) GetAllNamedObjects(ptype string) []string
GetAllNamedObjects gets the list of objects that show up in the current named policy.
func (*SyncedEnforcer) GetAllNamedRoles ¶ added in v2.0.2
func (e *SyncedEnforcer) GetAllNamedRoles(ptype string) []string
GetAllNamedRoles gets the list of roles that show up in the current named policy.
func (*SyncedEnforcer) GetAllNamedSubjects ¶ added in v2.0.2
func (e *SyncedEnforcer) GetAllNamedSubjects(ptype string) []string
GetAllNamedSubjects gets the list of subjects that show up in the current named policy.
func (*SyncedEnforcer) GetAllObjects ¶
func (e *SyncedEnforcer) GetAllObjects() []string
GetAllObjects gets the list of objects that show up in the current policy.
func (*SyncedEnforcer) GetAllRoles ¶
func (e *SyncedEnforcer) GetAllRoles() []string
GetAllRoles gets the list of roles that show up in the current policy.
func (*SyncedEnforcer) GetAllSubjects ¶
func (e *SyncedEnforcer) GetAllSubjects() []string
GetAllSubjects gets the list of subjects that show up in the current policy.
func (*SyncedEnforcer) GetFilteredGroupingPolicy ¶
func (e *SyncedEnforcer) GetFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) [][]string
GetFilteredGroupingPolicy gets all the role inheritance rules in the policy, field filters can be specified.
func (*SyncedEnforcer) GetFilteredNamedGroupingPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) GetFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
GetFilteredNamedGroupingPolicy gets all the role inheritance rules in the policy, field filters can be specified.
func (*SyncedEnforcer) GetFilteredNamedPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) GetFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) [][]string
GetFilteredNamedPolicy gets all the authorization rules in the named policy, field filters can be specified.
func (*SyncedEnforcer) GetFilteredPolicy ¶
func (e *SyncedEnforcer) GetFilteredPolicy(fieldIndex int, fieldValues ...string) [][]string
GetFilteredPolicy gets all the authorization rules in the policy, field filters can be specified.
func (*SyncedEnforcer) GetGroupingPolicy ¶
func (e *SyncedEnforcer) GetGroupingPolicy() [][]string
GetGroupingPolicy gets all the role inheritance rules in the policy.
func (*SyncedEnforcer) GetNamedGroupingPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) GetNamedGroupingPolicy(ptype string) [][]string
GetNamedGroupingPolicy gets all the role inheritance rules in the policy.
func (*SyncedEnforcer) GetNamedPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) GetNamedPolicy(ptype string) [][]string
GetNamedPolicy gets all the authorization rules in the named policy.
func (*SyncedEnforcer) GetPermissionsForUser ¶
func (e *SyncedEnforcer) GetPermissionsForUser(user string) [][]string
GetPermissionsForUser gets permissions for a user or role.
func (*SyncedEnforcer) GetPermissionsForUserInDomain ¶
func (e *SyncedEnforcer) GetPermissionsForUserInDomain(user string, domain string) [][]string
GetPermissionsForUserInDomain gets permissions for a user or role inside a domain.
func (*SyncedEnforcer) GetPolicy ¶
func (e *SyncedEnforcer) GetPolicy() [][]string
GetPolicy gets all the authorization rules in the policy.
func (*SyncedEnforcer) GetRolesForUser ¶
func (e *SyncedEnforcer) GetRolesForUser(name string) ([]string, error)
GetRolesForUser gets the roles that a user has.
func (*SyncedEnforcer) GetRolesForUserInDomain ¶
func (e *SyncedEnforcer) GetRolesForUserInDomain(name string, domain string) []string
GetRolesForUserInDomain gets the roles that a user has inside a domain.
func (*SyncedEnforcer) GetUsersForRole ¶
func (e *SyncedEnforcer) GetUsersForRole(name string) ([]string, error)
GetUsersForRole gets the users that has a role.
func (*SyncedEnforcer) GetUsersForRoleInDomain ¶
func (e *SyncedEnforcer) GetUsersForRoleInDomain(name string, domain string) []string
GetUsersForRoleInDomain gets the users that has a role inside a domain. Add by Gordon
func (*SyncedEnforcer) HasGroupingPolicy ¶
func (e *SyncedEnforcer) HasGroupingPolicy(params ...interface{}) bool
HasGroupingPolicy determines whether a role inheritance rule exists.
func (*SyncedEnforcer) HasNamedGroupingPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) HasNamedGroupingPolicy(ptype string, params ...interface{}) bool
HasNamedGroupingPolicy determines whether a named role inheritance rule exists.
func (*SyncedEnforcer) HasNamedPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) HasNamedPolicy(ptype string, params ...interface{}) bool
HasNamedPolicy determines whether a named authorization rule exists.
func (*SyncedEnforcer) HasPermissionForUser ¶
func (e *SyncedEnforcer) HasPermissionForUser(user string, permission ...string) bool
HasPermissionForUser determines whether a user has a permission.
func (*SyncedEnforcer) HasPolicy ¶
func (e *SyncedEnforcer) HasPolicy(params ...interface{}) bool
HasPolicy determines whether an authorization rule exists.
func (*SyncedEnforcer) HasRoleForUser ¶
func (e *SyncedEnforcer) HasRoleForUser(name string, role string) (bool, error)
HasRoleForUser determines whether a user has a role.
func (*SyncedEnforcer) LoadPolicy ¶
func (e *SyncedEnforcer) LoadPolicy() error
LoadPolicy reloads the policy from file/database.
func (*SyncedEnforcer) RemoveFilteredGroupingPolicy ¶
func (e *SyncedEnforcer) RemoveFilteredGroupingPolicy(fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredGroupingPolicy removes a role inheritance rule from the current policy, field filters can be specified.
func (*SyncedEnforcer) RemoveFilteredNamedGroupingPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) RemoveFilteredNamedGroupingPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredNamedGroupingPolicy removes a role inheritance rule from the current named policy, field filters can be specified.
func (*SyncedEnforcer) RemoveFilteredNamedPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) RemoveFilteredNamedPolicy(ptype string, fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredNamedPolicy removes an authorization rule from the current named policy, field filters can be specified.
func (*SyncedEnforcer) RemoveFilteredPolicy ¶
func (e *SyncedEnforcer) RemoveFilteredPolicy(fieldIndex int, fieldValues ...string) (bool, error)
RemoveFilteredPolicy removes an authorization rule from the current policy, field filters can be specified.
func (*SyncedEnforcer) RemoveGroupingPolicy ¶
func (e *SyncedEnforcer) RemoveGroupingPolicy(params ...interface{}) (bool, error)
RemoveGroupingPolicy removes a role inheritance rule from the current policy.
func (*SyncedEnforcer) RemoveNamedGroupingPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) RemoveNamedGroupingPolicy(ptype string, params ...interface{}) (bool, error)
RemoveNamedGroupingPolicy removes a role inheritance rule from the current named policy.
func (*SyncedEnforcer) RemoveNamedPolicy ¶ added in v2.0.2
func (e *SyncedEnforcer) RemoveNamedPolicy(ptype string, params ...interface{}) (bool, error)
RemoveNamedPolicy removes an authorization rule from the current named policy.
func (*SyncedEnforcer) RemovePolicy ¶
func (e *SyncedEnforcer) RemovePolicy(params ...interface{}) (bool, error)
RemovePolicy removes an authorization rule from the current policy.
func (*SyncedEnforcer) SavePolicy ¶
func (e *SyncedEnforcer) SavePolicy() error
SavePolicy saves the current policy (usually after changed with Casbin API) back to file/database.
func (*SyncedEnforcer) SetWatcher ¶
func (e *SyncedEnforcer) SetWatcher(watcher persist.Watcher) error
SetWatcher sets the current watcher.
func (*SyncedEnforcer) StartAutoLoadPolicy ¶
func (e *SyncedEnforcer) StartAutoLoadPolicy(d time.Duration)
StartAutoLoadPolicy starts a go routine that will every specified duration call LoadPolicy
func (*SyncedEnforcer) StopAutoLoadPolicy ¶
func (e *SyncedEnforcer) StopAutoLoadPolicy()
StopAutoLoadPolicy causes the go routine to exit.