| package roles |
| |
| import ( |
| "github.com/rackspace/gophercloud" |
| "github.com/rackspace/gophercloud/pagination" |
| |
| os "github.com/rackspace/gophercloud/openstack/identity/v2/extensions/admin/roles" |
| ) |
| |
| // List is the operation responsible for listing all available global roles |
| // that a user can adopt. |
| func List(client *gophercloud.ServiceClient) pagination.Pager { |
| return os.List(client) |
| } |
| |
| // AddUserRole is the operation responsible for assigning a particular role to |
| // a user. This is confined to the scope of the user's tenant - so the tenant |
| // ID is a required argument. |
| func AddUserRole(client *gophercloud.ServiceClient, userID, roleID string) UserRoleResult { |
| var result UserRoleResult |
| |
| _, result.Err = client.Request("PUT", userRoleURL(client, userID, roleID), gophercloud.RequestOpts{ |
| OkCodes: []int{200, 201}, |
| }) |
| |
| return result |
| } |
| |
| // DeleteUserRole is the operation responsible for deleting a particular role |
| // from a user. This is confined to the scope of the user's tenant - so the |
| // tenant ID is a required argument. |
| func DeleteUserRole(client *gophercloud.ServiceClient, userID, roleID string) UserRoleResult { |
| var result UserRoleResult |
| |
| _, result.Err = client.Request("DELETE", userRoleURL(client, userID, roleID), gophercloud.RequestOpts{ |
| OkCodes: []int{204}, |
| }) |
| |
| return result |
| } |
| |
| // UserRoleResult represents the result of either an AddUserRole or |
| // a DeleteUserRole operation. |
| type UserRoleResult struct { |
| gophercloud.ErrResult |
| } |
| |
| func userRoleURL(c *gophercloud.ServiceClient, userID, roleID string) string { |
| return c.ServiceURL(os.UserPath, userID, os.RolePath, os.ExtPath, roleID) |
| } |