Update API role tests and fix the structure of the protos so versioning works

This commit is contained in:
Jeff Mitchell committed 2020-08-08 17:46:41 -04:00
1 parent f1b3ad373e
commit 827d86bef1
7 files changed
+887 -651

No files matched your search

+186 -144
View File
@@ -1,45 +1,63 @@
package roles_test
/*
type roleCrud interface {
CreateGroup(context.Context, *groups.Group) (*groups.Group, *api.Error, error)
CreateRole(context.Context, *roles.Role) (*roles.Role, *api.Error, error)
ReadRole(context.Context, *roles.Role) (*roles.Role, *api.Error, error)
UpdateRole(context.Context, *roles.Role) (*roles.Role, *api.Error, error)
DeleteRole(context.Context, *roles.Role) (bool, *api.Error, error)
ListRoles(ctx context.Context) ([]*roles.Role, *api.Error, error)
}
import (
"fmt"
"net/http"
"testing"
"github.com/hashicorp/watchtower/api"
"github.com/hashicorp/watchtower/api/groups"
"github.com/hashicorp/watchtower/api/internal/strutil"
"github.com/hashicorp/watchtower/api/roles"
"github.com/hashicorp/watchtower/api/scopes"
"github.com/hashicorp/watchtower/api/users"
"github.com/hashicorp/watchtower/internal/iam"
"github.com/hashicorp/watchtower/internal/servers/controller"
"github.com/kr/pretty"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestCustom(t *testing.T) {
tc := controller.NewTestController(t, &controller.TestControllerOpts{DisableAuthorizationFailures: true})
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultUsername: "user",
DefaultPassword: "passpass",
})
defer tc.Shutdown()
client := tc.Client()
org := &scopes.Org{
Client: client,
}
proj, apiErr, err := org.CreateProject(context.Background(), &scopes.Project{})
require.NoError(t, err)
require.Nil(t, apiErr)
user, apiErr, err := org.CreateUser(context.Background(), &users.User{})
require.NoError(t, err)
require.Nil(t, apiErr)
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
cases := []struct {
name string
scope roleCrud
name string
scopeClient *api.Client
}{
{
name: "org",
scope: org,
name: "org",
scopeClient: client,
},
{
name: "proj",
scope: proj,
name: "proj",
scopeClient: projClient,
},
}
user, apiErr, err := users.NewUsersClient(client).Create(tc.Context())
require.NoError(err)
require.Nil(apiErr)
hasPrincipal := func(role *roles.Role, principalId string) bool {
var foundInPrincipals bool
var foundInPrincipalIds bool
@@ -56,100 +74,112 @@ func TestCustom(t *testing.T) {
return foundInPrincipals && foundInPrincipalIds
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
require := require.New(t)
ctx := context.Background()
g, apiErr, err := tc.scope.CreateGroup(ctx, &groups.Group{})
for _, tt := range cases {
t.Run(tt.name, func(t *testing.T) {
g, apiErr, err := groups.NewGroupsClient(tt.scopeClient).Create(tc.Context())
require.NoError(err)
require.Nil(apiErr)
require.NotNil(g)
r, apiErr, err := tc.scope.CreateRole(ctx, &roles.Role{Name: api.String("foo")})
rc := roles.NewRolesClient(tt.scopeClient)
var version uint32 = 1
r, apiErr, err := rc.Create(tc.Context(), roles.WithName("foo"))
require.NoError(err)
require.Nil(apiErr)
require.NotNil(r)
require.EqualValues(r.Version, version)
version++
updatedRole, apiErr, err := r.AddPrincipals(ctx, []string{g.Id})
updatedRole, apiErr, err := rc.AddPrincipals(tc.Context(), r.Id, r.Version, []string{g.Id})
require.NoError(err)
require.Nil(apiErr, "Got error ", pretty.Sprint(apiErr))
assert.EqualValues(updatedRole.Version, version)
assert.True(hasPrincipal(updatedRole, g.Id))
version++
updatedRole, apiErr, err = rc.SetPrincipals(tc.Context(), updatedRole.Id, updatedRole.Version, []string{user.Id})
require.NoError(err)
require.Nil(apiErr, "Got error ", apiErr)
assert.Equal(t, updatedRole.Version, r.Version+1)
assert.True(t, hasPrincipal(updatedRole, g.Id))
assert.EqualValues(updatedRole.Version, version)
assert.True(hasPrincipal(updatedRole, user.Id))
version++
r = updatedRole
updatedRole, apiErr, err = r.SetPrincipals(ctx, []string{user.Id})
updatedRole, apiErr, err = rc.RemovePrincipals(tc.Context(), updatedRole.Id, updatedRole.Version, []string{user.Id})
require.NoError(err)
require.Nil(apiErr, "Got error ", apiErr)
assert.Equal(t, updatedRole.Version, r.Version+1)
assert.True(t, hasPrincipal(updatedRole, user.Id))
assert.EqualValues(updatedRole.Version, version)
assert.Empty(updatedRole.Principals)
version++
r = updatedRole
updatedRole, apiErr, err = r.RemovePrincipals(ctx, []string{user.Id})
updatedRole, apiErr, err = rc.AddGrants(tc.Context(), updatedRole.Id, updatedRole.Version, []string{"id=*;actions=read"})
require.NoError(err)
require.Nil(apiErr, "Got error ", apiErr)
assert.Equal(t, updatedRole.Version, r.Version+1)
assert.Empty(t, updatedRole.Principals)
assert.EqualValues(updatedRole.Version, version)
assert.Contains(updatedRole.GrantStrings, "id=*;actions=read")
version++
r = updatedRole
updatedRole, apiErr, err = r.AddGrants(ctx, []string{"id=*;actions=read"})
updatedRole, apiErr, err = rc.SetGrants(tc.Context(), updatedRole.Id, updatedRole.Version, []string{"id=*;actions=*"})
require.NoError(err)
require.Nil(apiErr, "Got error ", apiErr)
assert.Equal(t, updatedRole.Version, r.Version+1)
assert.Contains(t, updatedRole.GrantStrings, "id=*;actions=read")
assert.EqualValues(updatedRole.Version, version)
assert.Contains(updatedRole.GrantStrings, "id=*;actions=*")
version++
r = updatedRole
updatedRole, apiErr, err = r.SetGrants(ctx, []string{"id=*;actions=*"})
updatedRole, apiErr, err = rc.RemoveGrants(tc.Context(), updatedRole.Id, updatedRole.Version, []string{"id=*;actions=*"})
require.NoError(err)
require.Nil(apiErr, "Got error ", apiErr)
assert.Equal(t, updatedRole.Version, r.Version+1)
assert.Contains(t, updatedRole.GrantStrings, "id=*;actions=*")
r = updatedRole
updatedRole, apiErr, err = r.RemoveGrants(ctx, []string{"id=*;actions=*"})
require.NoError(err)
require.Nil(apiErr, "Got error ", apiErr)
assert.Equal(t, updatedRole.Version, r.Version+1)
assert.Empty(t, updatedRole.Grants)
assert.EqualValues(updatedRole.Version, version)
assert.Empty(updatedRole.Grants)
version++
})
}
}
func TestRole_List(t *testing.T) {
tc := controller.NewTestController(t, &controller.TestControllerOpts{DisableAuthorizationFailures: true})
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultUsername: "user",
DefaultPassword: "passpass",
})
defer tc.Shutdown()
client := tc.Client()
org := &scopes.Org{
Client: client,
}
proj, apiErr, err := org.CreateProject(context.Background(), &scopes.Project{})
require.NoError(t, err)
require.Nil(t, apiErr)
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
cases := []struct {
name string
scope roleCrud
name string
scopeClient *api.Client
}{
{
name: "org",
scope: org,
name: "org",
scopeClient: client,
},
{
name: "proj",
scope: proj,
name: "proj",
scopeClient: projClient,
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
ctx := context.Background()
p1, apiErr, err := tc.scope.ListRoles(ctx)
for _, tt := range cases {
t.Run(tt.name, func(t *testing.T) {
roleClient := roles.NewRolesClient(tt.scopeClient)
p1, apiErr, err := roleClient.List(tc.Context())
require.NoError(err)
assert.Nil(apiErr)
var defaultRoleIds []string
if tc.name == "org" {
if tt.name == "org" {
require.True(2 == len(p1))
defaultRoleIds = []string{p1[0].Id, p1[1].Id}
} else {
@@ -158,14 +188,14 @@ func TestRole_List(t *testing.T) {
var expected []*roles.Role
for i := 0; i < 10; i++ {
expected = append(expected, &roles.Role{Name: api.String(fmt.Sprint(i))})
expected = append(expected, &roles.Role{Name: fmt.Sprint(i)})
}
expected[0], apiErr, err = tc.scope.CreateRole(ctx, expected[0])
expected[0], apiErr, err = roleClient.Create(tc.Context(), roles.WithName(expected[0].Name))
require.NoError(err)
assert.Nil(apiErr)
p2, apiErr, err := tc.scope.ListRoles(ctx)
p2, apiErr, err := roleClient.List(tc.Context())
assert.NoError(err)
assert.Nil(apiErr)
var p2ForComparison []*roles.Role
@@ -177,11 +207,11 @@ func TestRole_List(t *testing.T) {
assert.ElementsMatch(comparableSlice(expected[:1]), comparableSlice(p2ForComparison))
for i := 1; i < 10; i++ {
expected[i], apiErr, err = tc.scope.CreateRole(ctx, expected[i])
expected[i], apiErr, err = roleClient.Create(tc.Context(), roles.WithName(expected[i].Name))
assert.NoError(err)
assert.Nil(apiErr)
}
p3, apiErr, err := tc.scope.ListRoles(ctx)
p3, apiErr, err := roleClient.List(tc.Context())
require.NoError(err)
assert.Nil(apiErr)
var p3ForComparison []*roles.Role
@@ -212,71 +242,76 @@ func comparableSlice(in []*roles.Role) []roles.Role {
}
func TestRole_Crud(t *testing.T) {
tc := controller.NewTestController(t, &controller.TestControllerOpts{DisableAuthorizationFailures: true})
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultUsername: "user",
DefaultPassword: "passpass",
})
defer tc.Shutdown()
client := tc.Client()
org := &scopes.Org{
Client: client,
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
cases := []struct {
name string
scopeClient *api.Client
}{
{
name: "org",
scopeClient: client,
},
{
name: "proj",
scopeClient: projClient,
},
}
proj, apiErr, err := org.CreateProject(tc.Context(), &scopes.Project{})
require.NoError(t, err)
require.Nil(t, apiErr)
checkRole := func(step string, g *roles.Role, apiErr *api.Error, err error, wantedName string) {
assert := assert.New(t)
checkRole := func(step string, g *roles.Role, apiErr *api.Error, err error, wantedName string, wantedVersion uint32) {
assert.NoError(err, step)
if !assert.Nil(apiErr, step) && apiErr.Message != "" {
t.Errorf("ApiError message: %q", apiErr.Message)
}
assert.NotNil(g, "returned no resource", step)
gotName := ""
if g.Name != nil {
gotName = *g.Name
if g.Name != "" {
gotName = g.Name
}
assert.Equal(wantedName, gotName, step)
}
cases := []struct {
name string
scope roleCrud
}{
{
name: "org",
scope: org,
},
{
name: "project",
scope: proj,
},
assert.EqualValues(wantedVersion, g.Version)
}
for _, tt := range cases {
t.Run(tt.name, func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
g, apiErr, err := tt.scope.CreateRole(tc.Context(), &roles.Role{Name: api.String("foo")})
checkRole("create", g, apiErr, err, "foo")
roleClient := roles.NewRolesClient(tt.scopeClient)
g, apiErr, err := roleClient.Create(tc.Context(), roles.WithName("foo"))
checkRole("create", g, apiErr, err, "foo", 1)
g, apiErr, err = tt.scope.ReadRole(tc.Context(), &roles.Role{Id: g.Id})
checkRole("read", g, apiErr, err, "foo")
g, apiErr, err = roleClient.Read(tc.Context(), g.Id)
checkRole("read", g, apiErr, err, "foo", 1)
g = &roles.Role{Id: g.Id}
g.Name = api.String("bar")
g, apiErr, err = tt.scope.UpdateRole(tc.Context(), g)
checkRole("update", g, apiErr, err, "bar")
g, apiErr, err = roleClient.Update(tc.Context(), g.Id, g.Version, roles.WithName("bar"))
checkRole("update", g, apiErr, err, "bar", 2)
g = &roles.Role{Id: g.Id}
g.SetDefault("name")
g, apiErr, err = tt.scope.UpdateRole(tc.Context(), g)
checkRole("update", g, apiErr, err, "")
g, apiErr, err = roleClient.Update(tc.Context(), g.Id, g.Version, roles.DefaultName())
checkRole("update", g, apiErr, err, "", 3)
existed, apiErr, err := tt.scope.DeleteRole(tc.Context(), g)
existed, apiErr, err := roleClient.Delete(tc.Context(), g.Id)
require.NoError(err)
assert.Nil(apiErr)
assert.True(existed, "Expected existing user when deleted, but it wasn't.")
existed, apiErr, err = tt.scope.DeleteRole(tc.Context(), g)
existed, apiErr, err = roleClient.Delete(tc.Context(), g.Id)
require.NoError(err)
assert.Nil(apiErr)
assert.False(existed, "Expected user to not exist when deleted, but it did.")
@@ -285,61 +320,68 @@ func TestRole_Crud(t *testing.T) {
}
func TestRole_Errors(t *testing.T) {
tc := controller.NewTestController(t, &controller.TestControllerOpts{DisableAuthorizationFailures: true})
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultUsername: "user",
DefaultPassword: "passpass",
})
defer tc.Shutdown()
ctx := tc.Context()
client := tc.Client()
org := &scopes.Org{
Client: client,
}
proj, apiErr, err := org.CreateProject(tc.Context(), &scopes.Project{})
require.NoError(t, err)
require.Nil(t, apiErr)
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
cases := []struct {
name string
scope roleCrud
name string
scopeClient *api.Client
}{
{
name: "org",
scope: org,
name: "org",
scopeClient: client,
},
{
name: "project",
scope: proj,
name: "proj",
scopeClient: projClient,
},
}
for _, tt := range cases {
t.Run(tt.name, func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
u, apiErr, err := tt.scope.CreateRole(ctx, &roles.Role{Name: api.String("first")})
roleClient := roles.NewRolesClient(tt.scopeClient)
u, apiErr, err := roleClient.Create(tc.Context(), roles.WithName("first"))
require.NoError(err)
assert.Nil(apiErr)
assert.NotNil(u)
// Create another resource with the same name.
_, apiErr, err = tt.scope.CreateRole(ctx, &roles.Role{Name: api.String("first")})
_, apiErr, err = roleClient.Create(tc.Context(), roles.WithName("first"))
require.NoError(err)
assert.NotNil(apiErr)
_, apiErr, err = tt.scope.ReadRole(ctx, &roles.Role{Id: iam.RolePrefix + "_doesntexis"})
_, apiErr, err = roleClient.Read(tc.Context(), iam.RolePrefix+"_doesntexis")
require.NoError(err)
assert.NotNil(apiErr)
assert.EqualValues(http.StatusNotFound, apiErr.Status)
_, apiErr, err = tt.scope.ReadRole(ctx, &roles.Role{Id: "invalid id"})
_, apiErr, err = roleClient.Read(tc.Context(), "invalid id")
require.NoError(err)
assert.NotNil(apiErr)
assert.EqualValues(http.StatusBadRequest, apiErr.Status)
assert.EqualValues(http.StatusForbidden, apiErr.Status)
_, apiErr, err = tt.scope.UpdateRole(ctx, &roles.Role{Id: u.Id})
_, apiErr, err = roleClient.Update(tc.Context(), u.Id, u.Version)
require.NoError(err)
assert.NotNil(apiErr)
assert.EqualValues(http.StatusBadRequest, apiErr.Status)
})
}
}
*/
+28 -120
View File
@@ -1410,7 +1410,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/controller.api.services.v1.AddRoleGrantsRequest"
"$ref": "#/definitions/controller.api.services.v1.GrantStringsMessage"
}
}
],
@@ -1443,7 +1443,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/controller.api.services.v1.AddRolePrincipalsRequest"
"$ref": "#/definitions/controller.api.services.v1.PrincipalIdsMessage"
}
}
],
@@ -1476,7 +1476,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/controller.api.services.v1.RemoveRoleGrantsRequest"
"$ref": "#/definitions/controller.api.services.v1.GrantStringsMessage"
}
}
],
@@ -1509,7 +1509,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/controller.api.services.v1.RemoveRolePrincipalsRequest"
"$ref": "#/definitions/controller.api.services.v1.PrincipalIdsMessage"
}
}
],
@@ -1542,7 +1542,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/controller.api.services.v1.SetRoleGrantsRequest"
"$ref": "#/definitions/controller.api.services.v1.GrantStringsMessage"
}
}
],
@@ -1575,7 +1575,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/controller.api.services.v1.SetRolePrincipalsRequest"
"$ref": "#/definitions/controller.api.services.v1.PrincipalIdsMessage"
}
}
],
@@ -2496,25 +2496,6 @@
}
}
},
"controller.api.services.v1.AddRoleGrantsRequest": {
"type": "object",
"properties": {
"role_id": {
"type": "string"
},
"version": {
"type": "integer",
"format": "int64",
"description": "The version ensures the role hasn't changed since it was last retrieved and if\nit has the request will fail."
},
"grant_strings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.AddRoleGrantsResponse": {
"type": "object",
"properties": {
@@ -2523,25 +2504,6 @@
}
}
},
"controller.api.services.v1.AddRolePrincipalsRequest": {
"type": "object",
"properties": {
"role_id": {
"type": "string"
},
"version": {
"type": "integer",
"format": "int64",
"description": "The version ensures the role hasn't changed since it was last retrieved and if\nit has the request will fail."
},
"principal_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.AddRolePrincipalsResponse": {
"type": "object",
"properties": {
@@ -2847,6 +2809,17 @@
}
}
},
"controller.api.services.v1.GrantStringsMessage": {
"type": "object",
"properties": {
"grant_strings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.ListAccountsResponse": {
"type": "object",
"properties": {
@@ -2957,6 +2930,17 @@
}
}
},
"controller.api.services.v1.PrincipalIdsMessage": {
"type": "object",
"properties": {
"principal_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.RemoveFromHostSetResponse": {
"type": "object"
},
@@ -2987,25 +2971,6 @@
}
}
},
"controller.api.services.v1.RemoveRoleGrantsRequest": {
"type": "object",
"properties": {
"role_id": {
"type": "string"
},
"version": {
"type": "integer",
"format": "int64",
"description": "The version ensures the role hasn't changed since it was last retrieved and if\nit has the request will fail."
},
"grant_strings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.RemoveRoleGrantsResponse": {
"type": "object",
"properties": {
@@ -3014,25 +2979,6 @@
}
}
},
"controller.api.services.v1.RemoveRolePrincipalsRequest": {
"type": "object",
"properties": {
"role_id": {
"type": "string"
},
"version": {
"type": "integer",
"format": "int64",
"description": "The version ensures the role hasn't changed since it was last retrieved and if\nit has the request will fail."
},
"principal_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.RemoveRolePrincipalsResponse": {
"type": "object",
"properties": {
@@ -3068,25 +3014,6 @@
}
}
},
"controller.api.services.v1.SetRoleGrantsRequest": {
"type": "object",
"properties": {
"role_id": {
"type": "string"
},
"version": {
"type": "integer",
"format": "int64",
"description": "The version ensures the role hasn't changed since it was last retrieved and if\nit has the request will fail."
},
"grant_strings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.SetRoleGrantsResponse": {
"type": "object",
"properties": {
@@ -3095,25 +3022,6 @@
}
}
},
"controller.api.services.v1.SetRolePrincipalsRequest": {
"type": "object",
"properties": {
"role_id": {
"type": "string"
},
"version": {
"type": "integer",
"format": "int64",
"description": "The version ensures the role hasn't changed since it was last retrieved and if\nit has the request will fail."
},
"principal_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"controller.api.services.v1.SetRolePrincipalsResponse": {
"type": "object",
"properties": {
File diff suppressed because it is too large. Load diff
@@ -327,6 +327,10 @@ func local_request_RoleService_DeleteRole_0(ctx context.Context, marshaler runti
}
var (
filter_RoleService_AddRolePrincipals_0 = &utilities.DoubleArray{Encoding: map[string]int{"item": 0, "role_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_RoleService_AddRolePrincipals_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq AddRolePrincipalsRequest
var metadata runtime.ServerMetadata
@@ -335,7 +339,7 @@ func request_RoleService_AddRolePrincipals_0(ctx context.Context, marshaler runt
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -357,6 +361,13 @@ func request_RoleService_AddRolePrincipals_0(ctx context.Context, marshaler runt
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_AddRolePrincipals_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.AddRolePrincipals(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -370,7 +381,7 @@ func local_request_RoleService_AddRolePrincipals_0(ctx context.Context, marshale
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -392,11 +403,22 @@ func local_request_RoleService_AddRolePrincipals_0(ctx context.Context, marshale
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_AddRolePrincipals_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.AddRolePrincipals(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_RoleService_SetRolePrincipals_0 = &utilities.DoubleArray{Encoding: map[string]int{"item": 0, "role_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_RoleService_SetRolePrincipals_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq SetRolePrincipalsRequest
var metadata runtime.ServerMetadata
@@ -405,7 +427,7 @@ func request_RoleService_SetRolePrincipals_0(ctx context.Context, marshaler runt
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -427,6 +449,13 @@ func request_RoleService_SetRolePrincipals_0(ctx context.Context, marshaler runt
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_SetRolePrincipals_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.SetRolePrincipals(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -440,7 +469,7 @@ func local_request_RoleService_SetRolePrincipals_0(ctx context.Context, marshale
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -462,11 +491,22 @@ func local_request_RoleService_SetRolePrincipals_0(ctx context.Context, marshale
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_SetRolePrincipals_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.SetRolePrincipals(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_RoleService_RemoveRolePrincipals_0 = &utilities.DoubleArray{Encoding: map[string]int{"item": 0, "role_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_RoleService_RemoveRolePrincipals_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq RemoveRolePrincipalsRequest
var metadata runtime.ServerMetadata
@@ -475,7 +515,7 @@ func request_RoleService_RemoveRolePrincipals_0(ctx context.Context, marshaler r
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -497,6 +537,13 @@ func request_RoleService_RemoveRolePrincipals_0(ctx context.Context, marshaler r
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_RemoveRolePrincipals_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.RemoveRolePrincipals(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -510,7 +557,7 @@ func local_request_RoleService_RemoveRolePrincipals_0(ctx context.Context, marsh
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -532,11 +579,22 @@ func local_request_RoleService_RemoveRolePrincipals_0(ctx context.Context, marsh
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_RemoveRolePrincipals_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.RemoveRolePrincipals(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_RoleService_AddRoleGrants_0 = &utilities.DoubleArray{Encoding: map[string]int{"item": 0, "role_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_RoleService_AddRoleGrants_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq AddRoleGrantsRequest
var metadata runtime.ServerMetadata
@@ -545,7 +603,7 @@ func request_RoleService_AddRoleGrants_0(ctx context.Context, marshaler runtime.
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -567,6 +625,13 @@ func request_RoleService_AddRoleGrants_0(ctx context.Context, marshaler runtime.
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_AddRoleGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.AddRoleGrants(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -580,7 +645,7 @@ func local_request_RoleService_AddRoleGrants_0(ctx context.Context, marshaler ru
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -602,11 +667,22 @@ func local_request_RoleService_AddRoleGrants_0(ctx context.Context, marshaler ru
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_AddRoleGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.AddRoleGrants(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_RoleService_SetRoleGrants_0 = &utilities.DoubleArray{Encoding: map[string]int{"item": 0, "role_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_RoleService_SetRoleGrants_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq SetRoleGrantsRequest
var metadata runtime.ServerMetadata
@@ -615,7 +691,7 @@ func request_RoleService_SetRoleGrants_0(ctx context.Context, marshaler runtime.
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -637,6 +713,13 @@ func request_RoleService_SetRoleGrants_0(ctx context.Context, marshaler runtime.
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_SetRoleGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.SetRoleGrants(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -650,7 +733,7 @@ func local_request_RoleService_SetRoleGrants_0(ctx context.Context, marshaler ru
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -672,11 +755,22 @@ func local_request_RoleService_SetRoleGrants_0(ctx context.Context, marshaler ru
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_SetRoleGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.SetRoleGrants(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_RoleService_RemoveRoleGrants_0 = &utilities.DoubleArray{Encoding: map[string]int{"item": 0, "role_id": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_RoleService_RemoveRoleGrants_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq RemoveRoleGrantsRequest
var metadata runtime.ServerMetadata
@@ -685,7 +779,7 @@ func request_RoleService_RemoveRoleGrants_0(ctx context.Context, marshaler runti
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -707,6 +801,13 @@ func request_RoleService_RemoveRoleGrants_0(ctx context.Context, marshaler runti
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_RemoveRoleGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.RemoveRoleGrants(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
@@ -720,7 +821,7 @@ func local_request_RoleService_RemoveRoleGrants_0(ctx context.Context, marshaler
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Item); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
@@ -742,6 +843,13 @@ func local_request_RoleService_RemoveRoleGrants_0(ctx context.Context, marshaler
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "role_id", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_RemoveRoleGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.RemoveRoleGrants(ctx, &protoReq)
return msg, metadata, err
@@ -94,7 +94,7 @@ service RoleService {
rpc AddRolePrincipals(AddRolePrincipalsRequest) returns (AddRolePrincipalsResponse) {
option (google.api.http) = {
post: "/v1/scopes/*/roles/{role_id}:add-principals"
body: "*"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -111,7 +111,7 @@ service RoleService {
rpc SetRolePrincipals(SetRolePrincipalsRequest) returns (SetRolePrincipalsResponse) {
option (google.api.http) = {
post: "/v1/scopes/*/roles/{role_id}:set-principals"
body: "*"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -127,7 +127,7 @@ service RoleService {
rpc RemoveRolePrincipals(RemoveRolePrincipalsRequest) returns (RemoveRolePrincipalsResponse) {
option (google.api.http) = {
post: "/v1/scopes/*/roles/{role_id}:remove-principals"
body: "*"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -142,7 +142,7 @@ service RoleService {
rpc AddRoleGrants(AddRoleGrantsRequest) returns (AddRoleGrantsResponse) {
option (google.api.http) = {
post: "/v1/scopes/*/roles/{role_id}:add-grants"
body: "*"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -158,7 +158,7 @@ service RoleService {
rpc SetRoleGrants(SetRoleGrantsRequest) returns (SetRoleGrantsResponse) {
option (google.api.http) = {
post: "/v1/scopes/*/roles/{role_id}:set-grants"
body: "*"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -174,7 +174,7 @@ service RoleService {
rpc RemoveRoleGrants(RemoveRoleGrantsRequest) returns (RemoveRoleGrantsResponse) {
option (google.api.http) = {
post: "/v1/scopes/*/roles/{role_id}:remove-grants"
body: "*"
body: "item"
response_body: "item"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
@@ -230,12 +230,17 @@ message DeleteRoleResponse {
bool existed = 1;
}
message PrincipalIdsMessage {
repeated string principal_ids = 1 [json_name="principal_ids"];
}
message AddRolePrincipalsRequest {
string role_id = 1;
// The version ensures the role hasn't changed since it was last retrieved and if
// it has the request will fail.
uint32 version = 2;
repeated string principal_ids = 3 [json_name="principal_ids"];
PrincipalIdsMessage item = 3;
}
message AddRolePrincipalsResponse {
@@ -247,7 +252,8 @@ message SetRolePrincipalsRequest {
// The version ensures the role hasn't changed since it was last retrieved and if
// it has the request will fail.
uint32 version = 2;
repeated string principal_ids = 3 [json_name="principal_ids"];
PrincipalIdsMessage item = 3;
}
message SetRolePrincipalsResponse {
@@ -259,19 +265,25 @@ message RemoveRolePrincipalsRequest {
// The version ensures the role hasn't changed since it was last retrieved and if
// it has the request will fail.
uint32 version = 2;
repeated string principal_ids = 3 [json_name="principal_ids"];
PrincipalIdsMessage item = 3;
}
message RemoveRolePrincipalsResponse {
resources.roles.v1.Role item = 1;
}
message GrantStringsMessage {
repeated string grant_strings = 1 [json_name="grant_strings"];
}
message AddRoleGrantsRequest {
string role_id = 1;
// The version ensures the role hasn't changed since it was last retrieved and if
// it has the request will fail.
uint32 version = 2;
repeated string grant_strings = 3 [json_name="grant_strings"];
GrantStringsMessage item = 3;;
}
message AddRoleGrantsResponse {
@@ -283,7 +295,8 @@ message SetRoleGrantsRequest {
// The version ensures the role hasn't changed since it was last retrieved and if
// it has the request will fail.
uint32 version = 2;
repeated string grant_strings = 3 [json_name="grant_strings"];
GrantStringsMessage item = 3;
}
message SetRoleGrantsResponse {
@@ -295,9 +308,10 @@ message RemoveRoleGrantsRequest {
// The version ensures the role hasn't changed since it was last retrieved and if
// it has the request will fail.
uint32 version = 2;
repeated string grant_strings = 3 [json_name="grant_strings"];
GrantStringsMessage item = 3;
}
message RemoveRoleGrantsResponse {
resources.roles.v1.Role item = 1;
}
}
@@ -143,7 +143,7 @@ func (s Service) AddRolePrincipals(ctx context.Context, req *pbs.AddRolePrincipa
if err := validateAddRolePrincipalsRequest(req); err != nil {
return nil, err
}
r, err := s.addPrinciplesInRepo(ctx, req.GetRoleId(), req.GetPrincipalIds(), req.GetVersion())
r, err := s.addPrinciplesInRepo(ctx, req.GetRoleId(), req.GetItem().GetPrincipalIds(), req.GetVersion())
if err != nil {
return nil, err
}
@@ -160,7 +160,7 @@ func (s Service) SetRolePrincipals(ctx context.Context, req *pbs.SetRolePrincipa
if err := validateSetRolePrincipalsRequest(req); err != nil {
return nil, err
}
r, err := s.setPrinciplesInRepo(ctx, req.GetRoleId(), req.GetPrincipalIds(), req.GetVersion())
r, err := s.setPrinciplesInRepo(ctx, req.GetRoleId(), req.GetItem().GetPrincipalIds(), req.GetVersion())
if err != nil {
return nil, err
}
@@ -177,7 +177,7 @@ func (s Service) RemoveRolePrincipals(ctx context.Context, req *pbs.RemoveRolePr
if err := validateRemoveRolePrincipalsRequest(req); err != nil {
return nil, err
}
r, err := s.removePrinciplesInRepo(ctx, req.GetRoleId(), req.GetPrincipalIds(), req.GetVersion())
r, err := s.removePrinciplesInRepo(ctx, req.GetRoleId(), req.GetItem().GetPrincipalIds(), req.GetVersion())
if err != nil {
return nil, err
}
@@ -194,7 +194,7 @@ func (s Service) AddRoleGrants(ctx context.Context, req *pbs.AddRoleGrantsReques
if err := validateAddRoleGrantsRequest(req); err != nil {
return nil, err
}
r, err := s.addGrantsInRepo(ctx, req.GetRoleId(), req.GetGrantStrings(), req.GetVersion())
r, err := s.addGrantsInRepo(ctx, req.GetRoleId(), req.GetItem().GetGrantStrings(), req.GetVersion())
if err != nil {
return nil, err
}
@@ -211,7 +211,7 @@ func (s Service) SetRoleGrants(ctx context.Context, req *pbs.SetRoleGrantsReques
if err := validateSetRoleGrantsRequest(req); err != nil {
return nil, err
}
r, err := s.setGrantsInRepo(ctx, req.GetRoleId(), req.GetGrantStrings(), req.GetVersion())
r, err := s.setGrantsInRepo(ctx, req.GetRoleId(), req.GetItem().GetGrantStrings(), req.GetVersion())
if err != nil {
return nil, err
}
@@ -228,7 +228,7 @@ func (s Service) RemoveRoleGrants(ctx context.Context, req *pbs.RemoveRoleGrants
if err := validateRemoveRoleGrantsRequest(req); err != nil {
return nil, err
}
r, err := s.removeGrantsInRepo(ctx, req.GetRoleId(), req.GetGrantStrings(), req.GetVersion())
r, err := s.removeGrantsInRepo(ctx, req.GetRoleId(), req.GetItem().GetGrantStrings(), req.GetVersion())
if err != nil {
return nil, err
}
@@ -644,7 +644,7 @@ func validateAddRolePrincipalsRequest(req *pbs.AddRolePrincipalsRequest) error {
if req.GetVersion() == 0 {
badFields["version"] = "Required field."
}
if len(req.GetPrincipalIds()) == 0 {
if len(req.GetItem().GetPrincipalIds()) == 0 {
badFields["principal_ids"] = "Must be non-empty."
}
if len(badFields) > 0 {
@@ -675,7 +675,7 @@ func validateRemoveRolePrincipalsRequest(req *pbs.RemoveRolePrincipalsRequest) e
if req.GetVersion() == 0 {
badFields["version"] = "Required field."
}
if len(req.GetPrincipalIds()) == 0 {
if len(req.GetItem().GetPrincipalIds()) == 0 {
badFields["principal_ids"] = "Must be non-empty."
}
if len(badFields) > 0 {
@@ -692,7 +692,7 @@ func validateAddRoleGrantsRequest(req *pbs.AddRoleGrantsRequest) error {
if req.GetVersion() == 0 {
badFields["version"] = "Required field."
}
if len(req.GetGrantStrings()) == 0 {
if len(req.GetItem().GetGrantStrings()) == 0 {
badFields["grant_strings"] = "Must be non-empty."
}
if len(badFields) > 0 {
@@ -723,7 +723,7 @@ func validateRemoveRoleGrantsRequest(req *pbs.RemoveRoleGrantsRequest) error {
if req.GetVersion() == 0 {
badFields["version"] = "Required field."
}
if len(req.GetGrantStrings()) == 0 {
if len(req.GetItem().GetGrantStrings()) == 0 {
badFields["grant_strings"] = "Must be non-empty."
}
if len(badFields) > 0 {
@@ -1000,9 +1000,11 @@ func TestAddPrincipal(t *testing.T) {
role := iam.TestRole(t, conn, scope.GetPublicId())
tc.setup(role)
req := &pbs.AddRolePrincipalsRequest{
RoleId: role.GetPublicId(),
Version: role.GetVersion(),
PrincipalIds: append(tc.addUsers, tc.addGroups...),
RoleId: role.GetPublicId(),
Version: role.GetVersion(),
Item: &pbs.PrincipalIdsMessage{
PrincipalIds: append(tc.addUsers, tc.addGroups...),
},
}
got, err := s.AddRolePrincipals(auth.DisabledAuthTestContext(auth.WithScopeId(o.GetPublicId())), req)
@@ -1120,9 +1122,11 @@ func TestSetPrincipal(t *testing.T) {
role := iam.TestRole(t, conn, scope.GetPublicId())
tc.setup(role)
req := &pbs.SetRolePrincipalsRequest{
RoleId: role.GetPublicId(),
Version: role.GetVersion(),
PrincipalIds: append(tc.setUsers, tc.setGroups...),
RoleId: role.GetPublicId(),
Version: role.GetVersion(),
Item: &pbs.PrincipalIdsMessage{
PrincipalIds: append(tc.setUsers, tc.setGroups...),
},
}
got, err := s.SetRolePrincipals(auth.DisabledAuthTestContext(auth.WithScopeId(o.GetPublicId())), req)
@@ -1258,9 +1262,11 @@ func TestRemovePrincipal(t *testing.T) {
role := iam.TestRole(t, conn, scope.GetPublicId())
tc.setup(role)
req := &pbs.RemoveRolePrincipalsRequest{
RoleId: role.GetPublicId(),
Version: role.GetVersion(),
PrincipalIds: append(tc.removeUsers, tc.removeGroups...),
RoleId: role.GetPublicId(),
Version: role.GetVersion(),
Item: &pbs.PrincipalIdsMessage{
PrincipalIds: append(tc.removeUsers, tc.removeGroups...),
},
}
got, err := s.RemoveRolePrincipals(auth.DisabledAuthTestContext(auth.WithScopeId(o.GetPublicId())), req)
@@ -1374,7 +1380,9 @@ func TestAddGrants(t *testing.T) {
if o != scope {
scopeId = p.GetPublicId()
}
req.GrantStrings = append(req.GrantStrings, tc.add...)
req.Item = &pbs.GrantStringsMessage{
GrantStrings: tc.add,
}
got, err := s.AddRoleGrants(auth.DisabledAuthTestContext(auth.WithScopeId(scopeId)), req)
if tc.wantErr {
assert.Error(err)
@@ -1396,9 +1404,11 @@ func TestAddGrants(t *testing.T) {
{
name: "Bad Role Id",
req: &pbs.AddRoleGrantsRequest{
RoleId: "bad id",
GrantStrings: []string{"id=*;actions=create"},
Version: role.GetVersion(),
RoleId: "bad id",
Item: &pbs.GrantStringsMessage{
GrantStrings: []string{"id=*;actions=create"},
},
Version: role.GetVersion(),
},
errCode: codes.InvalidArgument,
},
@@ -1472,7 +1482,9 @@ func TestSetGrants(t *testing.T) {
if o != scope {
scopeId = p.GetPublicId()
}
req.GrantStrings = append(req.GrantStrings, tc.set...)
req.Item = &pbs.GrantStringsMessage{
GrantStrings: tc.set,
}
got, err := s.SetRoleGrants(auth.DisabledAuthTestContext(auth.WithScopeId(scopeId)), req)
if tc.wantErr {
assert.Error(err)
@@ -1496,9 +1508,11 @@ func TestSetGrants(t *testing.T) {
{
name: "Bad Role Id",
req: &pbs.SetRoleGrantsRequest{
RoleId: "bad id",
GrantStrings: []string{"id=*;actions=create"},
Version: role.GetVersion(),
RoleId: "bad id",
Item: &pbs.GrantStringsMessage{
GrantStrings: []string{"id=*;actions=create"},
},
Version: role.GetVersion(),
},
errCode: codes.InvalidArgument,
},
@@ -1571,7 +1585,9 @@ func TestRemoveGrants(t *testing.T) {
if o != scope {
scopeId = p.GetPublicId()
}
req.GrantStrings = append(req.GrantStrings, tc.remove...)
req.Item = &pbs.GrantStringsMessage{
GrantStrings: tc.remove,
}
got, err := s.RemoveRoleGrants(auth.DisabledAuthTestContext(auth.WithScopeId(scopeId)), req)
if tc.wantErr {
assert.Error(err)
@@ -1596,9 +1612,11 @@ func TestRemoveGrants(t *testing.T) {
{
name: "Bad Role Id",
req: &pbs.RemoveRoleGrantsRequest{
RoleId: "bad id",
GrantStrings: []string{"id=*;actions=create"},
Version: role.GetVersion(),
RoleId: "bad id",
Item: &pbs.GrantStringsMessage{
GrantStrings: []string{"id=*;actions=create"},
},
Version: role.GetVersion(),
},
errCode: codes.InvalidArgument,
},