Documentation
¶
Index ¶
- Variables
- type EncryptedUpload
- type EncryptedUploadManager
- type HostedIPFSPrivateNetwork
- type IPFSNetworkManager
- func (im *IPFSNetworkManager) CreateHostedPrivateNetwork(name, swarmKey string, peers, users []string) (*HostedIPFSPrivateNetwork, error)
- func (im *IPFSNetworkManager) Delete(name string) error
- func (im *IPFSNetworkManager) GetAPIURLByName(name string) (string, error)
- func (im *IPFSNetworkManager) GetNetworkByName(name string) (*HostedIPFSPrivateNetwork, error)
- func (im *IPFSNetworkManager) UpdateNetworkByName(name string, attrs map[string]interface{}) error
- type IPNS
- type IpnsManager
- func (im *IpnsManager) CreateEntry(ipnsHash, ipfsHash, key, networkName, username string, ...) (*IPNS, error)
- func (im *IpnsManager) FindByIPNSHash(ipnsHash string) (*IPNS, error)
- func (im *IpnsManager) FindByUserName(username string) (*[]IPNS, error)
- func (im *IpnsManager) UpdateIPNSEntry(ipnsHash, ipfsHash, networkName, username string, lifetime, ttl time.Duration) (*IPNS, error)
- type PaymentManager
- func (pm *PaymentManager) ConfirmPayment(txHash string) (*Payments, error)
- func (pm *PaymentManager) FindPaymentByNumber(username string, number int64) (*Payments, error)
- func (pm *PaymentManager) FindPaymentByTxHash(txHash string) (*Payments, error)
- func (pm *PaymentManager) GetLatestPaymentNumber(username string) (int64, error)
- func (pm *PaymentManager) NewPayment(number int64, depositAddress string, txHash string, ...) (*Payments, error)
- func (pm *PaymentManager) UpdatePaymentTxHash(username, txHash string, number int64) (*Payments, error)
- type Payments
- type Record
- type RecordManager
- func (rm *RecordManager) AddRecord(username, recordName, recordKeyName, zoneName string, ...) (*Record, error)
- func (rm *RecordManager) FindRecordByNameAndUser(username, name string) (*Record, error)
- func (rm *RecordManager) FindRecordsByZone(username, zoneName string) (*[]Record, error)
- func (rm *RecordManager) UpdateLatestIPFSHash(username, recordName, ipfsHash string) (*Record, error)
- type Upload
- type UploadManager
- func (um *UploadManager) FindUploadByHashAndNetwork(hash, networkName string) (*Upload, error)
- func (um *UploadManager) FindUploadsByHash(hash string) *[]Upload
- func (um *UploadManager) FindUploadsByNetwork(networkName string) (*[]Upload, error)
- func (um *UploadManager) GetUploadByHashForUser(hash string, username string) []*Upload
- func (um *UploadManager) GetUploads() (*[]Upload, error)
- func (um *UploadManager) GetUploadsForUser(username string) (*[]Upload, error)
- func (um *UploadManager) NewUpload(contentHash, uploadType string, opts UploadOptions) (*Upload, error)
- func (um *UploadManager) RunDatabaseGarbageCollection() (*[]Upload, error)
- func (um *UploadManager) RunTestDatabaseGarbageCollection() (*[]Upload, error)
- func (um *UploadManager) UpdateUpload(holdTimeInMonths int64, username, contentHash, networkName string) (*Upload, error)
- type UploadOptions
- type User
- type UserManager
- func (um *UserManager) AddCredits(username string, credits float64) (*User, error)
- func (um *UserManager) AddIPFSKeyForUser(username, keyName, keyID string) error
- func (um *UserManager) AddIPFSNetworkForUser(username, networkName string) error
- func (um *UserManager) ChangePassword(username, currentPassword, newPassword string) (bool, error)
- func (um *UserManager) CheckIfAdmin(username string) (bool, error)
- func (um *UserManager) CheckIfKeyOwnedByUser(username, keyName string) (bool, error)
- func (um *UserManager) CheckIfUserAccountEnabled(username string) (bool, error)
- func (um *UserManager) CheckIfUserHasAccessToNetwork(username, networkName string) (bool, error)
- func (um *UserManager) ComparePlaintextPasswordToHash(username, password string) (bool, error)
- func (um *UserManager) FindByEmail(email string) (*User, error)
- func (um *UserManager) FindByUserName(username string) (*User, error)
- func (um *UserManager) FindEmailByUserName(username string) (map[string]string, error)
- func (um *UserManager) GenerateEmailVerificationToken(username string) (*User, error)
- func (um *UserManager) GetCreditsForUser(username string) (float64, error)
- func (um *UserManager) GetKeyIDByName(username, keyName string) (string, error)
- func (um *UserManager) GetKeysForUser(username string) (map[string][]string, error)
- func (um *UserManager) GetPrivateIPFSNetworksForUser(username string) ([]string, error)
- func (um *UserManager) NewUserAccount(username, password, email string) (*User, error)
- func (um *UserManager) RemoveCredits(username string, credits float64) (*User, error)
- func (um *UserManager) RemoveIPFSNetworkForUser(username, networkName string) error
- func (um *UserManager) ResetPassword(username string) (string, error)
- func (um *UserManager) SignIn(username, password string) (bool, error)
- func (um *UserManager) ToggleAdmin(username string) (bool, error)
- func (um *UserManager) ValidateEmailVerificationToken(username, token string) (*User, error)
- type Zone
- type ZoneManager
- func (zm *ZoneManager) AddRecordForZone(zoneName, recordName, username string) (*Zone, error)
- func (zm *ZoneManager) CheckIfRecordExistsInZone(zoneName, recordName, username string) (bool, error)
- func (zm *ZoneManager) FindZoneByNameAndUser(name, username string) (*Zone, error)
- func (zm *ZoneManager) NewZone(username, name, managerPK, zonePK, latestIPFSHash string) (*Zone, error)
- func (zm *ZoneManager) UpdateLatestIPFSHashForZone(name, username, hash string) (*Zone, error)
Constants ¶
This section is empty.
Variables ¶
var AdminAddress = "0xC6C35f43fDD71f86a2D8D4e3cA1Ce32564c38bd9"
AdminAddress is the eth address of the admin account
Functions ¶
This section is empty.
Types ¶
type EncryptedUpload ¶ added in v1.0.6
type EncryptedUpload struct {
gorm.Model
UserName string `gorm:"type:varchar(255)"`
FileName string `gorm:"type:varchar(255)"`
FileNameUpper string `gorm:"type:varchar(255)"`
FileNameLower string `gorm:"type:varchar(255)"`
NetworkName string `gorm:"type:varchar(255)"`
IPFSHash string `gorm:"type:varchar(255)"`
}
EncryptedUpload is an uploaded that has been encrypted by Temporal
type EncryptedUploadManager ¶ added in v1.0.6
EncryptedUploadManager is used to manipulate encrypted uplaods
func NewEncryptedUploadManager ¶ added in v1.0.6
func NewEncryptedUploadManager(db *gorm.DB) *EncryptedUploadManager
NewEncryptedUploadManager is used to generate our db helper
func (*EncryptedUploadManager) FindUploadsByUser ¶ added in v1.0.6
func (ecm *EncryptedUploadManager) FindUploadsByUser(username string) (*[]EncryptedUpload, error)
FindUploadsByUser is used to find all uploads for a given user
func (*EncryptedUploadManager) NewUpload ¶ added in v1.0.6
func (ecm *EncryptedUploadManager) NewUpload(username, filename, networname, ipfsHash string) (*EncryptedUpload, error)
NewUpload is used to store a new encrypted upload in the database
type HostedIPFSPrivateNetwork ¶
type HostedIPFSPrivateNetwork struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
Name string `gorm:"unique;type:varchar(255)"`
APIURL string `gorm:"type:varchar(255)"`
SwarmKey string `gorm:"type:varchar(255)"`
Users pq.StringArray `gorm:"type:text[]"` // these are the users to which this IPFS network connection applies to specified by eth address
Activated time.Time
BootstrapPeerAddresses pq.StringArray `gorm:"type:text[]"`
BootstrapPeerIDs pq.StringArray `gorm:"type:text[];column:bootstrap_peer_ids"`
ResourcesCPUs int
ResourcesDiskGB int
ResourcesMemoryGB int
// note: local addresses currently unused
LocalNodePeerAddresses pq.StringArray `gorm:"type:text[]"` // these are the nodes whichwe run, and can connect to
LocalNodePeerIDs pq.StringArray `gorm:"type:text[];column:local_node_peer_ids"`
}
HostedIPFSPrivateNetwork is a private network for which we are responsible of the infrastructure
type IPFSNetworkManager ¶
IPFSNetworkManager is used to manipulate IPFS network models in the database
func NewHostedIPFSNetworkManager ¶
func NewHostedIPFSNetworkManager(db *gorm.DB) *IPFSNetworkManager
NewHostedIPFSNetworkManager is used to initialize our database connection
func (*IPFSNetworkManager) CreateHostedPrivateNetwork ¶
func (im *IPFSNetworkManager) CreateHostedPrivateNetwork(name, swarmKey string, peers, users []string) (*HostedIPFSPrivateNetwork, error)
CreateHostedPrivateNetwork is used to store a new hosted private network in the database
func (*IPFSNetworkManager) Delete ¶ added in v1.1.0
func (im *IPFSNetworkManager) Delete(name string) error
Delete is used to remove a network from the database
func (*IPFSNetworkManager) GetAPIURLByName ¶
func (im *IPFSNetworkManager) GetAPIURLByName(name string) (string, error)
GetAPIURLByName is used to retrieve the API url for a private network by its network name
func (*IPFSNetworkManager) GetNetworkByName ¶
func (im *IPFSNetworkManager) GetNetworkByName(name string) (*HostedIPFSPrivateNetwork, error)
GetNetworkByName is used to retrieve a network from the database based off of its name
func (*IPFSNetworkManager) UpdateNetworkByName ¶ added in v1.0.5
func (im *IPFSNetworkManager) UpdateNetworkByName(name string, attrs map[string]interface{}) error
UpdateNetworkByName updates the given network with given attributes
type IPNS ¶
type IPNS struct {
gorm.Model
Sequence int64 `gorm:"type:integer"`
// the ipns hash, is the peer id of the peer used to sign the entry
IPNSHash string `gorm:"type:varchar(255);unique"`
// List of content hashes this IPNS entry has pointed to
IPFSHashes pq.StringArray `gorm:"type:text[]"`
CurrentIPFSHash string `gorm:"type:varchar(255)"`
LifeTime string `gorm:"type:varchar(255)"`
TTL string `gorm:"type:varchar(255)"`
Key string `gorm:"type:varchar(255)"`
NetworkName string `gorm:"type:varchar(255)"`
UserName string `gorm:"type:varchar(255)"`
}
IPNS will hold all of the IPNS entries in our system
type IpnsManager ¶
IpnsManager is used for manipulating IPNS records in our database
func NewIPNSManager ¶
func NewIPNSManager(db *gorm.DB) *IpnsManager
NewIPNSManager is used to generate our model manager
func (*IpnsManager) CreateEntry ¶
func (im *IpnsManager) CreateEntry(ipnsHash, ipfsHash, key, networkName, username string, lifetime, ttl time.Duration) (*IPNS, error)
CreateEntry is used to create a brand new IPNS entry in our database
func (*IpnsManager) FindByIPNSHash ¶
func (im *IpnsManager) FindByIPNSHash(ipnsHash string) (*IPNS, error)
FindByIPNSHash is used to find an IPNS record from our database searching for the public key hash of the key that was used to pulish a record
func (*IpnsManager) FindByUserName ¶ added in v1.0.4
func (im *IpnsManager) FindByUserName(username string) (*[]IPNS, error)
FindByUserName is used to find all IPNS entries published by a given user
func (*IpnsManager) UpdateIPNSEntry ¶
func (im *IpnsManager) UpdateIPNSEntry(ipnsHash, ipfsHash, networkName, username string, lifetime, ttl time.Duration) (*IPNS, error)
UpdateIPNSEntry is used to update an already existing IPNS entry, creating a no record matching the hash exists
type PaymentManager ¶
PaymentManager is used to interact with payment information in our database
func NewPaymentManager ¶
func NewPaymentManager(db *gorm.DB) *PaymentManager
NewPaymentManager is used to generate our payment manager helper
func (*PaymentManager) ConfirmPayment ¶ added in v1.0.2
func (pm *PaymentManager) ConfirmPayment(txHash string) (*Payments, error)
ConfirmPayment is used to mark a payment as confirmed
func (*PaymentManager) FindPaymentByNumber ¶ added in v1.0.5
func (pm *PaymentManager) FindPaymentByNumber(username string, number int64) (*Payments, error)
FindPaymentByNumber is used to find a payment by its payment number
func (*PaymentManager) FindPaymentByTxHash ¶ added in v1.0.2
func (pm *PaymentManager) FindPaymentByTxHash(txHash string) (*Payments, error)
FindPaymentByTxHash is used to find a payment by its tx hash
func (*PaymentManager) GetLatestPaymentNumber ¶ added in v1.0.5
func (pm *PaymentManager) GetLatestPaymentNumber(username string) (int64, error)
GetLatestPaymentNumber is used to get the latest payment number for a user
func (*PaymentManager) NewPayment ¶
func (pm *PaymentManager) NewPayment(number int64, depositAddress string, txHash string, usdValue, chargeAmount float64, blockchain string, paymentType string, username string) (*Payments, error)
NewPayment is used to create a payment in our database
func (*PaymentManager) UpdatePaymentTxHash ¶ added in v1.0.5
func (pm *PaymentManager) UpdatePaymentTxHash(username, txHash string, number int64) (*Payments, error)
UpdatePaymentTxHash UpdatePaymentTxHash is used to update the tx hash of a payment
type Payments ¶ added in v1.0.2
type Payments struct {
gorm.Model
Number int64 `gorm:"type:integer"`
DepositAddress string `gorm:"type:varchar(255)"`
TxHash string `gorm:"type:varchar(255);unique"`
USDValue float64 `gorm:"type:float"` // USDValue is also a "Credit" value, since 1 USD -> 1 Credit
ChargeAmount float64 `gorm:"type:float"`
Blockchain string `gorm:"type:varchar(255)"`
Type string `gorm:"type:varchar(255)"` // ETH, RTC, XMR, BTC, LTC
UserName string `gorm:"type:varchar(255)"`
Confirmed bool `gorm:"type:varchar(255)"`
}
Payments is our payment model
type Record ¶ added in v1.0.6
type Record struct {
gorm.Model
UserName string `gorm:"type:varchar(255)"`
Name string `gorm:"type:varchar(255)"`
RecordKeyName string `gorm:"type:varchar(255)"`
LatestIPFSHash string `gorm:"type:varchar(255)"`
ZoneName string `gorm:"type:varchar(255)"`
MetaData interface{} `gorm:"type:text"` // we need to parse this to a "string json"
}
Record is an entry within a tns zone
type RecordManager ¶ added in v1.0.6
RecordManager is used to manipulate records in our db
func NewRecordManager ¶ added in v1.0.6
func NewRecordManager(db *gorm.DB) *RecordManager
NewRecordManager is used to generate our record manager
func (*RecordManager) AddRecord ¶ added in v1.0.6
func (rm *RecordManager) AddRecord(username, recordName, recordKeyName, zoneName string, metadata map[string]interface{}) (*Record, error)
AddRecord is used to save a record to our database
func (*RecordManager) FindRecordByNameAndUser ¶ added in v1.0.6
func (rm *RecordManager) FindRecordByNameAndUser(username, name string) (*Record, error)
FindRecordByNameAndUser is used to search fro a record by name and user
func (*RecordManager) FindRecordsByZone ¶ added in v1.0.6
func (rm *RecordManager) FindRecordsByZone(username, zoneName string) (*[]Record, error)
FindRecordsByZone is used to find records by zone
func (*RecordManager) UpdateLatestIPFSHash ¶ added in v1.0.6
func (rm *RecordManager) UpdateLatestIPFSHash(username, recordName, ipfsHash string) (*Record, error)
UpdateLatestIPFSHash is used to update the latest IPFS hash that can be used to examine this record
type Upload ¶
type Upload struct {
gorm.Model
Hash string `gorm:"type:varchar(255);not null;"`
Type string `gorm:"type:varchar(255);not null;"` // file, pin
NetworkName string `gorm:"type:varchar(255)"`
HoldTimeInMonths int64 `gorm:"type:integer;not null;"`
UserName string `gorm:"type:varchar(255);not null;"`
GarbageCollectDate time.Time
UserNames pq.StringArray `gorm:"type:text[];not null;"`
Encrypted bool `gorm:"type:bool"`
}
Upload is a file or pin based upload to temporal
type UploadManager ¶
UploadManager is used to manipulate upload objects in the database
func NewUploadManager ¶
func NewUploadManager(db *gorm.DB) *UploadManager
NewUploadManager is used to generate an upload manager interface
func (*UploadManager) FindUploadByHashAndNetwork ¶
func (um *UploadManager) FindUploadByHashAndNetwork(hash, networkName string) (*Upload, error)
FindUploadByHashAndNetwork is used to search for an upload by its hash, and the network it was stored on
func (*UploadManager) FindUploadsByHash ¶
func (um *UploadManager) FindUploadsByHash(hash string) *[]Upload
FindUploadsByHash is used to return all instances of uploads matching the given hash
func (*UploadManager) FindUploadsByNetwork ¶
func (um *UploadManager) FindUploadsByNetwork(networkName string) (*[]Upload, error)
FindUploadsByNetwork is used to find all uploads corresponding to a given network
func (*UploadManager) GetUploadByHashForUser ¶
func (um *UploadManager) GetUploadByHashForUser(hash string, username string) []*Upload
GetUploadByHashForUser is used to retrieve the last (most recent) upload for a user
func (*UploadManager) GetUploads ¶
func (um *UploadManager) GetUploads() (*[]Upload, error)
GetUploads is used to return all uploads
func (*UploadManager) GetUploadsForUser ¶
func (um *UploadManager) GetUploadsForUser(username string) (*[]Upload, error)
GetUploadsForUser is used to retrieve all uploads by a user name
func (*UploadManager) NewUpload ¶
func (um *UploadManager) NewUpload(contentHash, uploadType string, opts UploadOptions) (*Upload, error)
NewUpload is used to create a new upload in the database
func (*UploadManager) RunDatabaseGarbageCollection ¶
func (um *UploadManager) RunDatabaseGarbageCollection() (*[]Upload, error)
RunDatabaseGarbageCollection is used to parse through the database and delete all objects whose GCD has passed TODO: Maybe move this to the database file?
func (*UploadManager) RunTestDatabaseGarbageCollection ¶
func (um *UploadManager) RunTestDatabaseGarbageCollection() (*[]Upload, error)
RunTestDatabaseGarbageCollection is used to run a test garbage collection run. NOTE that this will delete literally every single object it detects.
func (*UploadManager) UpdateUpload ¶
func (um *UploadManager) UpdateUpload(holdTimeInMonths int64, username, contentHash, networkName string) (*Upload, error)
UpdateUpload is used to upadte an already existing upload
type UploadOptions ¶ added in v1.0.6
type UploadOptions struct {
NetworkName string
Username string
HoldTimeInMonths int64
Encrypted bool
}
UploadOptions is used to configure an upload
type User ¶
type User struct {
gorm.Model
UserName string `gorm:"type:varchar(255);unique"`
EmailAddress string `gorm:"type:varchar(255);unique"`
AccountEnabled bool `gorm:"type:boolean"`
EmailEnabled bool `gorm:"type:boolean"`
EmailVerificationToken string `gorm:"type:varchar(255)"`
AdminAccess bool `gorm:"type:boolean"`
HashedPassword string `gorm:"type:varchar(255)"`
Credits float64 `gorm:"type:float;default:0"`
// IPFSKeyNames is an array of IPFS key name this user has created
IPFSKeyNames pq.StringArray `gorm:"type:text[];column:ipfs_key_names"`
// IPFSKeyIDs is an array of public key hashes for IPFS keys this user has created
IPFSKeyIDs pq.StringArray `gorm:"type:text[];column:ipfs_key_ids"`
// IPFSNetworkNames is an array of private IPFS networks this user has access to
IPFSNetworkNames pq.StringArray `gorm:"type:text[];column:ipfs_network_names"`
}
User is our user model for anyone who signs up with Temporal
type UserManager ¶
UserManager is our helper to interact with our database
func NewUserManager ¶
func NewUserManager(db *gorm.DB) *UserManager
NewUserManager is used to generate our user manager helper
func (*UserManager) AddCredits ¶ added in v1.0.3
func (um *UserManager) AddCredits(username string, credits float64) (*User, error)
AddCredits is used to add credits to a user account
func (*UserManager) AddIPFSKeyForUser ¶
func (um *UserManager) AddIPFSKeyForUser(username, keyName, keyID string) error
AddIPFSKeyForUser is used to add a key to a user
func (*UserManager) AddIPFSNetworkForUser ¶
func (um *UserManager) AddIPFSNetworkForUser(username, networkName string) error
AddIPFSNetworkForUser is used to update a users allowed private ipfs networks
func (*UserManager) ChangePassword ¶
func (um *UserManager) ChangePassword(username, currentPassword, newPassword string) (bool, error)
ChangePassword is used to change a users password
func (*UserManager) CheckIfAdmin ¶ added in v1.0.3
func (um *UserManager) CheckIfAdmin(username string) (bool, error)
CheckIfAdmin is used to check if an account is an administrator
func (*UserManager) CheckIfKeyOwnedByUser ¶
func (um *UserManager) CheckIfKeyOwnedByUser(username, keyName string) (bool, error)
CheckIfKeyOwnedByUser is used to check if a key is owned by a user
func (*UserManager) CheckIfUserAccountEnabled ¶
func (um *UserManager) CheckIfUserAccountEnabled(username string) (bool, error)
CheckIfUserAccountEnabled is used to check if a user account is enabled
func (*UserManager) CheckIfUserHasAccessToNetwork ¶
func (um *UserManager) CheckIfUserHasAccessToNetwork(username, networkName string) (bool, error)
CheckIfUserHasAccessToNetwork is used to check if a user has access to a private ipfs network
func (*UserManager) ComparePlaintextPasswordToHash ¶
func (um *UserManager) ComparePlaintextPasswordToHash(username, password string) (bool, error)
ComparePlaintextPasswordToHash is a helper method used to validate a users password
func (*UserManager) FindByEmail ¶ added in v1.0.6
func (um *UserManager) FindByEmail(email string) (*User, error)
FindByEmail is used to find a particular user based on their email address
func (*UserManager) FindByUserName ¶ added in v1.0.2
func (um *UserManager) FindByUserName(username string) (*User, error)
FindByUserName is used to find a user by their username
func (*UserManager) FindEmailByUserName ¶
func (um *UserManager) FindEmailByUserName(username string) (map[string]string, error)
FindEmailByUserName is used to find an email address by searching for the users eth address the returned map contains their eth address as a key, and their email address as a value
func (*UserManager) GenerateEmailVerificationToken ¶ added in v1.0.6
func (um *UserManager) GenerateEmailVerificationToken(username string) (*User, error)
GenerateEmailVerificationToken is used to generate a token we use to validate that the user actually owns the email they are signing up with
func (*UserManager) GetCreditsForUser ¶ added in v1.0.2
func (um *UserManager) GetCreditsForUser(username string) (float64, error)
GetCreditsForUser is used to get the user's current credits
func (*UserManager) GetKeyIDByName ¶
func (um *UserManager) GetKeyIDByName(username, keyName string) (string, error)
GetKeyIDByName is used to get the ID of a key by searching for its name
func (*UserManager) GetKeysForUser ¶
func (um *UserManager) GetKeysForUser(username string) (map[string][]string, error)
GetKeysForUser is used to get a mapping of a users keys
func (*UserManager) GetPrivateIPFSNetworksForUser ¶
func (um *UserManager) GetPrivateIPFSNetworksForUser(username string) ([]string, error)
GetPrivateIPFSNetworksForUser is used to get a list of allowed private ipfs networks for a user
func (*UserManager) NewUserAccount ¶
func (um *UserManager) NewUserAccount(username, password, email string) (*User, error)
NewUserAccount is used to create a new user account
func (*UserManager) RemoveCredits ¶ added in v1.0.2
func (um *UserManager) RemoveCredits(username string, credits float64) (*User, error)
RemoveCredits is used to remove credits from a users balance
func (*UserManager) RemoveIPFSNetworkForUser ¶ added in v1.1.0
func (um *UserManager) RemoveIPFSNetworkForUser(username, networkName string) error
RemoveIPFSNetworkForUser is used to remove a configured ipfs network from the users authorized networks
func (*UserManager) ResetPassword ¶ added in v1.0.6
func (um *UserManager) ResetPassword(username string) (string, error)
ResetPassword is used to reset a user's password if they forgot it
func (*UserManager) SignIn ¶
func (um *UserManager) SignIn(username, password string) (bool, error)
SignIn is used to authenticate a user, and check if their account is enabled. Returns bool on succesful login, or false with an error on failure
func (*UserManager) ToggleAdmin ¶ added in v1.0.6
func (um *UserManager) ToggleAdmin(username string) (bool, error)
ToggleAdmin toggles the admin permissions of given user
func (*UserManager) ValidateEmailVerificationToken ¶ added in v1.0.6
func (um *UserManager) ValidateEmailVerificationToken(username, token string) (*User, error)
ValidateEmailVerificationToken is used to validate an email token to enable email access
type Zone ¶ added in v1.0.6
type Zone struct {
gorm.Model
UserName string `gorm:"type:varchar(255)"`
Name string `gorm:"type:varchar(255)"`
ManagerPublicKeyName string `gorm:"type:varchar(255)"`
ZonePublicKeyName string `gorm:"type:varchar(255)"`
LatestIPFSHash string `gorm:"type:varchar(255)"`
RecordNames pq.StringArray `gorm:"type:text[]"`
}
Zone is a TNS zone
type ZoneManager ¶ added in v1.0.6
ZoneManager is used to manipulate zone entries in the database
func NewZoneManager ¶ added in v1.0.6
func NewZoneManager(db *gorm.DB) *ZoneManager
NewZoneManager is used to generate our zone manager helper to interact with the db
func (*ZoneManager) AddRecordForZone ¶ added in v1.0.6
func (zm *ZoneManager) AddRecordForZone(zoneName, recordName, username string) (*Zone, error)
AddRecordForZone is used to add a record to a zone
func (*ZoneManager) CheckIfRecordExistsInZone ¶ added in v1.0.6
func (zm *ZoneManager) CheckIfRecordExistsInZone(zoneName, recordName, username string) (bool, error)
CheckIfRecordExistsInZone is used to check if a record exists in a particular zone
func (*ZoneManager) FindZoneByNameAndUser ¶ added in v1.0.6
func (zm *ZoneManager) FindZoneByNameAndUser(name, username string) (*Zone, error)
FindZoneByNameAndUser is used to lookup a zone by name and user
func (*ZoneManager) NewZone ¶ added in v1.0.6
func (zm *ZoneManager) NewZone(username, name, managerPK, zonePK, latestIPFSHash string) (*Zone, error)
NewZone is used to create a new zone in the database
func (*ZoneManager) UpdateLatestIPFSHashForZone ¶ added in v1.0.6
func (zm *ZoneManager) UpdateLatestIPFSHashForZone(name, username, hash string) (*Zone, error)
UpdateLatestIPFSHashForZone is used to update the latest IPFS hash for a zone file