Граф коммитов

91 Коммитов

Автор SHA1 Сообщение Дата
Joas Schilling dd1fd3bbe5
Receive shares in Talk/ folder
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-03-06 11:10:45 +01:00
Joas Schilling 10f078887b
Split the listener into a dedicated CollaboratorsListener
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-02-25 13:14:29 +01:00
Daniel Kesselberg caaf375912 Use IProviderManager to register resource provider
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2019-12-20 15:16:36 +01:00
Daniel Calviño Sánchez ca03cff331 Unify new LoadSidebarListener with previous TemplateLoader
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-12-18 11:50:23 +01:00
Arthur Schiwon 8e81d703a2
add flow operation, backend part
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-12-13 16:02:34 +01:00
Marco Ambrosini e1ff175908 Add talk sidebar tab for files
Signed-off-by: Marco Ambrosini <marcoambrosini@pm.me>
2019-12-13 09:17:58 +01:00
Joas Schilling 81db771748
Add constants for event names and use pattern
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-12-04 08:36:59 +01:00
Joas Schilling 0e1d2b39b9
Typed events for Talk
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-12-04 08:36:59 +01:00
Joas Schilling 1c950c6a93
Use DI for the middleware
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-10-17 10:09:37 +02:00
Daniel Calviño Sánchez 1ba0f4fd45 Add support for Talk sidebar in public share pages
When the public share page is loaded "publicshare.js" is initialized,
which modifies the page to add a Talk sidebar. The default layout has
the header, content and footer in a flex column; when the sidebar is
added the layout id modified to still have the header and content in a
flex column, but the content is now a flex row that includes
"#app-content" and the sidebar, and the footer is moved inside
"#app-content" so it does not affect the sidebar.

The Talk sidebar includes a call container at the top, which is only
shown during calls, and below it a call button and a chat view which are
always shown.

The CSS styles are a mix of the styles for the public share auth page
and the Files app, as well as some rules copied from the main
"style.scss" file.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-09-26 10:54:27 +02:00
Joas Schilling d4424477fe
Also prevent starting a call on API level
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-09-19 14:55:59 +02:00
Joas Schilling d4fc586f1a
Bye Spreed, hello Talk!
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-09-05 14:29:09 +02:00
Roeland Jago Douma ff71631870
Allow mic+camera using feature policy
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-08-08 08:53:05 +02:00
Joas Schilling 705847fa8b
Remove unused class import
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-07-18 12:23:58 +02:00
Joas Schilling b2f41fc736
Adjust notifier to Nextcloud 17
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-07-18 12:23:26 +02:00
Roeland Jago Douma 49f514cf5f
Use the CSP event
This makes sure we only set the CSP when it is actually needed

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-07-18 10:53:21 +02:00
Joas Schilling 79246e1d59
Start changelog implementation
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-04-01 16:00:13 +02:00
Julius Härtl 5dd9930706
WIP: Add collections frontend
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-03-27 10:43:20 +01:00
Joas Schilling 18b75cf997
Add a provider for linked collaboration resources
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-27 10:43:19 +01:00
Joas Schilling 7f0ef218bd
Use the app container to avoid one round trip
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-15 15:05:45 +01:00
Joas Schilling c5f2d5971c
Add "@RequireLoggedInParticipant" annotation
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-14 23:22:48 +01:00
Joas Schilling a2fc199811
Use a middleware to prevent access to the APIs too
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-01 11:02:25 +01:00
Joas Schilling 576ecfcc55
Register the navigation via Application so we can silence it if needed
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-01 08:53:22 +01:00
Joas Schilling 4aab4e5c09
Filter out users and groups that can not access Talk
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-03-01 08:53:22 +01:00
Joas Schilling 2f60aab4ab
Introduce a Message model for parsing which also allows to hide messages
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-20 12:17:37 +01:00
Joas Schilling c460128531
No patterns for now
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-20 12:17:34 +01:00
Joas Schilling 57d04a562e
Do not load unnecessary classes in Application
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-14 08:50:37 +01:00
Joas Schilling 2aec53cb49
Use the datetime factory everywhere
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-13 14:27:35 +01:00
Joas Schilling fb90a74231
Make all classes strict
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-12 16:07:59 +01:00
Joas Schilling 1ca9cdeb23
Merge pull request #1410 from nextcloud/add-global-content-security-policy-for-signaling-servers
Add global Content Security Policy for signaling servers
2019-01-23 13:58:00 +01:00
Joas Schilling 7cd75d80c1
Also add the stun and turn servers to the CSP
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-01-23 12:37:03 +01:00
Joas Schilling 75ac73f194
Remove "{user} wants to talk with you" notification when the participant joins the call
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-01-09 16:02:01 +01:00
Joas Schilling 5263cc8ba0
Remove "{actor} invited you to {call}" notification when the user joined the conversation once
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-01-09 16:01:19 +01:00
Daniel Calviño Sánchez b476f7cc97 Add global Content Security Policy for signaling servers
The default Content Security Policy restricts connections only to the
same domain of the page, so the domains of the web sockets used to
connect to the standalone signaling servers must be explicitly allowed.

