blob: ffd697e20261609e99bdfc1b18e7750efe235cf1 [file] [log] [blame]
Jamie Hannaford0ca076c2014-10-30 13:12:35 +01001package roles
2
3import (
Jamie Hannaford1d58e7a2014-10-30 13:23:33 +01004 "github.com/racker/perigee"
Jamie Hannaford0ca076c2014-10-30 13:12:35 +01005 "github.com/rackspace/gophercloud"
6 "github.com/rackspace/gophercloud/pagination"
7)
8
9func List(client *gophercloud.ServiceClient) pagination.Pager {
10 createPage := func(r pagination.PageResult) pagination.Page {
11 return RolePage{pagination.SinglePageBase(r)}
12 }
13 return pagination.NewPager(client, rootURL(client), createPage)
14}
Jamie Hannaford9b642e02014-10-30 13:20:06 +010015
Jamie Hannafordb15878a2014-10-30 13:26:32 +010016func AddUserRole(client *gophercloud.ServiceClient, tenantID, userID, roleID string) UserRoleResult {
17 var result UserRoleResult
Jamie Hannaford9b642e02014-10-30 13:20:06 +010018
19 _, result.Err = perigee.Request("PUT", userRoleURL(client, tenantID, userID, roleID), perigee.Options{
20 MoreHeaders: client.AuthenticatedHeaders(),
21 OkCodes: []int{201},
22 })
23
24 return result
25}
Jamie Hannafordb15878a2014-10-30 13:26:32 +010026
27func DeleteUserRole(client *gophercloud.ServiceClient, tenantID, userID, roleID string) UserRoleResult {
28 var result UserRoleResult
29
30 _, result.Err = perigee.Request("DELETE", userRoleURL(client, tenantID, userID, roleID), perigee.Options{
31 MoreHeaders: client.AuthenticatedHeaders(),
32 OkCodes: []int{204},
33 })
34
35 return result
36}