Documentation
¶
Index ¶
- Constants
- Variables
- type ActivityService
- type AuthzRepository
- type LogData
- type Object
- type Relation
- type RelationType
- type RelationV2
- type Repository
- type Service
- 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)
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)
}
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 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) 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.