group

package
v0.6.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotExist              = errors.New("group doesn't exist")
	ErrInvalidUUID           = errors.New("invalid syntax of uuid")
	ErrInvalidID             = errors.New("group id is invalid")
	ErrConflict              = errors.New("group already exist")
	ErrInvalidDetail         = errors.New("invalid group detail")
	ErrListingGroupRelations = errors.New("error while listing relations")
	ErrFetchingUsers         = errors.New("error while fetching users")
	ErrFetchingGroups        = errors.New("error while fetching groups")
	ErrLogActivity           = errors.New("error while logging activity")
)

Functions

This section is empty.

Types

type ActivityService added in v0.6.15

type ActivityService interface {
	Log(ctx context.Context, action string, actor activity.Actor, data any) error
}

type Filter

type Filter struct {
	OrganizationID string
}

type Group

type Group struct {
	ID             string
	Name           string
	Slug           string
	OrganizationID string `json:"orgId"`
	Metadata       metadata.Metadata
	CreatedAt      time.Time
	UpdatedAt      time.Time
}

func (Group) ToGroupLogData added in v0.6.15

func (group Group) ToGroupLogData() GroupLogData

type GroupLogData added in v0.6.15

type GroupLogData struct {
	Entity string `mapstructure:"entity"`
	ID     string `mapstructure:"id"`
	Name   string `mapstructure:"name"`
	Slug   string `mapstructure:"slug"`
	OrgID  string `mapstructure:"organization_id"`
}

type RelationService

type RelationService interface {
	Create(ctx context.Context, rel relation.RelationV2) (relation.RelationV2, error)
	Delete(ctx context.Context, rel relation.Relation) error
	CheckPermission(ctx context.Context, usr user.User, resourceNS namespace.Namespace, resourceIdxa string, action action.Action) (bool, error)
}

type Repository

type Repository interface {
	Create(ctx context.Context, grp Group) (Group, error)
	GetByID(ctx context.Context, id string) (Group, error)
	GetByIDs(ctx context.Context, groupIDs []string) ([]Group, error)
	GetBySlug(ctx context.Context, slug string) (Group, error)
	List(ctx context.Context, flt Filter) ([]Group, error)
	UpdateByID(ctx context.Context, toUpdate Group) (Group, error)
	UpdateBySlug(ctx context.Context, toUpdate Group) (Group, error)
	ListUserGroups(ctx context.Context, userId string, roleId string) ([]Group, error)
	ListGroupRelations(ctx context.Context, objectId, subjectType, role string) ([]relation.RelationV2, error)
}

type Service

type Service struct {
	// contains filtered or unexported fields
}

func NewService

func NewService(logger log.Logger, repository Repository, relationService RelationService, userService UserService, activityService ActivityService) *Service

func (Service) Create

func (s Service) Create(ctx context.Context, grp Group) (Group, error)

func (Service) Get

func (s Service) Get(ctx context.Context, idOrSlug string) (Group, error)

func (Service) GetByIDs

func (s Service) GetByIDs(ctx context.Context, groupIDs []string) ([]Group, error)

func (Service) GetBySlug added in v0.6.5

func (s Service) GetBySlug(ctx context.Context, slug string) (Group, error)

func (Service) List

func (s Service) List(ctx context.Context, flt Filter) ([]Group, error)

func (Service) ListGroupRelations

func (s Service) ListGroupRelations(ctx context.Context, objectId, subjectType, role string) ([]user.User, []Group, map[string][]string, map[string][]string, error)

func (Service) ListUserGroups

func (s Service) ListUserGroups(ctx context.Context, userId string, roleId string) ([]Group, error)

func (Service) Update

func (s Service) Update(ctx context.Context, grp Group) (Group, error)

type UserService

type UserService interface {
	FetchCurrentUser(ctx context.Context) (user.User, error)
	GetByID(ctx context.Context, id string) (user.User, error)
	GetByIDs(ctx context.Context, userIDs []string) ([]user.User, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL