cleanup: Avoid fetching group membership when not needed

Use the new GetUserNoGroups helper to lookup users without resolving
groupmemberships where possible.

Closes: #1005
This commit is contained in:
Ralf Haferkamp
2025-06-12 09:47:53 +02:00
parent c35158fa44
commit 76b16765d8
6 changed files with 12 additions and 12 deletions
+2 -2
View File
@@ -182,7 +182,7 @@ func WithUser(uid *user.UserId, u *user.User, impersonator *user.User) ActivityO
case u != nil: case u != nil:
target = u target = u
case uid != nil: case uid != nil:
us, err := utils.GetUserWithContext(ctx, uid, gwc) us, err := utils.GetUserNoGroups(ctx, uid, gwc)
target = us target = us
if err != nil { if err != nil {
@@ -209,7 +209,7 @@ func WithSharee(uid *user.UserId, gid *group.GroupId) ActivityOption {
return func(ctx context.Context, gwc gateway.GatewayAPIClient, vars map[string]interface{}) error { return func(ctx context.Context, gwc gateway.GatewayAPIClient, vars map[string]interface{}) error {
switch { switch {
case uid != nil: case uid != nil:
u, err := utils.GetUser(uid, gwc) u, err := utils.GetUserNoGroups(ctx, uid, gwc)
if err != nil { if err != nil {
vars["sharee"] = Sharee{ vars["sharee"] = Sharee{
DisplayName: "DeletedUser", DisplayName: "DeletedUser",
+2 -2
View File
@@ -9,10 +9,10 @@ import (
cs3User "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" cs3User "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
"github.com/jellydator/ttlcache/v3" "github.com/jellydator/ttlcache/v3"
libregraph "github.com/opencloud-eu/libre-graph-api-go"
"github.com/opencloud-eu/opencloud/services/graph/pkg/errorcode" "github.com/opencloud-eu/opencloud/services/graph/pkg/errorcode"
"github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool" "github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool"
revautils "github.com/opencloud-eu/reva/v2/pkg/utils" revautils "github.com/opencloud-eu/reva/v2/pkg/utils"
libregraph "github.com/opencloud-eu/libre-graph-api-go"
) )
// IdentityCache implements a simple ttl based cache for looking up users and groups by ID // IdentityCache implements a simple ttl based cache for looking up users and groups by ID
@@ -94,7 +94,7 @@ func (cache IdentityCache) GetUser(ctx context.Context, userid string) (libregra
cs3UserID := &cs3User.UserId{ cs3UserID := &cs3User.UserId{
OpaqueId: userid, OpaqueId: userid,
} }
u, err := revautils.GetUserWithContext(ctx, cs3UserID, gatewayClient) u, err := revautils.GetUserNoGroups(ctx, cs3UserID, gatewayClient)
if err != nil { if err != nil {
if revautils.IsErrNotFound(err) { if revautils.IsErrNotFound(err) {
return libregraph.User{}, ErrNotFound return libregraph.User{}, ErrNotFound
@@ -26,7 +26,7 @@ func (s eventsNotifier) handleScienceMeshInviteTokenGenerated(e events.ScienceMe
return return
} }
owner, err := utils.GetUserWithContext(ctx, e.Sharer, gatewayClient) owner, err := utils.GetUserNoGroups(ctx, e.Sharer, gatewayClient)
if err != nil { if err != nil {
logger.Error().Err(err).Msg("unable to get user") logger.Error().Err(err).Msg("unable to get user")
return return
+2 -2
View File
@@ -79,7 +79,7 @@ func (s eventsNotifier) prepareShareCreated(logger zerolog.Logger, e events.Shar
return owner, shareFolder, shareLink, ctx, err return owner, shareFolder, shareLink, ctx, err
} }
owner, err = utils.GetUserWithContext(ctx, e.Sharer, gatewayClient) owner, err = utils.GetUserNoGroups(ctx, e.Sharer, gatewayClient)
if err != nil { if err != nil {
logger.Error(). logger.Error().
Err(err). Err(err).
@@ -108,7 +108,7 @@ func (s eventsNotifier) handleShareExpired(e events.ShareExpired, eventId string
return return
} }
owner, err := utils.GetUserWithContext(ctx, e.ShareOwner, gatewayClient) owner, err := utils.GetUserNoGroups(ctx, e.ShareOwner, gatewayClient)
if err != nil { if err != nil {
logger.Error().Err(err).Msg("Could not get user") logger.Error().Err(err).Msg("Could not get user")
return return
+3 -3
View File
@@ -61,7 +61,7 @@ func (s eventsNotifier) prepareSpaceShared(logger zerolog.Logger, e events.Space
return executant, spaceName, shareLink, ctx, err return executant, spaceName, shareLink, ctx, err
} }
executant, err = utils.GetUserWithContext(ctx, e.Executant, gatewayClient) executant, err = utils.GetUserNoGroups(ctx, e.Executant, gatewayClient)
if err != nil { if err != nil {
logger.Error(). logger.Error().
Err(err). Err(err).
@@ -146,7 +146,7 @@ func (s eventsNotifier) prepareSpaceUnshared(logger zerolog.Logger, e events.Spa
return executant, spaceName, shareLink, ctx, err return executant, spaceName, shareLink, ctx, err
} }
executant, err = utils.GetUserWithContext(ctx, e.Executant, gatewayClient) executant, err = utils.GetUserNoGroups(ctx, e.Executant, gatewayClient)
if err != nil { if err != nil {
logger.Error(). logger.Error().
Err(err). Err(err).
@@ -199,7 +199,7 @@ func (s eventsNotifier) handleSpaceMembershipExpired(e events.SpaceMembershipExp
return return
} }
owner, err := utils.GetUser(e.SpaceOwner, gatewayClient) owner, err := utils.GetUserNoGroups(ctx, e.SpaceOwner, gatewayClient)
if err != nil { if err != nil {
logger.Error(). logger.Error().
Err(err). Err(err).
+2 -2
View File
@@ -347,7 +347,7 @@ func (c *Converter) getResource(ctx context.Context, resourceID *storageprovider
return resource, err return resource, err
} }
func (c *Converter) getUser(_ context.Context, userID *user.UserId) (*user.User, error) { func (c *Converter) getUser(ctx context.Context, userID *user.UserId) (*user.User, error) {
if u, ok := c.users[userID.GetOpaqueId()]; ok { if u, ok := c.users[userID.GetOpaqueId()]; ok {
return u, nil return u, nil
} }
@@ -355,7 +355,7 @@ func (c *Converter) getUser(_ context.Context, userID *user.UserId) (*user.User,
if err != nil { if err != nil {
return nil, err return nil, err
} }
usr, err := utils.GetUser(userID, gwc) usr, err := utils.GetUserNoGroups(ctx, userID, gwc)
if err == nil { if err == nil {
c.users[userID.GetOpaqueId()] = usr c.users[userID.GetOpaqueId()] = usr
} }