Documentation
¶
Index ¶
- Variables
- type AuthnService
- type Filter
- type GroupService
- type PolicyService
- type Project
- type RelationService
- type Repository
- type RoleService
- type Service
- func (s Service) Create(ctx context.Context, prj Project) (Project, error)
- func (s Service) DeleteModel(ctx context.Context, id string) error
- func (s Service) Disable(ctx context.Context, id string) error
- func (s Service) Enable(ctx context.Context, id string) error
- func (s Service) Get(ctx context.Context, idOrName string) (Project, error)
- func (s Service) List(ctx context.Context, f Filter) ([]Project, error)
- func (s Service) ListByUser(ctx context.Context, principal authenticate.Principal, flt Filter) ([]Project, error)
- func (s Service) ListGroups(ctx context.Context, id string) ([]group.Group, error)
- func (s Service) ListServiceUsers(ctx context.Context, id string, permissionFilter string) ([]serviceuser.ServiceUser, error)
- func (s Service) ListUsers(ctx context.Context, id string, permissionFilter string) ([]user.User, error)
- func (s Service) RemoveMember(ctx context.Context, projectID, principalID, principalType string) error
- func (s Service) SetMemberRole(ctx context.Context, projectID, principalID, principalType, newRoleID string) error
- func (s Service) Update(ctx context.Context, prj Project) (Project, error)
- type ServiceuserService
- type State
- type UserService
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotExist = errors.New("project or its relations doesn't exist") ErrInvalidUUID = errors.New("invalid syntax of uuid") ErrInvalidID = errors.New("project id is invalid") ErrConflict = errors.New("project already exist") ErrInvalidDetail = errors.New("invalid project detail") ErrInvalidProjectRole = errors.New("role is not valid for project scope") ErrNotOrgMember = errors.New("user is not a member of the organization") ErrInvalidPrincipalType = errors.New("invalid principal type") ErrNotMember = errors.New("principal is not a member of the project") )
View Source
var AdminPermission = schema.DeletePermission
View Source
var MemberPermission = schema.GetPermission
View Source
var OwnerRole = schema.RoleProjectOwner
Functions ¶
This section is empty.
Types ¶
type AuthnService ¶ added in v0.7.4
type AuthnService interface {
GetPrincipal(ctx context.Context, via ...authenticate.ClientAssertion) (authenticate.Principal, error)
}
type Filter ¶
type Filter struct {
OrgID string
WithMemberCount bool
ProjectIDs []string
State State
// NonInherited filters out projects that are inherited from access given through an organization
NonInherited bool
Pagination *pagination.Pagination
}
type GroupService ¶ added in v0.7.6
type PolicyService ¶ added in v0.7.4
type PolicyService interface {
Create(ctx context.Context, policy policy.Policy) (policy.Policy, error)
List(ctx context.Context, flt policy.Filter) ([]policy.Policy, error)
Delete(ctx context.Context, id string) error
ProjectMemberCount(ctx context.Context, ids []string) ([]policy.MemberCount, error)
}
type RelationService ¶
type RelationService interface {
Create(ctx context.Context, rel relation.Relation) (relation.Relation, error)
LookupSubjects(ctx context.Context, rel relation.Relation) ([]string, error)
LookupResources(ctx context.Context, rel relation.Relation) ([]string, error)
Delete(ctx context.Context, rel relation.Relation) error
}
type Repository ¶
type Repository interface {
GetByID(ctx context.Context, id string) (Project, error)
GetByName(ctx context.Context, slug string) (Project, error)
Create(ctx context.Context, org Project) (Project, error)
List(ctx context.Context, f Filter) ([]Project, error)
UpdateByID(ctx context.Context, toUpdate Project) (Project, error)
UpdateByName(ctx context.Context, toUpdate Project) (Project, error)
Delete(ctx context.Context, id string) error
SetState(ctx context.Context, id string, state State) error
}
type RoleService ¶ added in v0.96.0
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(repository Repository, relationService RelationService, userService UserService, policyService PolicyService, authnService AuthnService, suserService ServiceuserService, groupService GroupService, roleService RoleService) *Service
func (Service) DeleteModel ¶
DeleteModel doesn't delete the nested resource, only itself
func (Service) ListByUser ¶
func (Service) ListGroups ¶ added in v0.7.6
func (Service) ListServiceUsers ¶ added in v0.7.5
func (s Service) ListServiceUsers(ctx context.Context, id string, permissionFilter string) ([]serviceuser.ServiceUser, error)
func (Service) RemoveMember ¶ added in v0.96.0
func (s Service) RemoveMember(ctx context.Context, projectID, principalID, principalType string) error
RemoveMember removes a principal from a project by deleting all their project-level policies. Supported principal types: user, service user, group.
func (Service) SetMemberRole ¶ added in v0.96.0
func (s Service) SetMemberRole(ctx context.Context, projectID, principalID, principalType, newRoleID string) error
SetMemberRole sets a principal's role in a project. It deletes any existing project-level policies for the principal and creates a new one. Supported principal types: user, service user, group.
type ServiceuserService ¶ added in v0.7.5
type ServiceuserService interface {
Get(ctx context.Context, id string) (serviceuser.ServiceUser, error)
GetByIDs(ctx context.Context, ids []string) ([]serviceuser.ServiceUser, error)
FilterSudos(ctx context.Context, ids []string) ([]string, error)
}
Click to show internal directories.
Click to hide internal directories.