 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package users manages and retrieves Users in the OpenStack Identity Service.
Example to List Users
listOpts := users.ListOpts{
	DomainID: "default",
}
allPages, err := users.List(identityClient, listOpts).AllPages()
if err != nil {
	panic(err)
}
allUsers, err := users.ExtractUsers(allPages)
if err != nil {
	panic(err)
}
for _, user := range allUsers {
	fmt.Printf("%+v\n", user)
}
Example to Create a User
projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
createOpts := users.CreateOpts{
	Name:             "username",
	DomainID:         "default",
	DefaultProjectID: projectID,
	Enabled:          gophercloud.Enabled,
	Password:         "supersecret",
	Extra: map[string]interface{}{
		"email": "username@example.com",
	}
}
user, err := users.Create(identityClient, createOpts).Extract()
if err != nil {
	panic(err)
}
Example to Update a User
userID := "0fe36e73809d46aeae6705c39077b1b3"
updateOpts := users.UpdateOpts{
	Enabled: gophercloud.Disabled,
}
user, err := users.Update(identityClient, userID, updateOpts).Extract()
if err != nil {
	panic(err)
}
Example to Change Password of a User
userID := "0fe36e73809d46aeae6705c39077b1b3"
originalPassword := "secretsecret"
password := "new_secretsecret"
changePasswordOpts := users.ChangePasswordOpts{
	OriginalPassword: originalPassword,
	Password:         password,
}
err := users.ChangePassword(identityClient, userID, changePasswordOpts).ExtractErr()
if err != nil {
	panic(err)
}
Example to Delete a User
userID := "0fe36e73809d46aeae6705c39077b1b3"
err := users.Delete(identityClient, userID).ExtractErr()
if err != nil {
	panic(err)
}
Example to List Groups a User Belongs To
userID := "0fe36e73809d46aeae6705c39077b1b3"
allPages, err := users.ListGroups(identityClient, userID).AllPages()
if err != nil {
	panic(err)
}
allGroups, err := groups.ExtractGroups(allPages)
if err != nil {
	panic(err)
}
for _, group := range allGroups {
	fmt.Printf("%+v\n", group)
}
Example to Add a User to a Group
groupID := "bede500ee1124ae9b0006ff859758b3a"
userID := "0fe36e73809d46aeae6705c39077b1b3"
err := users.AddToGroup(identityClient, groupID, userID).ExtractErr()
if err != nil {
	panic(err)
}
Example to Check Whether a User Belongs to a Group
groupID := "bede500ee1124ae9b0006ff859758b3a"
userID := "0fe36e73809d46aeae6705c39077b1b3"
ok, err := users.IsMemberOfGroup(identityClient, groupID, userID).Extract()
if err != nil {
	panic(err)
}
if ok {
	fmt.Printf("user %s is a member of group %s\n", userID, groupID)
}
Example to Remove a User from a Group
groupID := "bede500ee1124ae9b0006ff859758b3a"
userID := "0fe36e73809d46aeae6705c39077b1b3"
err := users.RemoveFromGroup(identityClient, groupID, userID).ExtractErr()
if err != nil {
	panic(err)
}
Example to List Projects a User Belongs To
userID := "0fe36e73809d46aeae6705c39077b1b3"
allPages, err := users.ListProjects(identityClient, userID).AllPages()
if err != nil {
	panic(err)
}
allProjects, err := projects.ExtractProjects(allPages)
if err != nil {
	panic(err)
}
for _, project := range allProjects {
	fmt.Printf("%+v\n", project)
}
Example to List Users in a Group
groupID := "bede500ee1124ae9b0006ff859758b3a"
listOpts := users.ListOpts{
	DomainID: "default",
}
allPages, err := users.ListInGroup(identityClient, groupID, listOpts).AllPages()
if err != nil {
	panic(err)
}
allUsers, err := users.ExtractUsers(allPages)
if err != nil {
	panic(err)
}
for _, user := range allUsers {
	fmt.Printf("%+v\n", user)
}
Index ¶
- func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
- func ListGroups(client *gophercloud.ServiceClient, userID string) pagination.Pager
- func ListInGroup(client *gophercloud.ServiceClient, groupID string, opts ListOptsBuilder) pagination.Pager
- func ListProjects(client *gophercloud.ServiceClient, userID string) pagination.Pager
- type AddToGroupResult
- type ChangePasswordOpts
- type ChangePasswordOptsBuilder
- type ChangePasswordResult
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteResult
- type GetResult
- type InvalidListFilter
- type IsMemberOfGroupResult
- type ListOpts
- type ListOptsBuilder
- type Option
- type RemoveFromGroupResult
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResult
- type User
- type UserPage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
List enumerates the Users to which the current token has access.
func ListGroups ¶
func ListGroups(client *gophercloud.ServiceClient, userID string) pagination.Pager
ListGroups enumerates groups user belongs to.
func ListInGroup ¶
func ListInGroup(client *gophercloud.ServiceClient, groupID string, opts ListOptsBuilder) pagination.Pager
ListInGroup enumerates users that belong to a group.
func ListProjects ¶
func ListProjects(client *gophercloud.ServiceClient, userID string) pagination.Pager
ListProjects enumerates groups user belongs to.
Types ¶
type AddToGroupResult ¶
type AddToGroupResult struct {
	gophercloud.ErrResult
}
    AddToGroupResult is the response from a AddToGroup operation. Call its ExtractErr method to determine if the request succeeded or failed.
