workspace

package
v0.0.0-...-5cbc45b Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2024 License: Apache-2.0 Imports: 12 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUserAlreadyJoined             = rerror.NewE(i18n.T("user already joined"))
	ErrCannotModifyPersonalWorkspace = rerror.NewE(i18n.T("personal workspace cannot be modified"))
	ErrTargetUserNotInTheWorkspace   = rerror.NewE(i18n.T("target user does not exist in the workspace"))
	ErrInvalidWorkspaceName          = rerror.NewE(i18n.T("invalid workspace name"))
)
View Source
var (
	// RoleOwner is a role who can have full controll of projects and workspaces
	RoleOwner = Role("owner")
	// RoleMaintainer is a role who can manage projects
	RoleMaintainer = Role("maintainer")
	// RoleWriter is a role who can read and write projects
	RoleWriter = Role("writer")
	// RoleReader is a role who can read projects
	RoleReader = Role("reader")

	ErrInvalidRole = errors.New("invalid role")
)
View Source
var ErrMembersRequired = errors.New("members required")
View Source
var NewIntegrationID = accountdomain.NewIntegrationID

Functions

This section is empty.

Types

type Builder

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

func New

func New() *Builder

func (*Builder) Build

func (b *Builder) Build() (*Workspace, error)

func (*Builder) ID

func (b *Builder) ID(id ID) *Builder

func (*Builder) Integrations

func (b *Builder) Integrations(integrations map[IntegrationID]Member) *Builder

func (*Builder) Members

func (b *Builder) Members(members map[UserID]Member) *Builder

func (*Builder) MustBuild

func (b *Builder) MustBuild() *Workspace

func (*Builder) Name

func (b *Builder) Name(name string) *Builder

func (*Builder) NewID

func (b *Builder) NewID() *Builder

func (*Builder) ParseID

func (b *Builder) ParseID(id string) *Builder

func (*Builder) Personal

func (b *Builder) Personal(p bool) *Builder

func (*Builder) Policy

func (b *Builder) Policy(p *PolicyID) *Builder

type ID

type IDList

type InitParams

type InitParams struct {
	Email       string
	Name        string
	Sub         *user.Auth
	Password    *string
	Lang        *language.Tag
	Theme       *user.Theme
	UserID      *user.ID
	WorkspaceID *ID
}

type IntegrationID

type IntegrationID = accountdomain.IntegrationID

type List

type List []*Workspace

func (List) FilterByID

func (l List) FilterByID(ids ...ID) List

func (List) FilterByIntegrationRole

func (l List) FilterByIntegrationRole(i IntegrationID, r Role) List

func (List) FilterByIntegrationRoleIncluding

func (l List) FilterByIntegrationRoleIncluding(i IntegrationID, r Role) List

func (List) FilterByUserRole

func (l List) FilterByUserRole(u UserID, r Role) List

func (List) FilterByUserRoleIncluding

func (l List) FilterByUserRoleIncluding(u UserID, r Role) List

func (List) IDs

func (l List) IDs() []ID

type Member

type Member struct {
	Role      Role
	Disabled  bool
	InvitedBy UserID
	Host      string
}

type Members

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

func InitMembers

func InitMembers(u UserID) *Members

func NewMembers

func NewMembers() *Members

func NewMembersWith

func NewMembersWith(users map[UserID]Member, integrations map[IntegrationID]Member, fixed bool) *Members

func (*Members) AddIntegration

func (m *Members) AddIntegration(iid IntegrationID, role Role, i UserID) error

func (*Members) Clone

func (m *Members) Clone() *Members

func (*Members) Count

func (m *Members) Count() int

func (*Members) DeleteIntegration

func (m *Members) DeleteIntegration(iid IntegrationID) error

func (*Members) Fixed

func (m *Members) Fixed() bool

func (*Members) HasIntegration

func (m *Members) HasIntegration(i IntegrationID) bool

func (*Members) HasUser

func (m *Members) HasUser(u UserID) bool

func (*Members) Integration

func (m *Members) Integration(i IntegrationID) *Member

func (*Members) IntegrationIDs

func (m *Members) IntegrationIDs() []IntegrationID

func (*Members) IntegrationRole

func (m *Members) IntegrationRole(iId IntegrationID) Role

func (*Members) Integrations

func (m *Members) Integrations() map[IntegrationID]Member

func (*Members) IsEmpty

func (m *Members) IsEmpty() bool

func (*Members) IsOnlyOwner

func (m *Members) IsOnlyOwner(u UserID) bool

func (*Members) IsOwnerOrMaintainer

func (m *Members) IsOwnerOrMaintainer(u UserID) bool

func (*Members) Join

func (m *Members) Join(u *user.User, role Role, i UserID) error

func (*Members) Leave

func (m *Members) Leave(u UserID) error

func (*Members) UpdateIntegrationRole

func (m *Members) UpdateIntegrationRole(iId IntegrationID, role Role) error

func (*Members) UpdateUserRole

func (m *Members) UpdateUserRole(u UserID, role Role) error

func (*Members) User

func (m *Members) User(u UserID) *Member

func (*Members) UserIDs

func (m *Members) UserIDs() []UserID

func (*Members) UserRole

func (m *Members) UserRole(u UserID) Role

func (*Members) Users

func (m *Members) Users() map[UserID]Member

func (*Members) UsersByRole

func (m *Members) UsersByRole(role Role) []UserID

type PolicyID

type PolicyID string

func (PolicyID) Ref

func (id PolicyID) Ref() *PolicyID

func (PolicyID) String

func (id PolicyID) String() string

type Role

type Role string

func RoleFrom

func RoleFrom(r string) (Role, error)

func (Role) Includes

func (r Role) Includes(role Role) bool

func (Role) Valid

func (r Role) Valid() bool

type UserID

type UserID = accountdomain.UserID

type UserIDList

type UserIDList = accountdomain.UserIDList

type Workspace

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

func Init

func Init(p InitParams) (*user.User, *Workspace, error)

func (*Workspace) ID

func (t *Workspace) ID() ID

func (*Workspace) IsPersonal

func (t *Workspace) IsPersonal() bool

func (*Workspace) Members

func (t *Workspace) Members() *Members

func (*Workspace) Name

func (t *Workspace) Name() string

func (*Workspace) Policy

func (w *Workspace) Policy() *PolicyID

func (*Workspace) Rename

func (t *Workspace) Rename(name string)

func (*Workspace) SetPolicy

func (w *Workspace) SetPolicy(policy *PolicyID)

Jump to

Keyboard shortcuts

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