Documentation
¶
Index ¶
- Constants
- Variables
- func AddCustomFunctions(enforcer addableEnforcer)
- func AddRoleForUser(user string, role ...string) error
- func Check(ctx context.Context, subject, object, action string) bool
- func CheckContext(ctx context.Context, object, action string) bool
- func DeleteAllRolesForUser(user string) error
- func DeleteRole(role string) (bool, error)
- func DeleteRoleForUser(user string, role string) error
- func Enforcer() *casbin.SyncedCachedEnforcer
- func GetActionFromHttpMethod(method string) string
- func GetObjectByTable(resource string) string
- func HasImplicitGrants(subject string) bool
- func HasPermission(ctx context.Context, subject string, attr *models.ABACAttribute, action string) bool
- func Init(ctx context.Context, superUserIDs []string, adapters ...Adapter) error
- func LimitToScopes(ctx context.Context, scopeIDs []string) context.Context
- func MembershipRefs(attrs ...*models.ABACAttribute) []membership.Ref
- func PermsForUser(user string) ([]policy.Permission, error)
- func ReloadPolicy() error
- func RolesForUser(user string) ([]string, error)
- func RuleCondition(resourceScopes, targetScopes []string) (string, error)
- func ScopeCondition(resourceType, scopeID string) (string, error)
- func ScopeLimits(ctx context.Context) [][]string
- func ScopeRef(scopeID string) string
- func Stop()
- type Adapter
- type NamespacedNameIDSelector
- type Selectors
- type SubjectAccessReviewRequest
- type SubjectAccessReviewResource
- type SubjectAccessReviewResult
- type SubjectAccessSearchRequest
- type SubjectAccessSearchResponse
- type SubjectAccessSearchResult
- type ViewRef
Constants ¶
const MaxSubjectAccessReviewSubjects = 500
Variables ¶
var ActionContract func(action string) (resources, targets []string, ok bool)
ActionContract returns the resource types an action accepts as its primary resource and as a target. ok is false for an action without a contract. Mission Control sets it; without it, no request fits.
var DefaultModel string
Functions ¶
func AddCustomFunctions ¶ added in v1.0.840
func AddCustomFunctions(enforcer addableEnforcer)
func AddRoleForUser ¶
func CheckContext ¶ added in v1.0.841
func DeleteAllRolesForUser ¶
func DeleteRole ¶
func DeleteRoleForUser ¶
func Enforcer ¶
func Enforcer() *casbin.SyncedCachedEnforcer
func GetActionFromHttpMethod ¶
func GetObjectByTable ¶
func HasImplicitGrants ¶ added in v1.0.1387
HasImplicitGrants reports whether the subject is granted the "everyone" role and, in CheckContext, the viewer role on top of what it was explicitly granted.
Role bindings and federated identities have no implicit grants. A binding must not join "everyone", or every member of the binding would inherit "everyone" through it.
func HasPermission ¶ added in v1.0.841
func LimitToScopes ¶ added in v1.0.1392
LimitToScopes returns a context whose resource checks (HasPermission) allow only resources in at least one of the Scopes, on top of what the subject's rules allow. It's the check side of rls.Grants.Limit, which limits listings. Limits add up: a context limited twice allows only resources in a Scope of each. A limit naming no Scope allows no resource.
func MembershipRefs ¶ added in v1.0.1390
func MembershipRefs(attrs ...*models.ABACAttribute) []membership.Ref
MembershipRefs returns the resources of a request whose Scope membership is stored, for reading an operation's snapshot (membership.ForOperation).
func PermsForUser ¶
func PermsForUser(user string) ([]policy.Permission, error)
func ReloadPolicy ¶
func ReloadPolicy() error
func RolesForUser ¶
func RuleCondition ¶ added in v1.0.1387
RuleCondition returns the Casbin condition of a Role rule, over the request's Membership.
It holds when the request fits the action, its primary resource is in every one of resourceScopes, and its target is in every one of targetScopes, or there's no target when targetScopes is empty.
func ScopeCondition ¶ added in v1.0.1390
ScopeCondition returns the Casbin condition of a Permission that names a Scope, for the Scope's resources of one type: the request has a resource of the type, and it's in the Scope.
func ScopeLimits ¶ added in v1.0.1392
ScopeLimits returns the limits of the context, oldest first. Nil when it isn't limited.
Types ¶
type NamespacedNameIDSelector ¶ added in v1.0.1074
type Selectors ¶ added in v1.0.840
type Selectors struct {
Playbooks []types.ResourceSelector `json:"playbooks,omitempty"`
Connections []types.ResourceSelector `json:"connections,omitempty"`
Configs []types.ResourceSelector `json:"configs,omitempty"`
Components []types.ResourceSelector `json:"components,omitempty"`
Views []ViewRef `json:"views,omitempty"`
}
Selectors represents the object_selector from a permission and specifies resource selectors for multiple resource types used in ABAC authorization.
For authorization to succeed, all specified resource type selectors must match the corresponding resources in the ABACAttribute. If a selector is specified for a resource type but the attribute lacks that resource, authorization fails. If an attribute provides a resource but no selector exists for that type, the permission is considered non-restrictive for that resource (authorized).
type SubjectAccessReviewRequest ¶ added in v1.0.1305
type SubjectAccessReviewRequest struct {
Resource SubjectAccessReviewResource `json:"resource"`
Action string `json:"action"`
// Supports ["*"], in which case we iterate over all permission subjects in the database.
Subjects []string `json:"subjects"`
}
type SubjectAccessReviewResource ¶ added in v1.0.1305
type SubjectAccessReviewResult ¶ added in v1.0.1305
type SubjectAccessReviewResult struct {
Subject string `json:"subject"`
Allowed bool `json:"allowed"`
Error string `json:"error,omitempty"`
}
func RunSubjectAccessReview ¶ added in v1.0.1305
func RunSubjectAccessReview(ctx context.Context, req SubjectAccessReviewRequest) ([]SubjectAccessReviewResult, error)
RunSubjectAccessReview checks what each subject may do on the resource, by the subject's own access alone: the requester's Scope limits (LimitToScopes) don't apply to it.
type SubjectAccessSearchRequest ¶ added in v1.0.1305
type SubjectAccessSearchRequest struct {
Subject string `json:"subject"`
Action string `json:"action"`
ResourceTypes []string `json:"resource_types,omitempty"`
}
func (*SubjectAccessSearchRequest) Validate ¶ added in v1.0.1305
func (req *SubjectAccessSearchRequest) Validate() error
type SubjectAccessSearchResponse ¶ added in v1.0.1305
type SubjectAccessSearchResponse struct {
Subject string `json:"subject"`
Action string `json:"action"`
ResourceTypes []string `json:"resource_types"`
Total int `json:"total"`
Results []SubjectAccessSearchResult `json:"results"`
}
func RunSubjectAccessSearch ¶ added in v1.0.1305
func RunSubjectAccessSearch(ctx context.Context, req SubjectAccessSearchRequest) (SubjectAccessSearchResponse, error)
type SubjectAccessSearchResult ¶ added in v1.0.1305
type ViewRef ¶ added in v1.0.1074
type ViewRef NamespacedNameIDSelector
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package membership stores which Scopes each resource belongs to.
|
Package membership stores which Scopes each resource belongs to. |