This has to be done for Nextcloud as a whole, as Talk is embedded in
other apps by loading additional scripts in the browser, and thus it is
not possible to set the Content Security Policy in the controllers that
serve those apps.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-12-14 15:04:29 +01:00
Joachim Bauch c82c22412d
Pass empty list of session ids when notifying about removed guests.
This is just a workaround that fixes #1408, the cleaner solution should be
to get the list of session ids from the event and pass it along to the
signaling server.

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-12-14 13:38:19 +01:00
Joas Schilling 2d430f39e1
Use the existing method to get the participant instead of adding a new query
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-12-05 10:16:22 +01:00
Daniel Calviño Sánchez 8975f5e6b9 Add "refresh-participant-list" for participants in a room just deleted
Note, however, that the participant will never receive that message from
the signaling endpoint, but a 404 error due to the room no longer
existing. In any case, this ends the pending signaling request as soon
as the room is deleted instead of keep waiting until the timeout ends.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-12-04 20:09:11 +01:00
Daniel Calviño Sánchez 0149b9d31d Add "refresh-participant-list" for participants just removed
When a participant is removed or disconnected from a room the
"refresh-participant-list" signaling message is added to all the
participants in that room. However, the participant just removed or
disconnected is no longer in the room, so the message needs to be
explicitly added for that participant.

Note, however, that the participant will never receive that message from
the signaling endpoint, but a 404 error due to no longer being in the
room. In any case, this ends the pending signaling request as soon as
the participant is removed or disconnected instead of keep waiting until
the timeout ends.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-12-04 19:23:55 +01:00
Daniel Calviño Sánchez 432e1b0aa4 Show Talk sidebar in Files app
This commit introduces a DetailTabView plugin to show a chat view in the
sidebar of the Files app. The tab makes possible to chat in a Talk room
associated to the current file; due to this, the tab is visible only on
files that can be associated to a room, that is, files shared with the
current user or by the current user to another user (as a user, group,
circle...).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-12-03 15:48:41 +01:00
Daniel Calviño Sánchez 3b10351252 Prevent participants without access to the file from joining the room
The rooms associated to a file are public rooms, so anyone could join
them provided she knows its token. Thus, now it is enforced that only
participants with direct access to the file can join the room.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-11-29 18:35:21 +01:00
Joas Schilling 881fdd7cc9 Subscribe with the BackendNotifier
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-10-04 01:13:28 +02:00
Joas Schilling 5237f4299f
Introduce Chat\MessageParser which dispatches an event for all apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-09-27 15:18:43 +02:00
Joas Schilling 71bb925c01
Merge pull request #914 from nextcloud/in-call-flags
Change "inCall" state to contain bit flags (#911).
2018-08-24 23:30:46 +02:00
Daniel Calviño Sánchez 19186045f5
Implement hooks for deleting shares
When a user is removed from a room by any means all the shares owned and
received by that user are removed.

When a room is deleted all the shares in that room are deleted.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-08-24 16:23:15 +02:00
Joas Schilling 73e4ba5485
Add a const for magic 0 as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-08-24 10:52:20 +02:00
Joachim Bauch d4929b7525
Change "inCall" state to contain bit flags
The flags encode if a user is in the call and whether he is publishing
audio and/or video.

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-08-24 10:52:20 +02:00
Joas Schilling e6678362b4 Rename the Listener and register it like we register new listeners
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-08-08 10:24:49 +02:00
Daniel Calviño Sánchez 7190c2086f Load additional scripts in public share auth page when needed
Before the public share auth page is rendered an event is dispatched
that can be used by apps to load additional scripts. This event is now
used to load the scripts that, when run on the browser, will inject the
Talk UI as needed in the page generated by the server.

The scripts will be loaded only when the share has the "send password by
Talk" option enabled; they add a button to the page that, when pressed,
creates a new public share auth room with the sharer and shows, in a
sidebar, the Talk UI for that room.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-08-08 10:24:49 +02:00
Daniel Calviño Sánchez 94b4a18505 Prevent extra participants from joining a "share:password" room
The rooms to request the password for a share are public rooms, so
anyone could join them provided she knows its token. Thus, now it is
enforced that only a single participant besides the owner can join the
room.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-08-08 10:24:49 +02:00
Daniel Calviño Sánchez 7dfcbe2c5a Destroy "share:password" rooms as soon as one of the participants leaves
Due to their nature there is no point in keeping a room to request the
password of a share once any of the participants has left, so they are
automatically destroyed in that case.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-08-08 10:24:49 +02:00