Versions in this module Expand all Collapse all v0 v0.0.1 Oct 16, 2020 Changes in this version + var ErrAssignUserToGroup = errors.New("failed assigning user to a group") + var ErrConflict = errors.New("email already taken") + var ErrCreateGroup = errors.New("failed to create group") + var ErrCreateUser = errors.New("failed to create user") + var ErrDeleteGroupMissing = errors.New("group is not existing, already deleted") + var ErrGetToken = errors.New("failed to fetch signed token") + var ErrGroupConflict = errors.New("group already exists") + var ErrMalformedEntity = errors.New("malformed entity specification") + var ErrMissingEmail = errors.New("missing email for password reset") + var ErrMissingResetToken = errors.New("missing reset token") + var ErrNotFound = errors.New("non-existent entity") + var ErrRecoveryToken = errors.New("failed to generate password recovery token") + var ErrScanMetadata = errors.New("failed to scan metadata") + var ErrUnauthorizedAccess = errors.New("missing or invalid credentials provided") + var ErrUserNotFound = errors.New("non-existent user") + type Emailer interface + SendPasswordReset func(To []string, host, token string) error + type Group struct + Description string + ID string + Metadata map[string]interface{} + Name string + OwnerID string + ParentID string + type GroupPage struct + Groups []Group + type GroupRepository interface + Assign func(ctx context.Context, userID, groupID string) error + Delete func(ctx context.Context, id string) error + Memberships func(ctx context.Context, userID string, offset, limit uint64, gm Metadata) (GroupPage, error) + RetrieveAllWithAncestors func(ctx context.Context, groupID string, offset, limit uint64, gm Metadata) (GroupPage, error) + RetrieveByID func(ctx context.Context, id string) (Group, error) + RetrieveByName func(ctx context.Context, name string) (Group, error) + Save func(ctx context.Context, g Group) (Group, error) + Unassign func(ctx context.Context, userID, groupID string) error + Update func(ctx context.Context, g Group) error + type Hasher interface + Compare func(string, string) error + Hash func(string) (string, error) + type Metadata map[string]interface + type PageMetadata struct + Limit uint64 + Name string + Offset uint64 + Total uint64 + type Service interface + Assign func(ctx context.Context, token, userID, groupID string) error + ChangePassword func(ctx context.Context, authToken, password, oldPassword string) error + CreateGroup func(ctx context.Context, token string, group Group) (Group, error) + GenerateResetToken func(ctx context.Context, email, host string) error + Group func(ctx context.Context, token, id string) (Group, error) + Groups func(ctx context.Context, token, parentID string, offset, limit uint64, ...) (GroupPage, error) + Login func(ctx context.Context, user User) (string, error) + Members func(ctx context.Context, token, groupID string, offset, limit uint64, ...) (UserPage, error) + Memberships func(ctx context.Context, token, groupID string, offset, limit uint64, ...) (GroupPage, error) + Register func(ctx context.Context, user User) (string, error) + RemoveGroup func(ctx context.Context, token, id string) error + ResetPassword func(ctx context.Context, resetToken, password string) error + SendPasswordReset func(ctx context.Context, host, email, token string) error + Unassign func(ctx context.Context, token, userID, groupID string) error + UpdateGroup func(ctx context.Context, token string, group Group) error + UpdateUser func(ctx context.Context, token string, user User) error + User func(ctx context.Context, token string) (User, error) + func New(users UserRepository, groups GroupRepository, hasher Hasher, ...) Service + type User struct + Email string + Groups []Group + ID string + Metadata Metadata + Owner *User + OwnerID string + Password string + func (u User) Validate() error + type UserPage struct + Users []User + type UserRepository interface + Members func(ctx context.Context, groupID string, offset, limit uint64, um Metadata) (UserPage, error) + RetrieveByEmail func(ctx context.Context, email string) (User, error) + RetrieveByID func(ctx context.Context, id string) (User, error) + Save func(ctx context.Context, u User) (string, error) + UpdatePassword func(ctx context.Context, email, password string) error + UpdateUser func(ctx context.Context, u User) error