Documentation ¶
Index ¶
- Variables
- type ActivityService
- type AuthzRepository
- type Object
- type Relation
- type RelationLogData
- type RelationSubjectLogData
- 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 UserService
Constants ¶
This section is empty.
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 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 RelationLogData ¶ added in v0.6.15
type RelationLogData 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 RelationSubjectLogData ¶ added in v0.6.15
type RelationSubjectLogData struct { Entity string `mapstructure:"entity"` ResourceType string `mapstructure:"resource_type"` OptionalResourceID string `mapstructure:"optional_resource_id"` }
func ToRelationSubjectLogData ¶ added in v0.6.15
func ToRelationSubjectLogData(resourceType, optionalResourceID string) RelationSubjectLogData
type RelationType ¶
type RelationType string
type RelationV2 ¶
type RelationV2 struct { ID string Object Object Subject Subject CreatedAt time.Time UpdatedAt time.Time }
func (RelationV2) ToRelationLogData ¶ added in v0.6.15
func (relation RelationV2) ToRelationLogData() RelationLogData
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
Click to show internal directories.
Click to hide internal directories.