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) 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 }
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)
Click to show internal directories.
Click to hide internal directories.