func AddToGroup ¶
func AddToGroup(client *gophercloud.ServiceClient, groupID, userID string) (r AddToGroupResult)
AddToGroup adds a user to a group.
type ChangePasswordOpts ¶
type ChangePasswordOpts struct {
	// OriginalPassword is the original password of the user.
	OriginalPassword string `json:"original_password"`
	// Password is the new password of the user.
	Password string `json:"password"`
}
    ChangePasswordOpts provides options for changing password for a user.
func (ChangePasswordOpts) ToUserChangePasswordMap ¶
func (opts ChangePasswordOpts) ToUserChangePasswordMap() (map[string]interface{}, error)
ToUserChangePasswordMap formats a ChangePasswordOpts into a ChangePassword request.
type ChangePasswordOptsBuilder ¶
type ChangePasswordOptsBuilder interface {
	ToUserChangePasswordMap() (map[string]interface{}, error)
}
    ChangePasswordOptsBuilder allows extensions to add additional parameters to the ChangePassword request.
type ChangePasswordResult ¶
type ChangePasswordResult struct {
	gophercloud.ErrResult
}
    ChangePasswordResult is the response from a ChangePassword operation. Call its ExtractErr method to determine if the request succeeded or failed.
func ChangePassword ¶
func ChangePassword(client *gophercloud.ServiceClient, userID string, opts ChangePasswordOptsBuilder) (r ChangePasswordResult)
ChangePassword changes password for a user.
type CreateOpts ¶
type CreateOpts struct {
	// Name is the name of the new user.
	Name string `json:"name" required:"true"`
	// DefaultProjectID is the ID of the default project of the user.
	DefaultProjectID string `json:"default_project_id,omitempty"`
	// Description is a description of the user.
	Description string `json:"description,omitempty"`
	// DomainID is the ID of the domain the user belongs to.
	DomainID string `json:"domain_id,omitempty"`
	// Enabled sets the user status to enabled or disabled.
	Enabled *bool `json:"enabled,omitempty"`
	// Extra is free-form extra key/value pairs to describe the user.
	Extra map[string]interface{} `json:"-"`
	// Options are defined options in the API to enable certain features.
	Options map[Option]interface{} `json:"options,omitempty"`
	// Password is the password of the new user.
	Password string `json:"password,omitempty"`
}
    CreateOpts provides options used to create a user.
func (CreateOpts) ToUserCreateMap ¶
func (opts CreateOpts) ToUserCreateMap() (map[string]interface{}, error)
ToUserCreateMap formats a CreateOpts into a create request.
type CreateOptsBuilder ¶
CreateOptsBuilder allows extensions to add additional parameters to the Create request.
type CreateResult ¶
type CreateResult struct {
	// contains filtered or unexported fields
}
    CreateResult is the response from a Create operation. Call its Extract method to interpret it as a User.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
Create creates a new User.
type DeleteResult ¶
type DeleteResult struct {
	gophercloud.ErrResult
}
    DeleteResult is the response from a Delete operation. Call its ExtractErr to determine if the request succeeded or failed.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, userID string) (r DeleteResult)
Delete deletes a user.
type GetResult ¶
type GetResult struct {
	// contains filtered or unexported fields
}
    GetResult is the response from a Get operation. Call its Extract method to interpret it as a User.
func Get ¶
func Get(client *gophercloud.ServiceClient, id string) (r GetResult)
Get retrieves details on a single user, by ID.
type InvalidListFilter ¶
type InvalidListFilter struct {
	FilterName string
}
    InvalidListFilter is returned by the ToUserListQuery method when validation of a filter does not pass
func (InvalidListFilter) Error ¶
func (e InvalidListFilter) Error() string
type IsMemberOfGroupResult ¶
type IsMemberOfGroupResult struct {
	gophercloud.Result
	// contains filtered or unexported fields
}
    IsMemberOfGroupResult is the response from a IsMemberOfGroup operation. Call its Extract method to determine if the request succeeded or failed.
