Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 47 additions & 2 deletions api/client/accesslist/accesslist.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,28 @@ func (c *Client) ListAccessListMembers(ctx context.Context, accessList string, p
return members, resp.GetNextPageToken(), nil
}

// ListAllAccessListMembers returns a paginated list of all access list members for all access lists.
func (c *Client) ListAllAccessListMembers(ctx context.Context, pageSize int, pageToken string) (members []*accesslist.AccessListMember, nextToken string, err error) {
resp, err := c.grpcClient.ListAllAccessListMembers(ctx, &accesslistv1.ListAllAccessListMembersRequest{
PageSize: int32(pageSize),
PageToken: pageToken,
})
if err != nil {
return nil, "", trace.Wrap(err)
}

members = make([]*accesslist.AccessListMember, len(resp.Members))
for i, member := range resp.Members {
var err error
members[i], err = conv.FromMemberProto(member, conv.WithMemberIneligibleStatusField(member))
if err != nil {
return nil, "", trace.Wrap(err)
}
}

return members, resp.GetNextPageToken(), nil
}

// GetAccessListMember returns the specified access list member resource.
func (c *Client) GetAccessListMember(ctx context.Context, accessList string, memberName string) (*accesslist.AccessListMember, error) {
resp, err := c.grpcClient.GetAccessListMember(ctx, &accesslistv1.GetAccessListMemberRequest{
Expand Down Expand Up @@ -242,6 +264,29 @@ func (c *Client) AccessRequestPromote(ctx context.Context, req *accesslistv1.Acc
// ListAccessListReviews will list access list reviews for a particular access list.
func (c *Client) ListAccessListReviews(ctx context.Context, accessList string, pageSize int, pageToken string) (reviews []*accesslist.Review, nextToken string, err error) {
resp, err := c.grpcClient.ListAccessListReviews(ctx, &accesslistv1.ListAccessListReviewsRequest{
AccessList: accessList,
PageSize: int32(pageSize),
NextToken: nextToken,
})
if err != nil {
return nil, "", trace.Wrap(err)
}

reviews = make([]*accesslist.Review, len(resp.Reviews))
for i, review := range resp.Reviews {
var err error
reviews[i], err = conv.FromReviewProto(review)
if err != nil {
return nil, "", trace.Wrap(err)
}
}

return reviews, resp.GetNextToken(), nil
}

// ListAllAccessListReviews will list access list reviews for all access lists. Only to be used by the cache.
func (c *Client) ListAllAccessListReviews(ctx context.Context, pageSize int, pageToken string) (reviews []*accesslist.Review, nextToken string, err error) {
resp, err := c.grpcClient.ListAllAccessListReviews(ctx, &accesslistv1.ListAllAccessListReviewsRequest{
PageSize: int32(pageSize),
NextToken: nextToken,
})
Expand Down Expand Up @@ -282,8 +327,8 @@ func (c *Client) DeleteAccessListReview(ctx context.Context, accessListName, rev
return trace.Wrap(err)
}

// DeleteAllAccessListReviews will delete all access list reviews from an access list.
func (c *Client) DeleteAllAccessListReviews(ctx context.Context, accessListName string) error {
// DeleteAllAccessListReviews will delete all access list reviews from all access lists.
func (c *Client) DeleteAllAccessListReviews(ctx context.Context) error {
return trace.NotImplemented("DeleteAllAccessListReviews is not supported in the gRPC client")
}

Expand Down
10 changes: 10 additions & 0 deletions api/client/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,10 @@ func EventToGRPC(in types.Event) (*proto.Event, error) {
out.Resource = &proto.Event_ReportState{
ReportState: secreprotsv1conv.ToProtoReportState(r),
}
case *accesslist.Review:
out.Resource = &proto.Event_AccessListReview{
AccessListReview: accesslistv1conv.ToReviewProto(r),
}
default:
return nil, trace.BadParameter("resource type %T is not supported", in.Resource)
}
Expand Down Expand Up @@ -443,6 +447,12 @@ func EventFromGRPC(in *proto.Event) (*types.Event, error) {
return nil, trace.Wrap(err)
}
return &out, nil
} else if r := in.GetAccessListReview(); r != nil {
out.Resource, err = accesslistv1conv.FromReviewProto(r)
if err != nil {
return nil, trace.Wrap(err)
}
return &out, nil
} else {
return nil, trace.BadParameter("received unsupported resource %T", in.Resource)
}
Expand Down
56 changes: 39 additions & 17 deletions api/client/proto/event.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading