diff options
-rw-r--r-- | appinfo/routes.php | 7 | ||||
-rw-r--r-- | js/rooms.js | 7 | ||||
-rw-r--r-- | lib/Controller/CallController.php | 4 |
3 files changed, 14 insertions, 4 deletions
diff --git a/appinfo/routes.php b/appinfo/routes.php index 72f83ed6c..72d532cde 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -74,9 +74,12 @@ return [ ], [ 'name' => 'Call#leaveCall', - 'url' => '/api/{apiVersion}/call', + 'url' => '/api/{apiVersion}/call/{token}', 'verb' => 'DELETE', - 'requirements' => ['apiVersion' => 'v1'], + 'requirements' => [ + 'apiVersion' => 'v1', + 'token' => '^[a-z0-9]{4,30}$', + ], ], [ diff --git a/js/rooms.js b/js/rooms.js index 191b4a54a..635fa48f0 100644 --- a/js/rooms.js +++ b/js/rooms.js @@ -127,8 +127,13 @@ }); }, leaveAllRooms: function() { + var token = OCA.SpreedMe.Rooms.currentRoom(); + if (!token) { + return; + } + $.ajax({ - url: OC.linkToOCS('apps/spreed/api/v1/call', 2), + url: OC.linkToOCS('apps/spreed/api/v1/call', 2) + token, method: 'DELETE', async: false }); diff --git a/lib/Controller/CallController.php b/lib/Controller/CallController.php index ddd7ff884..ce477d00b 100644 --- a/lib/Controller/CallController.php +++ b/lib/Controller/CallController.php @@ -163,10 +163,12 @@ class CallController extends OCSController { * @PublicPage * @UseSession * + * @param string $token * @return DataResponse */ - public function leaveCall() { + public function leaveCall($token) { if ($this->userId !== null) { + // TODO: Currently we ignore $token, should be fixed at some point $this->manager->disconnectUserFromAllRooms($this->userId); } else { $sessionId = $this->session->get('spreed-session'); |