user

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2018 License: BSD-3-Clause Imports: 11 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DigitalWalletIsAuthorized

func DigitalWalletIsAuthorized(scope string, scopePrefix string, authorizedLabels []DigitalWalletAuthorization) (authorized bool)

DigitalWalletIsAuthorized checks if a digital wallet is authorized

func InitModels

func InitModels()

InitModels initialize models in mongo, if required.

func IsValidLabel added in v0.9.9

func IsValidLabel(label string) (valid bool)

func LabelledPropertyIsAuthorized

func LabelledPropertyIsAuthorized(scope string, scopePrefix string, authorizedLabels []AuthorizationMap) (authorized bool)

LabelledPropertyIsAuthorized checks if a labelled property is authorized

func OwnerOfIsAuthorized added in v0.9.8

func OwnerOfIsAuthorized(scope string, scopePrefix string, authorizedOwnerOfs []string) bool

func ValidateEmailAddress

func ValidateEmailAddress(emailAddress string) bool

func ValidateName added in v0.9.15

func ValidateName(name string) bool

func ValidatePhoneNumber

func ValidatePhoneNumber(phoneNumber string) bool

func ValidateUsername

func ValidateUsername(username string) bool

Types

type Address

type Address struct {
	City       string `json:"city" validate:"max=30"`
	Country    string `json:"country" validate:"max=40"`
	Nr         string `json:"nr" validate:"max=10"`
	Other      string `json:"other" validate:"max=30"`
	Postalcode string `json:"postalcode" validate:"max=20"`
	Street     string `json:"street" validate:"max=50"`
	Label      string `json:"label" validate:"regexp=^[a-zA-Z\d\-_\s]{2,50}$"`
}

func (Address) Validate added in v0.9.9

func (a Address) Validate() bool

type Authorization

type Authorization struct {
	Addresses               []AuthorizationMap           `json:"addresses,omitempty"`
	BankAccounts            []AuthorizationMap           `json:"bankaccounts,omitempty"`
	DigitalWallet           []DigitalWalletAuthorization `json:"digitalwallet,omitempty"`
	EmailAddresses          []AuthorizationMap           `json:"emailaddresses,omitempty"`
	ValidatedEmailAddresses []AuthorizationMap           `json:"validatedemailaddresses,omitempty"`
	Facebook                bool                         `json:"facebook,omitempty"`
	Github                  bool                         `json:"github,omitempty"`
	GrantedTo               string                       `json:"grantedTo"`
	Organizations           []string                     `json:"organizations"`
	Phonenumbers            []AuthorizationMap           `json:"phonenumbers,omitempty"`
	ValidatedPhonenumbers   []AuthorizationMap           `json:"validatedphonenumbers,omitempty"`
	PublicKeys              []AuthorizationMap           `json:"publicKeys,omitempty"`
	Username                string                       `json:"username"`
	Name                    bool                         `json:"name"`
	OwnerOf                 OwnerOf                      `json:"ownerof,omitempty"`
	Avatars                 []AuthorizationMap           `json:"avatars,omitempty"`
	KeyStore                bool                         `json:"keystore,omitempty"`
	See                     bool                         `json:"see,omitempty"`
}

Authorization defines what userinformation is authorized to be seen by an organization For an explanation about scopes and scopemapping, see https://github.com/itsyouonline/identityserver/blob/master/docs/oauth2/scopes.md

func (Authorization) ContainsOrganization

func (authorization Authorization) ContainsOrganization(globalid string) bool

func (Authorization) FilterAuthorizedScopes

func (authorization Authorization) FilterAuthorizedScopes(requestedscopes []string) (authorizedScopes []string)

FilterAuthorizedScopes filters the requested scopes to the ones this Authorization covers

func (*Authorization) Merge added in v0.9.15

func (auth *Authorization) Merge(a *Authorization)

Merge merges 2 authorizations.

type AuthorizationMap

