In case the API would return a room for some reason, it would return the
name as "Private Conversation". The logic has been updated to also work
properly with listable vs non-listable rooms in regards to guests.
Refactored the listable check logic into a single method to make it
reusable.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
This reverts commit ba01861c22a97db75e724ba253a5887bf28c7b19 but
preserves code relevant for the listable feature.
Removes the global search provider as it's adding additional noise to
the search results. Users should only use the talk-specific search in
the left sidebar.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Added new conversation settings section "Conversation settings" and
moved the listable and locking settings there.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Fix number detection in participantType tests
The guests app is now enabled.
The spreed app is whitelisted for guest account users.
A password is now set for the guest account users to be able to log in properly.
Added system message tests for listable and read-only attributes.
Added tests scenarios for permission checks and room type checks before
setting listable attribute.
Added integration tests for /listed-rooms endpoint
Covers permissions to search and also with and without search terms.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Added a spreedcheats endpoint to allow creating guest account
users for integration tests.
Grabs the GuestManager from the guests app to create a guest user in the
correct backend.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Whenever a logged in user joins a listable room, it is joined as
"Participant::USER". For this new situation we now also post a
system message about joining.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Always join as USER when joining group or public room
Allow nulls for Oracle
Changes after review
Removed populateBaseRoomData and reused the existing code by adding an
extra condition for when querying listable rooms with null participant.
Co-authored-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
When joining a listed conversation, the left sidebar now switches back
to the full list and displays a temporary entry while the joining
process is running.
When joining a conversation, the conversation list now automatically
scrolls to the item. It often happens that listable conversation entries
appear lower in the list, so they need to be made visible.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Added "/listable-room" endpoint for listing listable rooms with a similar
result format like the "/room" endpoint.
Switched left sidebar to use Conversation components for displaying
results.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Added ability to set a conversation as listable for regular users and/or
guest users from the guest app.
This only implements the flag, endpoint and UI to manage it but not yet
making it appear in search results.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>