user

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUserAlreadyJoined        = errors.New("user already joined")
	ErrCannotModifyPersonalTeam = errors.New("personal team cannot be modified")
	ErrTeamWithProjects         = errors.New("target team still has some project")
	ErrTargetUserNotInTheTeam   = errors.New("target user does not exist in the team")
)
View Source
var (
	// RoleReader is a role who can read project
	RoleReader = Role("reader")
	// RoleWriter is a role who can read and write project
	RoleWriter = Role("writer")
	// RoleOwner is a role who can have full controll of project
	RoleOwner = Role("owner")

	ErrInvalidRole = errors.New("invalid role")
)
View Source
var ErrInvalidID = id.ErrInvalidID
View Source
var IDFrom = id.UserIDFrom
View Source
var IDFromRef = id.UserIDFromRef
View Source
var IDFromRefID = id.UserIDFromRefID
View Source
var MustID = id.MustUserID
View Source
var MustTeamID = id.MustTeamID
View Source
var NewID = id.NewUserID
View Source
var NewTeamID = id.NewTeamID
View Source
var TeamIDFrom = id.TeamIDFrom
View Source
var TeamIDFromRef = id.TeamIDFromRef
View Source
var TeamIDFromRefID = id.TeamIDFromRefID

Functions

func Init

func Init(p InitParams) (*User, *Team, error)

Types

type Auth

type Auth struct {
	Provider string
	Sub      string
}

func AuthFromAuth0Sub

func AuthFromAuth0Sub(sub string) Auth

func (Auth) IsAuth0

func (a Auth) IsAuth0() bool

type Builder

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

func New

func New() *Builder

func (*Builder) Auths

func (b *Builder) Auths(auths []Auth) *Builder

func (*Builder) Build

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

func (*Builder) Email

func (b *Builder) Email(email string) *Builder

func (*Builder) ID

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

func (*Builder) Lang

func (b *Builder) Lang(lang language.Tag) *Builder

func (*Builder) LangFrom

func (b *Builder) LangFrom(lang string) *Builder

func (*Builder) MustBuild

func (b *Builder) MustBuild() *User

func (*Builder) Name

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

func (*Builder) NewID

func (b *Builder) NewID() *Builder

func (*Builder) Team

func (b *Builder) Team(team TeamID) *Builder

func (*Builder) Theme

func (b *Builder) Theme(t Theme) *Builder

type ID added in v0.4.0

type ID = id.UserID

type InitParams

type InitParams struct {
	Email    string
	Name     string
	Auth0Sub string
	Lang     *language.Tag
	Theme    *Theme
	UserID   *ID
	TeamID   *TeamID
}

type Members

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

func CopyMembers

func CopyMembers(members *Members) *Members

func NewFixedMembers

func NewFixedMembers(u ID) *Members

func NewMembers

func NewMembers() *Members

func NewMembersWith

func NewMembersWith(members map[ID]Role) *Members

func (*Members) ContainsUser

func (m *Members) ContainsUser(u ID) bool

func (*Members) Count

func (m *Members) Count() int

func (*Members) Fixed added in v0.4.0

func (m *Members) Fixed() bool

func (*Members) GetRole

func (m *Members) GetRole(u ID) Role

func (*Members) IsOnlyOwner

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

func (*Members) Join

func (m *Members) Join(u ID, role Role) error

func (*Members) Leave

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

func (*Members) Members

func (m *Members) Members() map[ID]Role

func (*Members) UpdateRole

func (m *Members) UpdateRole(u ID, role Role) error

func (*Members) UsersByRole

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

type Role

type Role string

func RoleFromString

func RoleFromString(r string) (Role, error)

type Team

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

func (*Team) ID

func (t *Team) ID() TeamID

func (*Team) IsPersonal

func (t *Team) IsPersonal() bool

func (*Team) Members

func (t *Team) Members() *Members

func (*Team) Name

func (t *Team) Name() string

func (*Team) Rename

func (t *Team) Rename(name string)

type TeamBuilder

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

func NewTeam

func NewTeam() *TeamBuilder

func (*TeamBuilder) Build

func (b *TeamBuilder) Build() (*Team, error)

func (*TeamBuilder) ID

func (b *TeamBuilder) ID(id TeamID) *TeamBuilder

func (*TeamBuilder) Members

func (b *TeamBuilder) Members(members map[ID]Role) *TeamBuilder

func (*TeamBuilder) MustBuild

func (b *TeamBuilder) MustBuild() *Team

func (*TeamBuilder) Name

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

func (*TeamBuilder) NewID

func (b *TeamBuilder) NewID() *TeamBuilder

func (*TeamBuilder) Personal

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

type TeamID added in v0.4.0

type TeamID = id.TeamID

type Theme

type Theme string
const (
	ThemeDefault Theme = "default"
	ThemeLight   Theme = "light"
	ThemeDark    Theme = "dark"
)

type User

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

func (*User) AddAuth

func (u *User) AddAuth(a Auth) bool

func (*User) Auths

func (u *User) Auths() []Auth

func (*User) ClearAuths

func (u *User) ClearAuths()

func (*User) ContainAuth

func (u *User) ContainAuth(a Auth) bool

func (*User) Email

func (u *User) Email() string

func (*User) ID

func (u *User) ID() ID

func (*User) Lang

func (u *User) Lang() language.Tag

func (*User) Name

func (u *User) Name() string

func (*User) RemoveAuth

func (u *User) RemoveAuth(a Auth) bool

func (*User) RemoveAuthByProvider

func (u *User) RemoveAuthByProvider(provider string) bool

func (*User) Team

func (u *User) Team() TeamID

func (*User) Theme

func (u *User) Theme() Theme

func (*User) UpdateEmail

func (u *User) UpdateEmail(email string)

func (*User) UpdateLang

func (u *User) UpdateLang(lang language.Tag)

func (*User) UpdateName

func (u *User) UpdateName(name string)

func (*User) UpdateTeam

func (u *User) UpdateTeam(team TeamID)

func (*User) UpdateTheme

func (u *User) UpdateTheme(t Theme)

Jump to

Keyboard shortcuts

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