type AuthorizationMap struct {
	RequestedLabel string `json:"requestedlabel"`
	RealLabel      string `json:"reallabel"`
	Scope          string `json:"scope" bson:"scope,omitempty"` // "write" or nothing (for now)
}

type Avatar added in v0.9.14

type Avatar struct {
	Label  string `json:"label"`
	Source string `json:"source"`
}

Avatar represents an avatar for a user. It is identified by a label, and stirng contains a link to the source

type BankAccount

type BankAccount struct {
	Bic     string `json:"bic"`
	Country string `json:"country"`
	Iban    string `json:"iban"`
	Label   string `json:"label" validate:"regexp=^[a-zA-Z\d\-_\s]{2,50}$"`
}

func (BankAccount) Validate added in v0.9.9

func (bank BankAccount) Validate() bool

type ContractSigningRequest

type ContractSigningRequest struct {
	ContractId string `json:"contractId"`
	Party      string `json:"party"`
}

type DigitalAssetAddress

type DigitalAssetAddress struct {
	CurrencySymbol string      `json:"currencysymbol"`
	Address        string      `json:"address"`
	Label          string      `json:"label" validate:"regexp=^[a-zA-Z\d\-_\s]{2,50}$"`
	Expire         db.DateTime `json:"expire"`
	Noexpiration   bool        `json:"noexpiration"`
}

func (DigitalAssetAddress) Validate added in v0.9.9

func (d DigitalAssetAddress) Validate() bool

type DigitalWalletAuthorization

type DigitalWalletAuthorization struct {
	AuthorizationMap
	Currency string `json:"currency"`
}

type EmailAddress

type EmailAddress struct {
	EmailAddress string `json:"emailaddress" validate:"max=100"`
	Label        string `json:"label" validate:"regexp=^[a-zA-Z\d\-_\s]{2,50}$"`
}

func (EmailAddress) Validate added in v0.9.9

func (e EmailAddress) Validate() bool

type FBInfo

type FBInfo struct {
	Id      string
	Picture FacebookDataPic
	Link    string
	Name    string
}

type FacebookAccount

type FacebookAccount struct {
	Id      string `json:"id"`
	Picture string `json:"picture"`
	Link    string `json:"link"`
	Name    string `json:"name"`
}

type FacebookDataPic

type FacebookDataPic struct {
	Data FacebookPic
}

type FacebookError

type FacebookError struct {
	Message    string
	Type       string
	Code       int
	Fbtrace_id string
}

type FacebookPic

type FacebookPic struct {
	Is_silhouette bool
	Url           string
}

type GithubAccount

type GithubAccount struct {
	Login      string `json:"login"`
	Id         int    `json:"id"`
	Avatar_url string `json:"avatar_url"`
	Html_url   string `json:"html_url"`
	Name       string `json:"name"`
}

type JoinOrganizationRequest

type JoinOrganizationRequest struct {
	Organization string   `json:"organization"`
	Role         []string `json:"role"`
	User         string   `json:"user"`
}

type Label

type Label string

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager is used to store users

func NewManager

func NewManager(r *http.Request) *Manager

NewManager creates and initializes a new Manager

func (*Manager) AvatarFileExists added in v0.9.14

func (m *Manager) AvatarFileExists(hash string) (bool, error)

AvatarFileExists checks if an avatarfile with a given hash already exists

func (*Manager) Delete

func (m *Manager) Delete(u *User) error

Delete a user.

func (*Manager) DeleteAllAuthorizations

func (m *Manager) DeleteAllAuthorizations(organization string) (err error)

DeleteAllAuthorizations removes all authorizations from an organization

func (*Manager) DeleteAuthorization

func (m *Manager) DeleteAuthorization(username, organization string) (err error)

DeleteAuthorization removes an authorization

func (*Manager) DeleteFacebookAccount

func (m *Manager) DeleteFacebookAccount(username string) (err error)

func (*Manager) DeleteGithubAccount

func (m *Manager) DeleteGithubAccount(username string) (err error)

