Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ManagementDBClient ¶
type ManagementDBClient interface { /* Ready checks whether the client is ready for use. @return nil if ready, or an error otherwise */ Ready() error /* AlignRolesWithConfig aligns the role entries in the DB with the configuration provided @param ctxt context.Context - context calling this API @param configuredRoles []string - the list of configured roles @return whether successful */ AlignRolesWithConfig(ctxt context.Context, configuredRoles []string) error /* ListAllRoles query for the list of known roles within the DB @param ctxt context.Context - context calling this API @return the list roles in the DB */ ListAllRoles(ctxt context.Context) ([]string, error) /* GetUsersOfRole query for the list of users which have that role. @param ctxt context.Context - context calling this API @param role string - the role @return the list of users */ GetUsersOfRole(ctxt context.Context, role string) ([]UserInfo, error) /* DefineUser define a user entry with roles @param ctxt context.Context - context calling this API @param config UserConfig - user config @param roles []string - roles for this user @return whether successful */ DefineUser(ctxt context.Context, config UserConfig, roles []string) error /* GetUser query for a user by ID @param ctxt context.Context - context calling this API @param id string - user entry ID @return the user information */ GetUser(ctxt context.Context, id string) (UserDetails, error) /* ListAllUsers query for all users in system @param ctxt context.Context - context calling this API @return the list of users in system */ ListAllUsers(ctxt context.Context) ([]UserInfo, error) /* DeleteUser deletes a user @param ctxt context.Context - context calling this API @param id string - user entry ID @return whether successful */ DeleteUser(ctxt context.Context, id string) error /* UpdateUser update the parameters for a user @param ctxt context.Context - context calling this API @param id string - user entry ID @param newConfig UserConfig - new user config @return whether successful */ UpdateUser(ctxt context.Context, id string, newConfig UserConfig) error /* AddRolesToUser add new roles to a user @param ctxt context.Context - context calling this API @param id string - user entry ID @param newRoles []string - new roles for this user @return whether successful */ AddRolesToUser(ctxt context.Context, id string, newRoles []string) error /* SetUserRoles change the roles of a user @param ctxt context.Context - context calling this API @param id string - user entry ID @param newRoles []string - new roles for this user @return whether successful */ SetUserRoles(ctxt context.Context, id string, newRoles []string) error /* RemoveRolesFromUser remove roles from user @param ctxt context.Context - context calling this API @param id string - user entry ID @param roles []string - roles to remove from user @return whether successful */ RemoveRolesFromUser(ctxt context.Context, id string, roles []string) error }
ManagementDBClient is the DB client for managing user and roles
func CreateManagementDBClient ¶
func CreateManagementDBClient(db *gorm.DB, validateSupport common.CustomFieldValidator) ( ManagementDBClient, error, )
CreateManagementDBClient create a new DB client
@param db *gorm.DB - GORM DB client @return client
type UserConfig ¶
type UserConfig struct { // UserID is the user's ID UserID string `json:"user_id" gorm:"uniqueIndex" validate:"required,user_id"` // UserName is the username Username *string `json:"username,omitempty" validate:"omitempty,username"` // Email is the user's email Email *string `json:"email,omitempty" validate:"omitempty,email"` // FirstName is the user's first name / given name FirstName *string `json:"first_name,omitempty" validate:"omitempty,personal_name"` // LastName is the user's last name / surname / family name LastName *string `json:"last_name,omitempty" validate:"omitempty,personal_name"` }
UserConfig is user create / update parameters
type UserDetails ¶
type UserDetails struct { UserInfo // Roles are the roles associated with the user Roles []string `json:"roles"` }
UserDetails is information regarding a user with additional information
Click to show internal directories.
Click to hide internal directories.