func IsMemberOfGroup ¶
func IsMemberOfGroup(client *gophercloud.ServiceClient, groupID, userID string) (r IsMemberOfGroupResult)
IsMemberOfGroup checks whether a user belongs to a group.
func (IsMemberOfGroupResult) Extract ¶
func (r IsMemberOfGroupResult) Extract() (bool, error)
Extract extracts IsMemberOfGroupResult as bool and error values
type ListOpts ¶
type ListOpts struct {
	// DomainID filters the response by a domain ID.
	DomainID string `q:"domain_id"`
	// Enabled filters the response by enabled users.
	Enabled *bool `q:"enabled"`
	// IdpID filters the response by an Identity Provider ID.
	IdPID string `q:"idp_id"`
	// Name filters the response by username.
	Name string `q:"name"`
	// PasswordExpiresAt filters the response based on expiring passwords.
	PasswordExpiresAt string `q:"password_expires_at"`
	// ProtocolID filters the response by protocol ID.
	ProtocolID string `q:"protocol_id"`
	// UniqueID filters the response by unique ID.
	UniqueID string `q:"unique_id"`
	// Filters filters the response by custom filters such as
	// 'name__contains=foo'
	Filters map[string]string `q:"-"`
}
    ListOpts provides options to filter the List results.
func (ListOpts) ToUserListQuery ¶
ToUserListQuery formats a ListOpts into a query string.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add additional parameters to the List request
type Option ¶
type Option string
Option is a specific option defined at the API to enable features on a user account.
const ( IgnoreChangePasswordUponFirstUse Option = "ignore_change_password_upon_first_use" IgnorePasswordExpiry Option = "ignore_password_expiry" IgnoreLockoutFailureAttempts Option = "ignore_lockout_failure_attempts" MultiFactorAuthRules Option = "multi_factor_auth_rules" MultiFactorAuthEnabled Option = "multi_factor_auth_enabled" )
type RemoveFromGroupResult ¶
type RemoveFromGroupResult struct {
	gophercloud.ErrResult
}
    RemoveFromGroupResult is the response from a RemoveFromGroup operation. Call its ExtractErr method to determine if the request succeeded or failed.
func RemoveFromGroup ¶
func RemoveFromGroup(client *gophercloud.ServiceClient, groupID, userID string) (r RemoveFromGroupResult)
RemoveFromGroup removes a user from a group.
type UpdateOpts ¶
type UpdateOpts struct {
	// Name is the name of the new user.
	Name string `json:"name,omitempty"`
	// DefaultProjectID is the ID of the default project of the user.
	DefaultProjectID string `json:"default_project_id,omitempty"`
	// Description is a description of the user.
	Description *string `json:"description,omitempty"`
	// DomainID is the ID of the domain the user belongs to.
	DomainID string `json:"domain_id,omitempty"`
	// Enabled sets the user status to enabled or disabled.
	Enabled *bool `json:"enabled,omitempty"`
	// Extra is free-form extra key/value pairs to describe the user.
	Extra map[string]interface{} `json:"-"`
	// Options are defined options in the API to enable certain features.
	Options map[Option]interface{} `json:"options,omitempty"`
	// Password is the password of the new user.
	Password string `json:"password,omitempty"`
}
    UpdateOpts provides options for updating a user account.
func (UpdateOpts) ToUserUpdateMap ¶
func (opts UpdateOpts) ToUserUpdateMap() (map[string]interface{}, error)
ToUserUpdateMap formats a UpdateOpts into an update request.
type UpdateOptsBuilder ¶
UpdateOptsBuilder allows extensions to add additional parameters to the Update request.
type UpdateResult ¶
type UpdateResult struct {
	// contains filtered or unexported fields
}
    UpdateResult is the response from an Update operation. Call its Extract method to interpret it as a User.
func Update ¶
func Update(client *gophercloud.ServiceClient, userID string, opts UpdateOptsBuilder) (r UpdateResult)
Update updates an existing User.
type User ¶
type User struct {
	// DefaultProjectID is the ID of the default project of the user.
	DefaultProjectID string `json:"default_project_id"`
	// Description is the description of the user.
	Description string `json:"description"`
	// DomainID is the domain ID the user belongs to.
	DomainID string `json:"domain_id"`
	// Enabled is whether or not the user is enabled.
	Enabled bool `json:"enabled"`
	// Extra is a collection of miscellaneous key/values.
	Extra map[string]interface{} `json:"-"`
	// ID is the unique ID of the user.
	ID string `json:"id"`
	// Links contains referencing links to the user.
	Links map[string]interface{} `json:"links"`
	// Name is the name of the user.
	Name string `json:"name"`
	// Options are a set of defined options of the user.
	Options map[string]interface{} `json:"options"`
	// PasswordExpiresAt is the timestamp when the user's password expires.
	PasswordExpiresAt time.Time `json:"-"`
}
    User represents a User in the OpenStack Identity Service.
func ExtractUsers ¶
func ExtractUsers(r pagination.Page) ([]User, error)
ExtractUsers returns a slice of Users contained in a single page of results.
func (*User) UnmarshalJSON ¶
type UserPage ¶
type UserPage struct {
	pagination.LinkedPageBase
}
    UserPage is a single page of User results.
func (UserPage) NextPageURL ¶
NextPageURL extracts the "next" link from the links section of the result.