func (*Manager) Exists

func (m *Manager) Exists(username string) (bool, error)

Exists checks if a user with this username already exists.

func (*Manager) FilterUsersWithAuthorizations added in v1.0.0

func (m *Manager) FilterUsersWithAuthorizations(usernames []string, organization string) ([]string, error)

FilterUsersWithAuthorizations returns the authorizations granted to an organization

func (*Manager) Get

func (m *Manager) Get(id string) (*User, error)

Get user by ID.

func (*Manager) GetAuthorization

func (m *Manager) GetAuthorization(username, organization string) (authorization *Authorization, err error)

GetAuthorization returns the authorization for a specific organization, nil if no such authorization exists

func (*Manager) GetAuthorizationsByUser

func (m *Manager) GetAuthorizationsByUser(username string) (authorizations []Authorization, err error)

GetAuthorizationsByUser returns all authorizations for a specific user

func (*Manager) GetAvatarFile added in v0.9.14

func (m *Manager) GetAvatarFile(hash string) ([]byte, error)

GetAvatarFile gets the avatar file associated with a hash

func (*Manager) GetByEmailAddress added in v0.9.14

func (m *Manager) GetByEmailAddress(email string) (users []string, err error)

func (*Manager) GetByName

func (m *Manager) GetByName(username string) (*User, error)

GetByName gets a user by it's username.

func (*Manager) GetOrganizationAuthorizations

func (m *Manager) GetOrganizationAuthorizations(globalId string) (authorizations []Authorization, err error)

GetOrganizationAuthorizations returns all authorizations for a specific organization

func (*Manager) GetPendingRegistrationsCount

func (m *Manager) GetPendingRegistrationsCount() (int, error)

func (*Manager) RemoveAddress

func (m *Manager) RemoveAddress(username, label string) error

RemoveAddress remove address associated with label

func (*Manager) RemoveAvatar added in v0.9.14

func (m *Manager) RemoveAvatar(username, label string) error

RemoveAvatar removes an avatar

func (*Manager) RemoveAvatarFile added in v0.9.14

func (m *Manager) RemoveAvatarFile(hash string) error

RemoveAvatarFile removes an avatar file

func (*Manager) RemoveBank

func (m *Manager) RemoveBank(u *User, label string) error

RemoveBank remove bank associated with label

func (*Manager) RemoveEmail

func (m *Manager) RemoveEmail(username string, label string) error

RemoveEmail remove email associated with label

func (*Manager) RemoveExpireDate

func (m *Manager) RemoveExpireDate(username string) (err error)

func (*Manager) RemovePhone

func (m *Manager) RemovePhone(username string, label string) error

RemovePhone remove phone associated with label

func (*Manager) RemovePublicKey

func (m *Manager) RemovePublicKey(username string, label string) error

RemovePublicKey remove public key associated with label

func (*Manager) RemoveVirtualCurrency

func (m *Manager) RemoveVirtualCurrency(username string, label string) error

RemoveVirtualCurrency remove phone associated with label

func (*Manager) Save

func (m *Manager) Save(u *User) error

Save a user.

func (*Manager) SaveAddress

func (m *Manager) SaveAddress(username string, address Address) error

SaveAddress save or update address

func (*Manager) SaveAvatar added in v0.9.14

func (m *Manager) SaveAvatar(username string, avatar Avatar) error

SaveAvatar saves a new or updates an existing avatar

func (*Manager) SaveAvatarFile added in v0.9.14

func (m *Manager) SaveAvatarFile(hash string, file []byte) error

SaveAvatarFile saves a new avatar file

func (*Manager) SaveBank

func (m *Manager) SaveBank(u *User, bank BankAccount) error

SaveBank save or update bank account

func (*Manager) SaveEmail

func (m *Manager) SaveEmail(username string, email EmailAddress) error

SaveEmail save or update email along with its label

func (*Manager) SavePhone

func (m *Manager) SavePhone(username string, phonenumber Phonenumber) error

