Documentation ¶
Overview ¶
Package sso is a golang SDK for the Bronzecod SSO platforms REST API
it provides type safe bindings for the APIs core features and entities as well as the various API endpoints available to get, enumerate and mutate them.
Index ¶
- Variables
- type APIEndpoints
- type APIUser
- type APIWhitelistEntry
- type APIWhitelistRuleType
- type Connection
- type Membership
- type Notification
- type NotificationAction
- type NotificationEndpoints
- type Organisation
- type OrganisationEndpoints
- type PageDetails
- type Permission
- type PermissionEndpoints
- type PermissionQuery
- func (q *PermissionQuery) AccessEqual(key string, value string) *PermissionQuery
- func (q *PermissionQuery) AccessHas(key string, value string) *PermissionQuery
- func (q *PermissionQuery) AccessLike(key string, value string) *PermissionQuery
- func (q *PermissionQuery) AccessPresent(key string) *PermissionQuery
- func (q *PermissionQuery) IsValid() bool
- func (q *PermissionQuery) Limit(limit int) *PermissionQuery
- func (q *PermissionQuery) Page(page int) *PermissionQuery
- func (q *PermissionQuery) Product(id uuid.UUID) *PermissionQuery
- func (q *PermissionQuery) Source(id uuid.UUID) *PermissionQuery
- func (q *PermissionQuery) Target(id uuid.UUID) *PermissionQuery
- type PermissionSubject
- type PermissionType
- type Session
- type SessionEndpoints
- type Team
- type TeamsEndpoints
- type User
- type UserEndpoints
Constants ¶
This section is empty.
Variables ¶
var (
ErrQueryNoSubject = errors.New("must supply a source, target or product to query")
)
Functions ¶
This section is empty.
Types ¶
type APIEndpoints ¶ added in v1.1.1
type APIEndpoints interface { // APICheckCredentials attempts to get an API user by its provided Key // checking its credentials match, it has access to the provided service key // and the IP is valid in its whitelist. // it returns the API if the above conditions are met, or an error explaining the conditions failed APICheckCredentials(key, secret, ip, service string) (APIUser, error) // APIPlatformList returns a list of API users for the platform the requester is part of // on the condition the requesting API is one authorized to do so. // else it returns an error APIPlatformList() ([]APIUser, error) // APIGet will attempt to get an API by its canonical UUID, so long as it is part of the same platform as the requestor // and the requestor has permission to make the request. APIGet(id uuid.UUID) (APIUser, error) // APIList returns a list of platform APIs whose IDs are found in the provided list APIList(ids []uuid.UUID) ([]APIUser, error) // APICreate will create a new API user in the platform with the provided details // the APIs key is generated during creation and is found in the returned APIUser. APICreate(email, name, password string, whitelist []APIWhitelistEntry, permissions map[string]string, product uuid.UUID) (APIUser, error) // APIUpdateDetails updates the identified APIs details with the provided name and contact email APIUpdateDetails(id uuid.UUID, name, email string) error // APIUpdatePermissions updates the identified APIs access permission map with the provided set // if merge is true, the existing permissions will be merged with the provided set // otherwise it will replace the permissions entirely with those provided APIUpdatePermissions(id uuid.UUID, permissions map[string]string, merge bool) error // APIDelete removes an APIUser from the platform, // also deleting all owned by the API user, and all permissions pointing to it. // If the API user is owner of a target (has "Owner"=>"true" permission flag) this process will abort APIDelete(id uuid.UUID) error }
type APIUser ¶
type APIUser struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` Key string `json:"key"` Email string `json:"email"` Name string `json:"name"` Platform uuid.UUID `json:"platform"` Permission string `json:"permission"` Whitelist []APIWhitelistEntry `json:"whitelist"` Organisation *uuid.UUID `json:"organisation"` }
APIUser represents a set of API credentials existing in a platform
type APIWhitelistEntry ¶
type APIWhitelistEntry struct { Label string `json:"label"` Type APIWhitelistRuleType `json:"type"` Rule string `json:"rule"` }
APIWhitelistEntry represents a single rule in an APIs whitelist
type APIWhitelistRuleType ¶
type APIWhitelistRuleType string
APIWhitelistRuleType is a string enumeration of supported rule types for API Whitelists
const ( // APIWhitelistTypeIP indicates a whitelist rule whitelists a single IP address APIWhitelistTypeIP APIWhitelistRuleType = "ipAddress" // APIWhitelistTypeRange indicates a whitelist rule whitelists a range of IP addresses APIWhitelistTypeRange APIWhitelistRuleType = "ipRange" // APIWhitelistTypeRegex indicates a whitelist rule allows all IP addresses that match the rules regular expression APIWhitelistTypeRegex APIWhitelistRuleType = "regex" )
list of API Whitelist Rule Types
type Connection ¶
type Connection interface { APIEndpoints SessionEndpoints UserEndpoints TeamsEndpoints PermissionEndpoints OrganisationEndpoints NotificationEndpoints // SetCache sets a cache manager to allow api calls to be cached and reduce round trip times for common queries SetCache(cache bufferCache.BufferCache) // GetID gets the ID of the API user the SDK is connected as GetID() uuid.UUID // GetPlatformID gets the ID of the white label platform the API is connected as a part of GetPlatformID() uuid.UUID // GetHost gets the default hostname the platform is configured for GetHost() string // GetCookieKey gets the key the platform is configured for its session cookies to use GetCookieKey() string // UtilGetCookie gets the value of the cookie on the provided request (if it exists) that corresponds to a session // in this APIs platform UtilGetCookie(r *http.Request) string // UtilGetChildPlatformCookie gets the value of the cookie on the provided request (if it exists) that corresponds to // a session on the identified platform so long as that platform is either the current one, or one of its child platforms UtilGetChildPlatformCookie(r *http.Request, platform uuid.UUID) (string, error) // UtilSetSessionCookie sets a session cookie for this platform, equivalent to the user logging in through the dashboard UtilSetSessionCookie(w http.ResponseWriter, domain, path string, session Session) }
Connection is an instance of a connection to the bronzecod SSO server each function corresponds to a synchronous API call to the server
type Membership ¶
type Membership struct { CreateAt time.Time `json:"createAt"` UpdatedAt time.Time `json:"updatedAt"` DeletedAt *time.Time `json:"deletedAt"` Team uuid.UUID `json:"team"` User uuid.UUID `json:"user"` Label string `json:"label"` Email string `json:"email"` Admin bool `json:"admin"` }
Membership respresents a users access to a team
type Notification ¶ added in v1.1.9
type Notification struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` DeletedAt *time.Time `json:"deletedAt"` Platform uuid.UUID `json:"platform"` Source *uuid.UUID `json:"source"` Target []uuid.UUID `json:"target"` Type string `json:"type"` Title string `json:"title"` Description string `json:"description"` Actions []NotificationAction `json:"actions"` }
Notification represents a notification visible to a user in their dashboard containing details for visualization in the dashboard and who it is visible too
type NotificationAction ¶ added in v1.1.9
type NotificationAction struct { Type string `json:"type"` Label string `json:"label"` Event string `json:"event"` }
NotificationAction define action buttons presented as part of a notification in the dashboard
type NotificationEndpoints ¶ added in v1.1.9
type NotificationEndpoints interface { // NotificationNew creates a new notification in the platform with the given details // the source is optional for read/display, an empty target list will create a platform wide notification // the remaining type, title, description and actions are used for rendering the notification in the user dashboard NotificationNew(source *uuid.UUID, targets []uuid.UUID, msgType, title, description string, actions []NotificationAction, platform *uuid.UUID) (Notification, error) // NotificationDelete deletes the identified notification from the platform, removing it from all users visibility NotificationDelete(id uuid.UUID) error }
type Organisation ¶ added in v1.1.0
type Organisation struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` Platform uuid.UUID `json:"platform"` Name string `json:"name"` Logo string `json:"logo"` UserLimit int `json:"userLimit"` TeamLimit int `json:"teamLimit"` PermissionLimit int `json:"permissionLimit"` }
Organisation represents a user facing organisational unit, used for building enterprise entities in consumer facing dashboards. An organisation consists of public facing identifiers (name and logo) and a set of constraints on the number of users, teams and permissions that may exist as members of an organisation (a value of 0 denotes no limitation).
Teams are the base unit attached to an organisation and are limited directly Users are counted as unique users that are members of those teams, and Permissions are counted as permissions to unique targets from those teams
type OrganisationEndpoints ¶ added in v1.1.1
type OrganisationEndpoints interface { // OrganisationList will load all organisations in the platform OrganisationList() ([]Organisation, error) // OrganisationsUserManages will load all organisations the identified user is a manager of OrganisationsUserManages(userID uuid.UUID) ([]Organisation, error) // OrganisationsUserMember will load all organisations the identified user is a member of OrganisationsUserMember(userID uuid.UUID) ([]Organisation, error) // OrganisationGet will load the identified organisation from the platform OrganisationGet(id uuid.UUID) (Organisation, error) // OrganisationGetManagers will load all the memberships identifying the managers of the identified organisation OrganisationGetManagers(orgID uuid.UUID) ([]Membership, error) // OrganisationGetUsers will load all users who are members of the identified organisation OrganisationGetUsers(orgID uuid.UUID) ([]User, error) // OrganisationGetTeams will load all teams making a part of the organisation OrganisationGetTeams(orgID uuid.UUID) ([]Team, error) // OrganisationHasManager checks if the identified user is a manager of the identified organisation OrganisationHasManager(orgID, userID uuid.UUID) (bool, error) // OrganisationManagerToEntity checks if the identified manager, manages the organisation containing the user,api or team targeted OrganisationManagerToEntity(managerID, targetID uuid.UUID) (bool, error) // OrganisationNew creates a new organisation in the platform with the given name logo and constraints // any teams whose ID are in the provided list will be added to the organisation // (unless they are part of another organisation, which will generate an error) OrganisationNew(name, logo string, userLimit, teamLimit, permissionLimit int, teamIDs []uuid.UUID) (Organisation, error) // OrganisationUpdateDetails will update the identified organisation's name and logo OrganisationUpdateDetails(id uuid.UUID, name, logo string) error // OrganisationUpdateConstraints will update the identified organisations constraint limits on the number of users, // teams and permissions it may have OrganisationUpdateConstraints(id uuid.UUID, userLimit, teamLimit, permissionLimit int) error // OrganisationDelete will delete the identified organisation, removing its teams from it, but without deleting them OrganisationDelete(id uuid.UUID) error // OrganisationTeamAddExisting will add an existing team to the identified organisation OrganisationTeamAddExisting(orgID, teamID uuid.UUID) error // OrganisationTeamAddNew will create a new team in the organisation with the provided name and first admin member OrganisationTeamAddNew(orgID uuid.UUID, teamName string, firstMember uuid.UUID) error // OrganisationTeamRemove will remove the identified team from the identified organisation OrganisationTeamRemove(orgID, teamID uuid.UUID) error // OrganisationManagerAdd will add the specified user as a manager of the organisation OrganisationManagerAdd(orgID, userID uuid.UUID) error OrganisationManagerUpdateLabels(orgID, manager uuid.UUID, name, email string) error // OrganisationManagerSetAdmin will change the identified manager of an organisations status as an administrator // of that organisation to the provided value OrganisationManagerSetAdmin(orgID, manager uuid.UUID, admin bool) error // OrganisationManagerRemove will remove the provided user as a manager of the organisation OrganisationManagerRemove(orgID, user uuid.UUID) error }
type PageDetails ¶
PageDetails wraps pagination requests that either limit the number of results returned to "Size" and/or offset the results to "Page" increments of size (starting at 0)
type Permission ¶
type Permission struct { ID uint `json:"id"` CreateAt time.Time `json:"createAt"` UpdatedAt time.Time `json:"updatedAt"` DeletedAt *time.Time `json:"deletedAt"` Product uuid.UUID `json:"product"` Title string `json:"title"` Source uuid.UUID `json:"source"` Target uuid.UUID `json:"target"` Access map[string]string `json:"access"` Name string `json:"name,omitempty"` // name of the source team/user/api if known Type PermissionType `json:"type,omitempty"` // type of source, see below }
Permission is the access of a user/team to a given target
type PermissionEndpoints ¶ added in v1.1.1
type PermissionEndpoints interface { // PermissionSubjectsAvailable returns a list of subjects (teams, users, apis) that are available as permission // subjects in your platform (intended for use in administrative tools only, no scoping is provided) PermissionSubjectsAvailable(types []PermissionType, childPlatform *uuid.UUID) ([]PermissionSubject, error) // PermissionSubjectsGet returns a single subject (team, user or api) that has the corresponding ID in your platform PermissionSubjectsGet(id uuid.UUID) (PermissionSubject, error) // PermissionOwner gets the current owner permission for the provided target PermissionOwner(target uuid.UUID) (Permission, error) // PermissionLinks gets a list of all permissions that give source access to target PermissionLinks(source, target uuid.UUID, page *PageDetails) ([]Permission, error) // PermissionListForTarget gets a list of all permissions that target the identified target. // if a list of products is specified, only permissions of those products will be returned. // an empty array or nil will return all permissions for the target PermissionListForTarget(target uuid.UUID, products []uuid.UUID, page *PageDetails) ([]Permission, error) // PermissionListForSource gets a list of all permissions the provided source has. // if a product is provided it will limit the results to only permissions of that product type. // a nil product will return all permissions for the source PermissionListForSource(source uuid.UUID, product *uuid.UUID, page *PageDetails) ([]Permission, error) // PermissionQuery conducts a generic query of permissions within the callers platform PermissionQuery(query PermissionQuery) ([]Permission, error) // PermissionNew creates a new permission giving source access to target. // identifies the product this permission belongs to and sets the current label and access permissions PermissionNew(source, target, product uuid.UUID, label string, permissions map[string]string) (Permission, error) // PermissionNewBatch creates a list of new permissions for a group of sources to a given target PermissionNewBatch(sources []uuid.UUID, target, product uuid.UUID, label string, permissions map[string]string) (Permission, error) // PermissionRename renames all permissions for a given target to reflect a change in targets identifiable name PermissionRename(target uuid.UUID, label string) error // PermissionUpdate updates the identified permissions access rules // if merge is true, the provided list will keep existing rules, only overriding those defined here // if false, the permissions are set to the provided map // NOTE: this will never change the ownership flag PermissionUpdate(id uint, permission map[string]string, merge bool) error // PermissionUpdateForTarget will merge the provided permission map for all permissions to the target of the given product // NOTE: this will never change the ownership flag PermissionUpdateForTarget(target uuid.UUID, permission map[string]string, product uuid.UUID) error // PermissionTransferOwnership will transfer the current owner of target to recipient // NOTE: only one permission for a target may be owner at a time PermissionTransferOwnership(target, recipient uuid.UUID) error // PermissionDelete will remove a given permission and its associated access PermissionDelete(id uint) error // PermissionDeleteLinks will remove all direct permissions from source to target // NOTE: this will not alter indirect permissions such as a users access to target through a team they are a member of PermissionDeleteLinks(source, target uuid.UUID) error // PermissionDeleteTarget will delete all permissions referencing target, optionally restricted to the listed product families PermissionDeleteTarget(target uuid.UUID, products []uuid.UUID) error // PermissionDeleteBatch will delete all permissions in the provided list of IDs PermissionDeleteBatch(ids []uint) error }
type PermissionQuery ¶
type PermissionQuery struct {
// contains filtered or unexported fields
}
PermissionQuery wraps the details to query platform permissions by source, target or product, with further optional query by access keys subject to different conditions
NOTE: permission conditions behave as a logical OR with each other i.e. "Owner" equals "true" OR "Admin" equals "true" OR "team" has token "edit-members"
func PermissionQueryByProduct ¶
func PermissionQueryByProduct(id uuid.UUID) *PermissionQuery
PermissionQueryByProduct creates a new query that will return permissions with the given product
func PermissionQueryBySource ¶
func PermissionQueryBySource(id uuid.UUID) *PermissionQuery
PermissionQueryBySource creates a new query that will return permissions with the given source
func PermissionQueryByTarget ¶
func PermissionQueryByTarget(id uuid.UUID) *PermissionQuery
PermissionQueryByTarget creates a new query that will return permissions with the given target
func (*PermissionQuery) AccessEqual ¶
func (q *PermissionQuery) AccessEqual(key string, value string) *PermissionQuery
AccessEqual queries for permissions who's permissions under the given key exactly matches the provided value
func (*PermissionQuery) AccessHas ¶
func (q *PermissionQuery) AccessHas(key string, value string) *PermissionQuery
AccessHas queries for permissions that have a given token in the given access key
func (*PermissionQuery) AccessLike ¶
func (q *PermissionQuery) AccessLike(key string, value string) *PermissionQuery
AccessLike queries for permissions that have a matching token (or partial token) in the given access key
func (*PermissionQuery) AccessPresent ¶
func (q *PermissionQuery) AccessPresent(key string) *PermissionQuery
AccessPresent queries for permissions that have the provided permission key present in any form
func (*PermissionQuery) IsValid ¶
func (q *PermissionQuery) IsValid() bool
IsValid returns whether the provided query is a valid query that can be executed
func (*PermissionQuery) Limit ¶
func (q *PermissionQuery) Limit(limit int) *PermissionQuery
func (*PermissionQuery) Page ¶
func (q *PermissionQuery) Page(page int) *PermissionQuery
func (*PermissionQuery) Product ¶
func (q *PermissionQuery) Product(id uuid.UUID) *PermissionQuery
Product sets the query to only find permissions of the given product
func (*PermissionQuery) Source ¶
func (q *PermissionQuery) Source(id uuid.UUID) *PermissionQuery
Source sets the query to find permissions with the given source
func (*PermissionQuery) Target ¶
func (q *PermissionQuery) Target(id uuid.UUID) *PermissionQuery
Target sets the query to find permissions with the given target
type PermissionSubject ¶
type PermissionSubject struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` Name string `json:"name"` Email string `json:"email"` Type PermissionType `json:"type"` Platform uuid.UUID `json:"platform"` Organisation *uuid.UUID `json:"organisation"` }
type PermissionType ¶
type PermissionType string
PermissionType is the type of entity that has access to the target
const ( // PermissionTypeUnknown the source of the permission is not recorded in the platforms sso PermissionTypeUnknown PermissionType = "unknown" // PermissionTypeTeam the source of the permission is a group/team PermissionTypeTeam PermissionType = "team" // PermissionTypeUser the source of the permission is a user account PermissionTypeUser PermissionType = "user" // PermissionTypeAPI the source of the permission is an API account PermissionTypeAPI PermissionType = "api" )
type Session ¶
type Session struct { Key string `json:"key"` CreatedAt time.Time `json:"createdAt"` Expires time.Time `json:"expires"` Revoked bool `json:"revoked"` UserID uuid.UUID `json:"userID"` Component string `json:"component"` }
Session represents a current user session, where key is the value stored in the cookie
type SessionEndpoints ¶ added in v1.1.1
type SessionEndpoints interface { // SessionList will list all sessions that correspond to the provided user ID // component will optionally restrict the returned sessions to that component, use an empty string ("") for all SessionList(user uuid.UUID, component string) ([]Session, error) // SessionCheck checks if the given session token is valid SessionCheck(token string) (bool, error) // SessionKey will get the current platforms session key (cookie key), or, if a parent platform, // the session key of one of it child platforms SessionKey(platform *uuid.UUID) (string, error) // SessionLogin creates a new session for a user given the provided credentials // component namespaces the session and represents the tool/platform the session exists for. // the default is "Web", common alternatives are "Mobile-App", "Desktop" and "Admin-Portal" // // The return values are // the user the credentials correspond to // the session key to assign to a cookie or other mechanism to identify the new session // any errors encountered processing the request SessionLogin(username, password, component string) (User, Session, error) // SessionLogout till terminate the session corresponding to the provided key, making it invalid for further authentication SessionLogout(key string) error // SessionRevokeOther will revoke all of a users sessions other than the one with the provided session key // component may be used to restrict that to a certain component, if an empty string, it will revoke sessions in all components SessionRevokeOther(key, component string) error // SessionExtend will extend the session with the provided key to the current time + the platforms configured extension time (see platform config) SessionExtend(key string) error // SessionMigrateRequest creates a session migration token and url. // to migrate a users session to the new domain, redirect them to the provided URL // after authenticating their account, they will be redirected to returnURL with the additional // query parameter `return` which should match token. // Pass the value of return to SessionMigrateResolve to retrieve the user and session details, so they // may be applied to the new domain SessionMigrateRequest(returnURL, component string) (token string, url string, err error) // SessionMigrateResolve will collect the session migration data corresponding to the provided token // to initiate a migrate request see SessionMigrateRequest SessionMigrateResolve(token string) (User, Session, error) }
type Team ¶
type Team struct { ID uuid.UUID `json:"id"` Name string `json:"name"` Admin *bool `json:"admin,omitempty"` Members []Membership `json:"members"` Organisation *uuid.UUID `json:"organisation"` }
Team represents a group of users/apis that have access to entities as a group
type TeamsEndpoints ¶ added in v1.1.1
type TeamsEndpoints interface { // TeamGet will load a team from the platform with the given ID TeamGet(id uuid.UUID) (Team, error) // TeamPlatform will load all teams in the current platform TeamPlatform() ([]Team, error) // TeamListForUser will list all teams the identified user has access too TeamListForUser(userID uuid.UUID) ([]Team, error) // TeamMemberExists identifies if a given User is a member of the given Team TeamMemberExists(team, user uuid.UUID) (bool, error) // TeamMemberGet retrieves a users membership to a team TeamMemberGet(team, user uuid.UUID) (Membership, error) // TeamMemberListForTeam lists all memberships for the identified team TeamMemberListForTeam(team uuid.UUID) ([]Membership, error) // TeamMemberListForUser lists all memberships a given user has TeamMemberListForUser(userID uuid.UUID) ([]Membership, error) // TeamNew creates a new team in the platform with the given name // creating it first user (and admin) as initialUser TeamNew(name string, initialUser uuid.UUID) (Team, error) // TeamRename renames the identified team to the provided new name TeamRename(id uuid.UUID, newName string) error TeamSetOrganisation(id uuid.UUID, orgID *uuid.UUID) error // TeamDelete removes a team from the platform, removing all its memberships and permissions TeamDelete(id uuid.UUID) error // TeamMemberAdd adds a new member to the team (not as an admin), // member should be a User or APIUser TeamMemberAdd(team, member uuid.UUID) (Membership, error) // TeamMemberUpdateLabels will update the display name and contact email for a membership // // NOTE: this is a fallback for legacy platforms, Users and APIUsers will automatically update // their corresponding memberships when their details are updated. TeamMemberUpdateLabels(team, member uuid.UUID, name, email string) error // TeamMemberSetAdmin will set the team members admin status within the team TeamMemberSetAdmin(team, member uuid.UUID, admin bool) error // TeamMemberRemove will remove the given member from the team TeamMemberRemove(team, member uuid.UUID) error }
type User ¶
type User struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` API uuid.UUID `json:"api"` Email string `json:"email"` Name string `json:"name"` SignupIP string `json:"signupIP"` Admin bool `json:"admin"` Banned bool `json:"banned"` Confirmed bool `json:"confirmed"` Metadata map[string]string `json:"metadata"` Organisation *uuid.UUID `json:"organisation"` }
User represents a set of account credentials for a human user of a platform and authentication for the platforms auth portal.
type UserEndpoints ¶ added in v1.1.1
type UserEndpoints interface { // UserExists checks if a user exists in the callers platform with the provided username UserExists(username string) (bool, error) // UserGet loads a user from the callers platform that has the provided ID (if one exists) UserGet(id uuid.UUID) (User, error) // UserGetUsername loads a user from the callers platform by their username (if one exists) UserGetUsername(username string) (User, error) // UserGetSession loads the user in the callers platform for which the provided cookie token applies (if valid) UserGetSession(cookie string) (bool, User, error) // UsersPlatform loads the list of all users on the callers platform UsersPlatform() ([]User, error) // UserSignup creates a new user with the provided details in the callers platform UserSignup(name, email, password, signupIP string) (User, error) // UserUpdate updates a platform user corresponding to the provided ID, updating their name and contact email // as well as those of all memberships that user has UserUpdate(id uuid.UUID, name, email string) error // UserBan updates a platform users banned status to the provided state UserBan(id uuid.UUID, state bool) error UserSetOrganisation(id uuid.UUID, orgID *uuid.UUID) error // UserDelete removes a user and all their memberships and permissions from the platform UserDelete(id uuid.UUID) error // UserTermsAccept adds a Terms and Conditions acceptance flag to the identified user for the latest configured terms UserTermsAccept(id uuid.UUID) error // UserPasswordReset sends a password reset request email to the identified platform user UserPasswordReset(id uuid.UUID) error // UserReconfirm sends an email confirmation email to the identified platform user, setting their confirmation status to false if it is not already UserReconfirm(id uuid.UUID) error // UserUnlock resets the "locked till" time on a user caused by too many failed login attempts UserUnlock(id uuid.UUID) error // UserUpdateMetadata sets the users metadata properties to the provided map UserUpdateMetadata(id uuid.UUID, metadata map[string]string) error // UserMergeMetadata merges the provided metadata map with the users metadata UserMergeMetadata(id uuid.UUID, metadata map[string]string) error }
Source Files ¶
- api-core.go
- api-get.go
- api-mutate.go
- cache.go
- connection.go
- doc.go
- interface.go
- notification-core.go
- notification-mutate.go
- organisation-core.go
- organisation-get.go
- organisation-mutate.go
- permission-core.go
- permission-get.go
- permission-mutate.go
- permission-query.go
- session-migrate.go
- sessions.go
- team-mutate.go
- teams-core.go
- teams-get.go
- user-core.go
- user-get.go
- user-mutate.go
- util.go