Documentation ¶
Index ¶
- Constants
- Variables
- type ActivityService
- type AuthzRepository
- type LogData
- type Object
- type Permission
- type Relation
- type RelationType
- type RelationV2
- type Repository
- type Service
- func (s Service) BulkCheckPermission(ctx context.Context, rels []Relation, acts []action.Action) ([]Permission, error)
- func (s Service) CheckIsPublic(ctx context.Context, resourceNS namespace.Namespace, resourceIdxa string, ...) (bool, error)
- func (s Service) CheckPermission(ctx context.Context, usr user.User, resourceNS namespace.Namespace, ...) (bool, error)
- func (s Service) Create(ctx context.Context, rel RelationV2) (RelationV2, error)
- func (s Service) Delete(ctx context.Context, rel Relation) error
- func (s Service) DeleteSubjectRelations(ctx context.Context, resourceType, optionalResourceID string) error
- func (s Service) DeleteV2(ctx context.Context, rel RelationV2) error
- func (s Service) Get(ctx context.Context, id string) (RelationV2, error)
- func (s Service) GetRelationByFields(ctx context.Context, rel RelationV2) (RelationV2, error)
- func (s Service) List(ctx context.Context) ([]RelationV2, error)
- func (s Service) LookupResources(ctx context.Context, resourceType, permission, subjectType, subjectID string) ([]string, error)
- func (s Service) Update(ctx context.Context, toUpdate Relation) (Relation, error)
- type Subject
- type SubjectLogData
- type UserService
Constants ¶
View Source
const ( AuditEntity = "relation" AuditEntitySubject = "relation_subject" )
Variables ¶
View Source
var ( ErrNotExist = errors.New("relation doesn't exist") ErrInvalidUUID = errors.New("invalid syntax of uuid") ErrInvalidID = errors.New("relation id is invalid") ErrConflict = errors.New("relation already exist") ErrInvalidDetail = errors.New("invalid relation detail") ErrCreatingRelationInStore = errors.New("error while creating relation") ErrCreatingRelationInAuthzEngine = errors.New("error while creating relation in authz engine") ErrFetchingUser = errors.New("error while fetching user") ErrFetchingGroup = errors.New("error while fetching group") ErrLogActivity = errors.New("error while logging activity") )
View Source
var RelationTypes = struct { Role RelationType Namespace RelationType }{ Role: "role", Namespace: "namespace", }
Functions ¶
This section is empty.
Types ¶
type ActivityService ¶ added in v0.6.15
type AuthzRepository ¶
type AuthzRepository interface { Add(ctx context.Context, rel Relation) error Check(ctx context.Context, rel Relation, act action.Action) (bool, error) BulkCheck(ctx context.Context, rels []Relation, acts []action.Action) ([]Permission, error) DeleteV2(ctx context.Context, rel RelationV2) error DeleteSubjectRelations(ctx context.Context, resourceType, optionalResourceID string) error AddV2(ctx context.Context, rel RelationV2) error LookupResources(ctx context.Context, resourceType, permission, subjectType, subjectID string) ([]string, error) CheckIsPublic(ctx context.Context, rel Relation, act action.Action) (bool, error) }
type LogData ¶ added in v0.6.25
type LogData struct { Entity string `mapstructure:"entity"` ID string `mapstructure:"id"` ObjectID string `mapstructure:"object_id"` ObjectNamespace string `mapstructure:"object_namespace"` SubjectID string `mapstructure:"subject_id"` SubjectNamespace string `mapstructure:"subject_namespace"` RoleID string `mapstructure:"role"` }
type Permission ¶ added in v0.6.30
type Relation ¶
type Relation struct { ID string SubjectNamespace namespace.Namespace SubjectNamespaceID string `json:"subject_namespace_id"` SubjectID string `json:"subject_id"` SubjectRoleID string `json:"subject_role_id"` ObjectNamespace namespace.Namespace ObjectNamespaceID string `json:"object_namespace_id"` ObjectID string `json:"object_id"` Role role.Role RoleID string `json:"role_id"` RelationType RelationType `json:"role_type"` CreatedAt time.Time UpdatedAt time.Time }
type RelationType ¶
type RelationType string
type RelationV2 ¶
type RelationV2 struct { ID string Object Object Subject Subject CreatedAt time.Time UpdatedAt time.Time }
func (RelationV2) ToLogData ¶ added in v0.6.25
func (relation RelationV2) ToLogData() LogData
type Repository ¶
type Repository interface { Get(ctx context.Context, id string) (RelationV2, error) Create(ctx context.Context, relation RelationV2) (RelationV2, error) List(ctx context.Context) ([]RelationV2, error) Update(ctx context.Context, toUpdate Relation) (Relation, error) DeleteByID(ctx context.Context, id string) error GetByFields(ctx context.Context, rel RelationV2) (RelationV2, error) }
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(logger log.Logger, repository Repository, authzRepository AuthzRepository, userService UserService, activityService ActivityService) *Service
func (Service) BulkCheckPermission ¶ added in v0.6.30
func (Service) CheckIsPublic ¶ added in v0.6.31
func (Service) CheckPermission ¶
func (Service) Create ¶
func (s Service) Create(ctx context.Context, rel RelationV2) (RelationV2, error)
func (Service) DeleteSubjectRelations ¶
func (Service) GetRelationByFields ¶
func (s Service) GetRelationByFields(ctx context.Context, rel RelationV2) (RelationV2, error)
func (Service) LookupResources ¶ added in v0.6.22
type SubjectLogData ¶ added in v0.6.25
type SubjectLogData struct { Entity string `mapstructure:"entity"` ResourceType string `mapstructure:"resource_type"` OptionalResourceID string `mapstructure:"optional_resource_id"` }
func ToSubjectLogData ¶ added in v0.6.25
func ToSubjectLogData(resourceType, optionalResourceID string) SubjectLogData
Click to show internal directories.
Click to hide internal directories.