Documentation ¶
Index ¶
- Constants
- func ValidBasicEmail(email string) bool
- func ValidRFC2822Email(email string) bool
- type BasicDomain
- type BasicDomainCollection
- type BasicPermission
- type BasicPermissionCollection
- type BasicRole
- type BasicRoleCollection
- type BasicUser
- type BasicUserCollection
- type Domain
- type DomainCollection
- type Pager
- type Paginator
- type Session
- type SessionCollection
- type Sorter
- type Time
- type User
- type UserCollection
Constants ¶
const ( // BasicEmailRegExp is a regular expression that matches 99% of the email // addresses in use today. BasicEmailRegExp = `(?i)[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}` // RFCEmailRegExp - practical implementation of RFC 2822 omitting the // syntax using double quotes (") and square brackets ([]), since not // all applications support the syntax using it. RFCEmailRegExp = `(?i)[A-Z0-9!#$%&'*+/=?^_{|}~-]+` + `(?:\.[A-Z0-9!#$%&'*+/=?^_{|}~-]+)*` + `@(?:[A-Z0-9](?:[A-Z0-9-]*[A-Z0-9])?\.)+` + `[A-Z0-9](?:[A-Z0-9-]*[A-Z0-9])?` )
Variables ¶
This section is empty.
Functions ¶
func ValidBasicEmail ¶
ValidBasicEmail validates email using BasicEmailRegExp regexp
func ValidRFC2822Email ¶
ValidRFC2822Email validates email using RFCEmailRegExp regexp
Types ¶
type BasicDomain ¶
type BasicDomain struct { ID string `json:"id"` Name string `json:"name"` Description string `json:"description"` Enabled bool `json:"enabled"` }
BasicDomain contains basic domain attributes
func NewBasicDomain ¶
func NewBasicDomain(name, description string) *BasicDomain
NewBasicDomain - a constructor for Domain entities
func (*BasicDomain) IsValid ¶
func (d *BasicDomain) IsValid() (bool, error)
IsValid checks if domain is valid
type BasicDomainCollection ¶
type BasicDomainCollection struct { Domains []BasicDomain `json:"domains"` Paginator Paginator `json:"paginator"` }
BasicDomainCollection is a paginated collection of Domain entities
type BasicPermission ¶
type BasicPermission struct { Name string `json:"name"` Description string `json:"description"` EvaluationRule string `json:"evaluation_rule"` Enabled bool `json:"is_enabled"` }
BasicPermission entity
func NewBasicPermission ¶
func NewBasicPermission(name, description string) *BasicPermission
NewBasicPermission create a new BasicPermission entity
type BasicPermissionCollection ¶
type BasicPermissionCollection struct { Permissions []BasicPermission `json:"permissions"` Paginator Paginator `json:"paginator"` }
BasicPermissionCollection is a paginated collection of BasicPermission entities
type BasicRole ¶
type BasicRole struct { Name string `json:"name"` Description string `json:"description"` Enabled bool `json:"is_enabled"` }
BasicRole entity
func NewBasicRole ¶
NewBasicRole create a new BasicRole entity
type BasicRoleCollection ¶
type BasicRoleCollection struct { Roles []BasicRole `json:"roles"` Paginator Paginator `json:"paginator"` }
BasicRoleCollection is a paginated collection of BasicRole entities
type BasicUser ¶
type BasicUser struct { ID string `json:"id"` Name string `json:"name"` Password string `json:"-"` Enabled bool `json:"enabled"` }
BasicUser contains basic user attributes
func NewBasicUser ¶
NewBasicUser - a constructor for `User`
func (*BasicUser) IsPassword ¶
IsPassword checks if a given clear text is user's password
func (*BasicUser) SetPassword ¶
SetPassword hashes a given clearTxt and assigns it to password field
type BasicUserCollection ¶
type BasicUserCollection struct { Users []BasicUser `json:"users"` Paginator Paginator `json:"paginator"` }
BasicUserCollection is a paginated collection of User entities
type Domain ¶
type Domain struct { BasicDomain UsersCount int64 `json:"-"` }
Domain entities represent different tenants which contain User entities. A domain can be either a real domain (e.g myproject.com) or just a logical name of the user group you want to separate everyone into.
type DomainCollection ¶
type DomainCollection struct { Domains []Domain `json:"domains"` Paginator Paginator `json:"paginator"` }
DomainCollection is a paginated collection of Domain entities
type Pager ¶
Pager simply defines pagination request for collections
func (Pager) CreatePaginator ¶
CreatePaginator create paginator with Total and HasNextPage filled in
type Paginator ¶
type Paginator struct { Page int `json:"page"` Total int64 `json:"total"` PerPage int `json:"per_page"` HasNextPage bool `json:"-"` }
Paginator describes pagination of a collection
func (Paginator) TotalPages ¶
TotalPages calculate total number of pages based on Page and PerPage attributes
type Session ¶
type Session struct { ID string `json:"id"` Domain *BasicDomain `json:"domain"` User *BasicUser `json:"user"` UserAgent string `json:"-"` RemoteAddr string `json:"-"` CreatedOn Time `json:"created_on"` UpdatedOn Time `json:"updated_on"` ExpiresOn Time `json:"expires_on"` }
Session structure represents user's time limited session
func NewSession ¶
func NewSession(user BasicUser, domain BasicDomain, userAgent, remoteAddr string) *Session
NewSession create a new Session entity
type SessionCollection ¶
type SessionCollection struct { Sessions []Session `json:"sessions"` Paginator Paginator `json:"paginator"` }
SessionCollection is a paginated collection of Session entities
type Time ¶
Time is a type alias so we could override methods and add our own
func (Time) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface. Time is formatted as RFC3339 instead of RFC3339Nano (original time.Time)
type UserCollection ¶
UserCollection is a paginated collection of User entities