From 3f0b388b3a8b21eb076fd57853eca870b5abc6b9 Mon Sep 17 00:00:00 2001 From: Gianmaria Del Monte Date: Mon, 20 Feb 2023 11:49:37 +0100 Subject: [PATCH 1/2] search OCM accepted users --- .../grpc/services/gateway/userprovider.go | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/internal/grpc/services/gateway/userprovider.go b/internal/grpc/services/gateway/userprovider.go index 1071e9337a..fe1bf8b021 100644 --- a/internal/grpc/services/gateway/userprovider.go +++ b/internal/grpc/services/gateway/userprovider.go @@ -20,8 +20,11 @@ package gateway import ( "context" + "strings" user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" + invitepb "github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1" + rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" "github.com/cs3org/reva/pkg/rgrpc/status" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" "github.com/pkg/errors" @@ -60,6 +63,35 @@ func (s *svc) GetUserByClaim(ctx context.Context, req *user.GetUserByClaimReques } func (s *svc) FindUsers(ctx context.Context, req *user.FindUsersRequest) (*user.FindUsersResponse, error) { + if strings.HasPrefix(req.Filter, "sm:") { + c, err := pool.GetOCMInviteManagerClient(pool.Endpoint(s.c.OCMInviteManagerEndpoint)) + if err != nil { + return &user.FindUsersResponse{ + Status: status.NewInternal(ctx, err, "error getting auth client"), + }, nil + } + + term := strings.TrimPrefix(req.Filter, "sm:") + + res, err := c.FindAcceptedUsers(ctx, &invitepb.FindAcceptedUsersRequest{ + Filter: term, + }) + if err != nil { + return nil, errors.Wrap(err, "gateway: error calling FindAcceptedUsers") + } + + if res.Status.Code != rpc.Code_CODE_OK { + return &user.FindUsersResponse{ + Status: status.NewInternal(ctx, errors.New(res.Status.Message), res.Status.Message), + }, nil + } + + return &user.FindUsersResponse{ + Status: status.NewOK(ctx), + Users: res.AcceptedUsers, + }, nil + } + c, err := pool.GetUserProviderServiceClient(pool.Endpoint(s.c.UserProviderEndpoint)) if err != nil { return &user.FindUsersResponse{ From a16910e2a3e1c39c329b4fc0bcc0decc024856d2 Mon Sep 17 00:00:00 2001 From: Gianmaria Del Monte Date: Mon, 20 Feb 2023 11:53:28 +0100 Subject: [PATCH 2/2] add changelog --- changelog/unreleased/ocm-find-accepted-users-filter.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/unreleased/ocm-find-accepted-users-filter.md diff --git a/changelog/unreleased/ocm-find-accepted-users-filter.md b/changelog/unreleased/ocm-find-accepted-users-filter.md new file mode 100644 index 0000000000..c6df6969c6 --- /dev/null +++ b/changelog/unreleased/ocm-find-accepted-users-filter.md @@ -0,0 +1,6 @@ +Enhancement: Search OCM accepted users + +Adds the prefix `sm:` to the FindUser endpoint, +to filter only the OCM accepted users. + +https://github.com/cs3org/reva/pull/3666 \ No newline at end of file