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.