Documentation ¶
Index ¶
- Variables
- type AuthzRepository
- type Object
- type Relation
- type RelationType
- type RelationV2
- type Repository
- type RoleService
- 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") )
View Source
var RelationTypes = struct { Role RelationType Namespace RelationType }{ Role: "role", Namespace: "namespace", }
Functions ¶
This section is empty.
Types ¶
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 RelationType ¶
type RelationType string
type RelationV2 ¶
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 RoleService ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(repository Repository, authzRepository AuthzRepository, roleService RoleService, userService UserService) *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.