1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/*
Package roles provides information and interaction with the roles API
resource for the OpenStack Identity service.
Example to List Roles
listOpts := roles.ListOpts{
DomainID: "default",
}
allPages, err := roles.List(identityClient, listOpts).AllPages()
if err != nil {
panic(err)
}
allRoles, err := roles.ExtractRoles(allPages)
if err != nil {
panic(err)
}
for _, role := range allRoles {
fmt.Printf("%+v\n", role)
}
Example to Create a Role
createOpts := roles.CreateOpts{
Name: "read-only-admin",
DomainID: "default",
Extra: map[string]interface{}{
"description": "this role grants read-only privilege cross tenant",
}
}
role, err := roles.Create(identityClient, createOpts).Extract()
if err != nil {
panic(err)
}
Example to Update a Role
roleID := "0fe36e73809d46aeae6705c39077b1b3"
updateOpts := roles.UpdateOpts{
Name: "read only admin",
}
role, err := roles.Update(identityClient, roleID, updateOpts).Extract()
if err != nil {
panic(err)
}
Example to Delete a Role
roleID := "0fe36e73809d46aeae6705c39077b1b3"
err := roles.Delete(identityClient, roleID).ExtractErr()
if err != nil {
panic(err)
}
Example to List Role Assignments
listOpts := roles.ListAssignmentsOpts{
UserID: "97061de2ed0647b28a393c36ab584f39",
ScopeProjectID: "9df1a02f5eb2416a9781e8b0c022d3ae",
}
allPages, err := roles.ListAssignments(identityClient, listOpts).AllPages()
if err != nil {
panic(err)
}
allRoles, err := roles.ExtractRoleAssignments(allPages)
if err != nil {
panic(err)
}
for _, role := range allRoles {
fmt.Printf("%+v\n", role)
}
Example to List Role Assignments for a User on a Project
projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
userID := "9df1a02f5eb2416a9781e8b0c022d3ae"
listAssignmentsOnResourceOpts := roles.ListAssignmentsOnResourceOpts{
UserID: userID,
ProjectID: projectID,
}
allPages, err := roles.ListAssignmentsOnResource(identityClient, listAssignmentsOnResourceOpts).AllPages()
if err != nil {
panic(err)
}
allRoles, err := roles.ExtractRoles(allPages)
if err != nil {
panic(err)
}
for _, role := range allRoles {
fmt.Printf("%+v\n", role)
}
Example to Assign a Role to a User in a Project
projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
userID := "9df1a02f5eb2416a9781e8b0c022d3ae"
roleID := "9fe2ff9ee4384b1894a90878d3e92bab"
err := roles.Assign(identityClient, roleID, roles.AssignOpts{
UserID: userID,
ProjectID: projectID,
}).ExtractErr()
if err != nil {
panic(err)
}
Example to Unassign a Role From a User in a Project
projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
userID := "9df1a02f5eb2416a9781e8b0c022d3ae"
roleID := "9fe2ff9ee4384b1894a90878d3e92bab"
err := roles.Unassign(identityClient, roleID, roles.UnassignOpts{
UserID: userID,
ProjectID: projectID,
}).ExtractErr()
if err != nil {
panic(err)
}
*/
package roles
|