Documentation
¶
Index ¶
- func RequestApiFullPermissionsAttribute(request *restful.Request, key string) *[]ApiFullPermissions
- func RequestApiReadPermissionsAttribute(request *restful.Request, key string) *[]ApiReadPermission
- func RequestHasApiFullPermission(req *restful.Request, permission ApiFullPermissions) bool
- func RequestHasApiReadPermission(req *restful.Request, permission ApiReadPermission) bool
- type AccountDetail
- type AccountORM
- type AccountPermissionsCache
- type AccountPermissionsDetail
- type AccountPermissionsORM
- func (a *AccountPermissionsORM) AccountPermissionsList() []string
- func (a *AccountPermissionsORM) Cache() *AccountPermissionsCache
- func (a *AccountPermissionsORM) Detail() *AccountPermissionsDetail
- func (a *AccountPermissionsORM) GetPrimaryRole() *util.AccountRoleKind
- func (a *AccountPermissionsORM) SetPrimaryRole(role util.AccountRoleKind)
- func (a *AccountPermissionsORM) TableName() string
- func (a *AccountPermissionsORM) Update(detail *AccountPermissionsDetail)
- type AccountState
- type AccountUserPrimaryRole
- type Address
- type AddressKind
- type AddressORM
- type ApiFullPermissions
- type ApiReadPermission
- type AuthTokenClaims
- type CommonTokenClaims
- type DeleteUserResponse
- type EmailDetail
- type EmailORM
- type NewAccount
- type NewEmail
- type NewToken
- type NewTokenInternal
- type NewUser
- type PlatformAccountDataDetail
- type PlatformAccountDataORM
- type PlatformPermissionsCache
- type PlatformPermissionsDetail
- type PlatformPermissionsORM
- func (a *PlatformPermissionsORM) Cache() *PlatformPermissionsCache
- func (a *PlatformPermissionsORM) Detail() *PlatformPermissionsDetail
- func (a *PlatformPermissionsORM) RootUserPermissionsList() []string
- func (r *PlatformPermissionsORM) TableName() string
- func (a *PlatformPermissionsORM) Update(detail *PlatformPermissionsDetail)
- type TokenCache
- type TokenDetail
- type TokenWithCommonClaims
- type UpdateAccount
- type UpdateEmail
- type UpdatePlatformAccountData
- type UpdateUser
- type UserAddressORM
- type UserDetail
- type UserORM
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RequestApiFullPermissionsAttribute ¶
func RequestApiFullPermissionsAttribute(request *restful.Request, key string) *[]ApiFullPermissions
func RequestApiReadPermissionsAttribute ¶
func RequestApiReadPermissionsAttribute(request *restful.Request, key string) *[]ApiReadPermission
func RequestHasApiFullPermission ¶
func RequestHasApiFullPermission(req *restful.Request, permission ApiFullPermissions) bool
func RequestHasApiReadPermission ¶
func RequestHasApiReadPermission(req *restful.Request, permission ApiReadPermission) bool
Types ¶
type AccountDetail ¶
type AccountORM ¶
type AccountORM struct { ParentAccountId *string `gorm:"index"` Id string `gorm:"primary_key"` CreatedAt *time.Time DeletedAt *time.Time UpdatedAt *time.Time State AccountState // Related entities PlatformAccountData *PlatformAccountDataORM `gorm:"foreignKey:AccountId;references:Id"` }
func (*AccountORM) Detail ¶
func (a *AccountORM) Detail() *AccountDetail
func (*AccountORM) TableName ¶
func (a *AccountORM) TableName() string
type AccountPermissionsCache ¶
type AccountPermissionsCache struct { AccountId string UserId string Detail *AccountPermissionsDetail }
func (AccountPermissionsCache) CacheKey ¶
func (a AccountPermissionsCache) CacheKey() string
func (AccountPermissionsCache) Ttl ¶
func (a AccountPermissionsCache) Ttl() time.Duration
type AccountPermissionsORM ¶
type AccountPermissionsORM struct { AccountId string Account *AccountORM `gorm:"foreignKey:AccountId;references:Id"` Id string `gorm:"uniqueIndex"` UserId string `gorm:"primaryKey"` User *UserORM `gorm:"foreignKey:UserId;references:Id"` AccountAdmin bool AccountBuyer bool AccountOwner bool AccountUser bool AccountEmailListReader bool }
func (*AccountPermissionsORM) AccountPermissionsList ¶
func (a *AccountPermissionsORM) AccountPermissionsList() []string
func (*AccountPermissionsORM) Cache ¶
func (a *AccountPermissionsORM) Cache() *AccountPermissionsCache
func (*AccountPermissionsORM) Detail ¶
func (a *AccountPermissionsORM) Detail() *AccountPermissionsDetail
func (*AccountPermissionsORM) GetPrimaryRole ¶
func (a *AccountPermissionsORM) GetPrimaryRole() *util.AccountRoleKind
func (*AccountPermissionsORM) SetPrimaryRole ¶
func (a *AccountPermissionsORM) SetPrimaryRole(role util.AccountRoleKind)
func (*AccountPermissionsORM) TableName ¶
func (a *AccountPermissionsORM) TableName() string
func (*AccountPermissionsORM) Update ¶
func (a *AccountPermissionsORM) Update(detail *AccountPermissionsDetail)
type AccountState ¶
type AccountState string
const ( AccountStatePlatformSignup AccountState = "signup" AccountStateActive AccountState = "active" AccountStateSuspended AccountState = "suspended" AccountStateDeleted AccountState = "deleted" )
type AccountUserPrimaryRole ¶
type AccountUserPrimaryRole string
type AddressKind ¶
type AddressKind string
const ( BillingAddress AddressKind = "billing" ShippingAddress AddressKind = "shipping" )
type AddressORM ¶
type AddressORM struct { AccountId string Account *AccountORM `gorm:"foreignKey:AccountId;references:Id"` City string Country string CreatedAt *time.Time DeletedAt *time.Time Id string `gorm:"primary_key"` Line1 string Line2 string PostalCode string State string UpdatedAt *time.Time }
func (*AddressORM) TableName ¶
func (a *AddressORM) TableName() string
type ApiFullPermissions ¶
type ApiFullPermissions string
const ( ApiFullPermissionsAccountAdmin ApiFullPermissions = "acct_adm" ApiFullPermissionsUser ApiFullPermissions = "user" ApiFullPermissionsPlatformAdmin ApiFullPermissions = "plat_adm" ApiFullPermissionsPlatformUser ApiFullPermissions = "plat_user" )
type ApiReadPermission ¶
type ApiReadPermission string
const ( ApiReadPermissionCurrentCheckoutTransaction ApiReadPermission = "cur_cktrx" ApiReadPermissionAccountPurchases ApiReadPermission = "acct_purchases" )
type AuthTokenClaims ¶
type AuthTokenClaims struct { AccountId string `json:"aid"` UserId string `json:"uid"` Name string `json:"name,omitempty"` Email string `json:"email,omitempty"` Initials string `json:"initials,omitempty"` CommonTokenClaims }
func (*AuthTokenClaims) CommonClaims ¶
func (a *AuthTokenClaims) CommonClaims() *CommonTokenClaims
type CommonTokenClaims ¶
type CommonTokenClaims struct { AccountId *util.AccountId `json:"aid,omitempty"` UserId *util.UserId `json:"uid,omitempty"` CheckoutTransactionId *util.CheckoutTransactionId `json:"c_xid,omitempty"` ApiReadPermissions []ApiReadPermission `json:"api_rd,omitempty"` ApiFullPermissions []ApiFullPermissions `json:"api_full,omitempty"` jwt.StandardClaims }
func GetCommonClaims ¶
func GetCommonClaims(token *jwt.Token) *CommonTokenClaims
func (*CommonTokenClaims) CommonClaims ¶
func (c *CommonTokenClaims) CommonClaims() *CommonTokenClaims
func (*CommonTokenClaims) HasApiFullPermission ¶
func (c *CommonTokenClaims) HasApiFullPermission(permission ApiFullPermissions) bool
func (*CommonTokenClaims) HasApiReadPermission ¶
func (c *CommonTokenClaims) HasApiReadPermission(permission ApiReadPermission) bool
type DeleteUserResponse ¶
/ Appears to be needed by frontend
type EmailDetail ¶
type EmailORM ¶
type EmailORM struct { AccountId string `gorm:"uniqueIndex:idx_account_email"` Account *AccountORM `gorm:"foreignKey:AccountId;references:Id"` CreatedAt *time.Time DeletedAt *time.Time Email string `gorm:"uniqueIndex:idx_account_email"` Id string `gorm:"primary_key"` Subscribed bool UpdatedAt *time.Time UserId string User *UserORM `gorm:"foreignKey:UserId"` Verified bool }
func (*EmailORM) Detail ¶
func (e *EmailORM) Detail() *EmailDetail
type NewAccount ¶
type NewTokenInternal ¶
type NewUser ¶
type NewUser struct { AccountId string `json:"account_id"` LoginEmail string `json:"login_email"` FirstName string `json:"first_name"` LastName string `json:"last_name"` MiddleName string `json:"middle_name"` BillingAddress Address `json:"billing_address"` ShippingAddress Address `json:"shipping_address"` RoleKind util.AccountRoleKind }
type PlatformAccountDataORM ¶
type PlatformAccountDataORM struct { AccountId string `json:"account_id"` CreatedAt *time.Time `json:"created_at"` UpdatedAt *time.Time `json:"updated_at"` DeletedAt *time.Time ApiDomain *string `json:"api_domain"` }
config_api Platform Account Data, used to store platform specific data as an extension to the shared Account model
func (*PlatformAccountDataORM) Detail ¶
func (p *PlatformAccountDataORM) Detail() *PlatformAccountDataDetail
func (*PlatformAccountDataORM) TableName ¶
func (p *PlatformAccountDataORM) TableName() string
type PlatformPermissionsCache ¶
type PlatformPermissionsCache struct { UserID string Detail *PlatformPermissionsDetail }
func (PlatformPermissionsCache) CacheKey ¶
func (a PlatformPermissionsCache) CacheKey() string
func (PlatformPermissionsCache) Ttl ¶
func (a PlatformPermissionsCache) Ttl() time.Duration
type PlatformPermissionsORM ¶
type PlatformPermissionsORM struct { AccountId string Account *AccountORM `gorm:"foreignKey:AccountId;references:Id"` Id string `gorm:"uniqueIndex"` UserId string `gorm:"primaryKey"` User *UserORM `gorm:"foreignKey:UserId;references:Id"` RootUser bool Admin bool InternalUser bool }
func (*PlatformPermissionsORM) Cache ¶
func (a *PlatformPermissionsORM) Cache() *PlatformPermissionsCache
func (*PlatformPermissionsORM) Detail ¶
func (a *PlatformPermissionsORM) Detail() *PlatformPermissionsDetail
func (*PlatformPermissionsORM) RootUserPermissionsList ¶
func (a *PlatformPermissionsORM) RootUserPermissionsList() []string
func (*PlatformPermissionsORM) TableName ¶
func (r *PlatformPermissionsORM) TableName() string
func (*PlatformPermissionsORM) Update ¶
func (a *PlatformPermissionsORM) Update(detail *PlatformPermissionsDetail)
type TokenCache ¶
type TokenCache struct { AccountId string `json:"account_id"` UserId string `json:"user_id"` Email string `json:"email"` IssuedAt int64 `json:"issued_at"` ExpiresAt int64 `json:"expires_at"` Id string `json:"id"` Token string `json:"token"` Role util.AccountRoleKind `json:"role"` }
func (*TokenCache) CacheKey ¶
func (t *TokenCache) CacheKey() string
func (*TokenCache) MarshalBinary ¶
func (t *TokenCache) MarshalBinary() ([]byte, error)
func (*TokenCache) Ttl ¶
func (t *TokenCache) Ttl() time.Duration
type TokenDetail ¶
type TokenDetail struct { AccountId string `json:"account_id"` UserId string `json:"user_id"` Email string `json:"email"` Issuer string `json:"issuer"` IssuedAt time.Time `json:"issued_at"` ExpiresAt time.Time `json:"expires_at"` Id string `json:"id"` Token string `json:"token"` FriendlyName string `json:"friendly_name"` Initals string `json:"initials"` PlatformUser bool `json:"platform_account_user"` Role util.AccountRoleKind `json:"role"` }
func (*TokenDetail) ToCache ¶
func (t *TokenDetail) ToCache() *TokenCache
type TokenWithCommonClaims ¶
type TokenWithCommonClaims interface { CommonClaims() *CommonTokenClaims jwt.Claims }
type UpdateAccount ¶
type UpdateAccount struct { ApiDomain *string `json:"api_domain"` AccountState *AccountState `json:"state"` }
type UpdateEmail ¶
type UpdateUser ¶
type UpdateUser struct { LoginEmail *string `json:"login_email"` FirstName *string `json:"first_name"` LastName *string `json:"last_name"` MiddleName *string `json:"middle_name"` BillingAddress *Address `json:"billing_address"` ShippingAddress *Address `json:"shipping_address"` // Convenience AccountUserPrimaryRole *util.AccountRoleKind `json:"account_user_role"` }
type UserAddressORM ¶
type UserAddressORM struct { UserId string `gorm:"primary_key;column:user_id"` AddressId string `gorm:"primary_key;column:address_id"` AddressKind AddressKind `gorm:"primary_key;column:address_kind"` }
func (*UserAddressORM) TableName ¶
func (u *UserAddressORM) TableName() string
type UserDetail ¶
type UserDetail struct { AccountId string `json:"account_id"` Id string `json:"id"` Emails []*EmailDetail `json:"emails"` FirstName string `json:"first_name"` FriendlyName string `json:"friendly_name"` Initials string `json:"initials"` LastName string `json:"last_name"` LoginEmail string `json:"login_email"` MiddleName string `json:"middle_name"` BillingAddress Address `json:"billing_address"` ShippingAddress Address `json:"shipping_address"` // Computed AccountUserRole *util.AccountRoleKind `json:"account_user_role"` // Related entities AccountPermissions *AccountPermissionsDetail `json:"account_user_permissions"` }
type UserORM ¶
type UserORM struct { AccountId string Account *AccountORM `gorm:"foreignKey:AccountId;references:Id"` // BillingAddress *AddressORM `gorm:"many2many:user_addresses"` CreatedAt *time.Time DeletedAt *time.Time Emails []*EmailORM `gorm:"foreignKey:UserId;references:Id"` FirstName string Id string `gorm:"primary_key"` LastName string LoginEmail string LoginEmailId string // LoginEmailRef *EmailORM `gorm:"foreignKey:LoginEmailId;references:Id"` MiddleName string // ShippingAddress *AddressORM `gorm:"many2many:user_addresses"` UpdatedAt *time.Time // Related entities RootUserPermissions *PlatformPermissionsORM `gorm:"foreignKey:UserId;references:Id"` AccountPermissions *AccountPermissionsORM `gorm:"foreignKey:UserId;references:Id"` }
func (*UserORM) Detail ¶
func (u *UserORM) Detail() *UserDetail
func (*UserORM) FriendlyName ¶
func (*UserORM) SetAccountUserPrimaryRole ¶
func (u *UserORM) SetAccountUserPrimaryRole(roleKind util.AccountRoleKind)
Click to show internal directories.
Click to hide internal directories.