fix: missing invitation in permission responses

Fixes a bug where the `invitation` property is missing in the response when creating, listing or updating graph permissions.
This commit is contained in:
Jannik Stehle
2024-07-19 10:44:57 +02:00
parent 525c7ea45d
commit 752c0df4e9
3 changed files with 33 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
Bugfix: Missing invitation in permission responses
We have fixed a bug where the `invitation` property was missing in the response when creating, listing or updating graph permissions.
https://github.com/owncloud/ocis/pull/9652
https://github.com/owncloud/ocis/issues/9571

View File

@@ -16,6 +16,7 @@ import (
ocm "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1"
storageprovider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
types "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
revactx "github.com/cs3org/reva/v2/pkg/ctx"
"github.com/cs3org/reva/v2/pkg/publicshare"
"github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool"
"github.com/cs3org/reva/v2/pkg/share"
@@ -224,6 +225,19 @@ func (s DriveItemPermissionsService) Invite(ctx context.Context, resourceId *sto
permission.SetExpirationDateTime(utils.TSToTime(expiration))
}
if user, ok := revactx.ContextGetUser(ctx); ok {
identity, err := userIdToIdentity(ctx, s.identityCache, user.GetId().GetOpaqueId())
if err != nil {
s.logger.Error().Err(err).Msg("identity lookup failed")
return libregraph.Permission{}, errorcode.New(errorcode.InvalidRequest, err.Error())
}
permission.SetInvitation(libregraph.SharingInvitation{
InvitedBy: &libregraph.IdentitySet{
User: &identity,
},
})
}
return *permission, nil
}

View File

@@ -404,6 +404,19 @@ func (g BaseGraphService) cs3UserShareToPermission(ctx context.Context, share *c
perm.SetRoles(nil)
}
perm.SetGrantedToV2(grantedTo)
if share.GetCreator() != nil {
identity, err := cs3UserIdToIdentity(ctx, g.identityCache, share.GetCreator())
if err != nil {
return nil, errorcode.New(errorcode.GeneralException, err.Error())
}
perm.SetInvitation(
libregraph.SharingInvitation{
InvitedBy: &libregraph.IdentitySet{
User: &identity,
},
},
)
}
return &perm, nil
}