Documentation
¶
Overview ¶
Package account present full API functionality of the specific object
Index ¶
Constants ¶
const ( // RoleAdmin is the admin role for accounts RoleAdmin = `admin` // PermAuthCross is the permission for cross-account auth PermAuthCross = `auth.cross` )
Variables ¶
var CtxPermissionCheckAccount = models.CtxPermissionCheckAccount
CtxPermissionCheckAccount is the context key for account permission checks.
Functions ¶
This section is empty.
Types ¶
type AccountMember ¶ added in v0.4.0
type AccountMember = models.AccountMember
type Filter ¶
type Filter struct {
ID []uint64
UserID []uint64
Title []string
Status []pkgModels.ApproveStatus
}
Filter of the objects list
func (*Filter) AdjustPermissions ¶ added in v0.4.0
AdjustPermissions narrows the filter to the current user's accounts. Cannot import pkg/acl or pkg/context/session due to an import cycle; uses the lower-level context sub-packages instead.
type ListOptions ¶ added in v0.4.0
type ListOptions = repository.ListOptions
ListOptions is the list of query options
type ListOrder ¶
type ListOrder struct {
ID pkgModels.Order
Title pkgModels.Order
Status pkgModels.Order
CreatedAt pkgModels.Order
UpdatedAt pkgModels.Order
}
ListOrder of the objects list
type M2MAccountMemberRole ¶ added in v0.4.0
type M2MAccountMemberRole = models.M2MAccountMemberRole
type MemberFilter ¶
type MemberFilter struct {
ID []uint64
AccountID []uint64
UserID []uint64
NotUserID []uint64
Status []pkgModels.ApproveStatus
IsAdmin null.Bool
}
MemberFilter of the objects list
func (*MemberFilter) AdjustPermissions ¶ added in v0.4.0
func (fl *MemberFilter) AdjustPermissions(ctx context.Context) error
AdjustPermissions narrows the member filter to the current session account. Cannot import pkg/acl or pkg/context/session due to an import cycle; uses the lower-level context sub-packages instead.
func (*MemberFilter) PrepareQuery ¶
func (fl *MemberFilter) PrepareQuery(query *gorm.DB) *gorm.DB
type MemberListOrder ¶
type MemberListOrder struct {
ID pkgModels.Order
AccountID pkgModels.Order
UserID pkgModels.Order
Status pkgModels.Order
IsAdmin pkgModels.Order
CreatedAt pkgModels.Order
UpdatedAt pkgModels.Order
}
MemberListOrder of the objects list
func (*MemberListOrder) PrepareQuery ¶
func (ord *MemberListOrder) PrepareQuery(query *gorm.DB) *gorm.DB
type MemberRepository ¶ added in v0.4.0
type MemberRepository interface {
IsAdmin(ctx context.Context, userID, accountID uint64) bool
IsMember(ctx context.Context, userID, accountID uint64) bool
FetchListMembers(ctx context.Context, opts ...QOption) ([]*AccountMember, error)
CountMembers(ctx context.Context, opts ...QOption) (int64, error)
Member(ctx context.Context, userID, accountID uint64) (*AccountMember, error)
MemberByID(ctx context.Context, id uint64) (*AccountMember, error)
LinkMember(ctx context.Context, account *Account, isAdmin bool, members ...*User) error
UnlinkMember(ctx context.Context, account *Account, members ...*User) error
SetMemberRoles(ctx context.Context, account *Account, member *User, roles ...string) error
}
MemberRepository of access to the account members
type MemberUsecase ¶ added in v0.4.0
type MemberUsecase interface {
FetchListMembers(ctx context.Context, opts ...QOption) ([]*AccountMember, error)
CountMembers(ctx context.Context, opts ...QOption) (int64, error)
LinkMember(ctx context.Context, account *Account, isAdmin bool, members ...*User) error
UnlinkMember(ctx context.Context, account *Account, members ...*User) error
UnlinkAccountMember(ctx context.Context, memberID uint64) error
InviteMember(ctx context.Context, accountID uint64, email string, roles ...string) (*AccountMember, error)
SetAccountMemeberRoles(ctx context.Context, accountID, userID uint64, roles ...string) (*AccountMember, error)
SetMemberRoles(ctx context.Context, memberID uint64, roles ...string) (*AccountMember, error)
}
MemberUsecase of the account members
type Pagination ¶ added in v0.4.0
type Pagination = repository.Pagination
Pagination of the objects list
type PermissionChecker ¶ added in v0.4.0
type PermissionChecker = models.PermissionChecker
type QOption ¶ added in v0.4.0
type QOption = repository.QOption
QOption is the query option interface
type Repository ¶
type Repository interface {
Get(ctx context.Context, id uint64) (*Account, error)
FetchList(ctx context.Context, opts ...QOption) ([]*Account, error)
Count(ctx context.Context, opts ...QOption) (int64, error)
Create(ctx context.Context, account *Account) (uint64, error)
Update(ctx context.Context, id uint64, account *Account) error
Delete(ctx context.Context, id uint64) error
LoadPermissions(ctx context.Context, account *Account, user *User) error
// GetByToken returns the user and account objects linked to the token (external session ID)
GetByToken(ctx context.Context, token string) (*User, *Account, error)
}
Repository of access to the account
type Usecase ¶
type Usecase interface {
Get(ctx context.Context, id uint64) (*Account, error)
FetchList(ctx context.Context, opts ...QOption) ([]*Account, error)
Count(ctx context.Context, opts ...QOption) (int64, error)
Store(ctx context.Context, account *Account) (uint64, error)
Register(ctx context.Context, ownerObj *User, accountObj *Account, password string) (uint64, error)
Delete(ctx context.Context, id uint64) error
}
Usecase of the account
Directories
¶
| Path | Synopsis |
|---|---|
|
delivery
|
|
|
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
|
Package repository implements methods of working with the repository objects
|
Package repository implements methods of working with the repository objects |
|
Package usecase account implementation
|
Package usecase account implementation |