feat(contacts): support federated users/groups search when adding team members #57782
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds possibility to search for federated users (accounts from other instances) and federated groups when adding members to a team in the Contacts app.
Context
When searching for members to add to a team in the Contacts app, a GET request is made to
ocs/v2.php/apps/files_sharing/api/v1/shareeswhich in turn callsfiles_sharing/lib/Controller/ShareesAPIController::search().This is the same endpoint used by the Files app when searching to add an external share (used as a reference here, as pointed out in the issue).
Changes
files_sharing/lib/Controller/ShareesAPIController::search()to handlecontactsitemType, allowingTYPE_REMOTEandTYPE_REMOTE_GROUPsearchesFederatedShareProviderinto the controller constructor to check federation settingsFederatedShareProviderisRemoteSharingAllowed()andisRemoteGroupSharingAllowed()require a share backend implementationisShareTypeAllowed(), which ultimately invokes the sameFederatedShareProvidermethods used in this implementation (isOutgoingServer2serverShareEnabled()andisOutgoingServer2serverGroupShareEnabled())Note
When testing locally, the federated search functionality works correctly (remote users appear in search results). However, when attempting to actually add the remote member to a team, an error occurs indicating the remote instance is unreachable. I believe this is expected behavior when running locally, as a similar error occurs when trying to add an external share in the Files app using the same remote account, which is the reference implementation mentioned in the issue and was not modified in this PR.
Checklist
3. to review, feature component)stable32)