SavePhone save or update phone along with its label

func (*Manager) SavePublicKey

func (m *Manager) SavePublicKey(username string, key PublicKey) error

SavePublicKey save or update public key along with its label

func (*Manager) SaveVirtualCurrency

func (m *Manager) SaveVirtualCurrency(username string, currency DigitalAssetAddress) error

SaveVirtualCurrency save or update virtualcurrency along with its label

func (*Manager) UpdateAuthorization

func (m *Manager) UpdateAuthorization(authorization *Authorization) (err error)

UpdateAuthorization inserts or updates an authorization

func (*Manager) UpdateFacebookAccount

func (m *Manager) UpdateFacebookAccount(username string, facebookaccount FacebookAccount) (err error)

func (*Manager) UpdateGithubAccount

func (m *Manager) UpdateGithubAccount(username string, githubaccount GithubAccount) (err error)

func (*Manager) UpdateName

func (m *Manager) UpdateName(username string, firstname string, lastname string) (err error)

type OwnerOf added in v0.9.8

type OwnerOf struct {
	EmailAddresses []string `json:"emailaddresses"`
}

type Phonenumber

type Phonenumber struct {
	Label       string `json:"label" validate:"regexp=^[a-zA-Z\d\-_\s]{2,50}$"`
	Phonenumber string `json:"phonenumber" validate:"regexp=\+[0-9]{6,50}$"`
}

Phonenumber defines a phonenumber and has functions for validation

func (Phonenumber) Validate added in v0.9.9

func (p Phonenumber) Validate() bool

Validate checks if a phone number is in a valid format

type PublicKey

type PublicKey struct {
	PublicKey string `json:"publickey"`
	Label     string `json:"label" validate:"regexp=^[a-zA-Z\d\-_\s]{2,50}$"`
}

func (PublicKey) Validate added in v0.9.9

func (p PublicKey) Validate() bool

type User

type User struct {
	ID             bson.ObjectId         `json:"-" bson:"_id,omitempty"`
	Addresses      []Address             `json:"addresses"`
	BankAccounts   []BankAccount         `json:"bankaccounts"`
	EmailAddresses []EmailAddress        `json:"emailaddresses"`
	Expire         db.DateTime           `json:"-" bson:"expire,omitempty"`
	Facebook       FacebookAccount       `json:"facebook"`
	Github         GithubAccount         `json:"github"`
	Phonenumbers   []Phonenumber         `json:"phonenumbers"`
	DigitalWallet  []DigitalAssetAddress `json:"digitalwallet"`
	PublicKeys     []PublicKey           `json:"publicKeys"`
	Username       string                `json:"username" validate:"min=2,max=30,regexp=^[a-z0-9]{2,30}$"`
	Firstname      string                `json:"firstname"`
	Lastname       string                `json:"lastname"`
	Avatars        []Avatar              `json:"avatars"`
}

func (*User) GetAddressByLabel

func (u *User) GetAddressByLabel(label string) (address Address, err error)

func (*User) GetAvatarByLabel added in v0.9.14

func (u *User) GetAvatarByLabel(label string) (avatar Avatar, err error)

GetAvatarByLabel gets the avatar associated with this label

func (*User) GetBankAccountByLabel

func (u *User) GetBankAccountByLabel(label string) (bankaccount BankAccount, err error)

func (*User) GetDigitalAssetAddressByLabel

func (u *User) GetDigitalAssetAddressByLabel(label string) (walletAddress DigitalAssetAddress, err error)

func (*User) GetEmailAddressByLabel

func (u *User) GetEmailAddressByLabel(label string) (email EmailAddress, err error)

func (*User) GetPhonenumberByLabel

func (u *User) GetPhonenumberByLabel(label string) (phonenumber Phonenumber, err error)

func (*User) GetPublicKeyByLabel

func (u *User) GetPublicKeyByLabel(label string) (publicKey PublicKey, err error)

GetPublicKeyByLabel Gets the public key associated with this label

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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