account

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package account present full API functionality of the specific object

Index

Constants

View Source
const (
	// RoleAdmin is the admin role for accounts
	RoleAdmin = `admin`

	// PermAuthCross is the permission for cross-account auth
	PermAuthCross = `auth.cross`
)

Variables

View Source
var CtxPermissionCheckAccount = models.CtxPermissionCheckAccount

CtxPermissionCheckAccount is the context key for account permission checks.

Functions

This section is empty.

Types

type Account added in v0.2.7

type Account = models.Account

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

func (fl *Filter) AdjustPermissions(ctx context.Context) error

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.

func (*Filter) PrepareQuery

func (fl *Filter) PrepareQuery(query *gorm.DB) *gorm.DB

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

func (*ListOrder) PrepareQuery

func (ord *ListOrder) PrepareQuery(query *gorm.DB) *gorm.DB

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

type User added in v0.4.0

type User = user.User

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

Jump to

Keyboard shortcuts

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