Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2022-11-09 21:32:05 +0300
committerGitHub <noreply@github.com>2022-11-09 21:32:05 +0300
commitead324f35c91cca19df81877e7d6d7cd799d79f3 (patch)
tree9ab3ed52100484a2839baa0abc22bdb845879157
parent525b42e27f3ef4eee7b0e0d17214f0d0408ef29f (diff)
parentfabaff07f0bd35cf15a5b3291cfe744907350491 (diff)
Merge pull request #8330 from nextcloud/bugfix/8315/fix-signaling-server-check-when-blocked-from-talk
Fix signaling server check when admin is blocked from talk
-rw-r--r--lib/Middleware/CanUseTalkMiddleware.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Middleware/CanUseTalkMiddleware.php b/lib/Middleware/CanUseTalkMiddleware.php
index 482fbe57f..99ed059a1 100644
--- a/lib/Middleware/CanUseTalkMiddleware.php
+++ b/lib/Middleware/CanUseTalkMiddleware.php
@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace OCA\Talk\Middleware;
use OCA\Talk\Config;
+use OCA\Talk\Controller\SignalingController;
use OCA\Talk\Exceptions\ForbiddenException;
use OCA\Talk\Middleware\Exceptions\CanNotUseTalkException;
use OCA\Talk\Room;
@@ -36,20 +37,24 @@ use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController;
use OCP\AppFramework\Utility\IControllerMethodReflector;
use OCP\IConfig;
+use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
class CanUseTalkMiddleware extends Middleware {
private IUserSession $userSession;
+ private IGroupManager $groupManager;
private IControllerMethodReflector $reflector;
private Config $talkConfig;
private IConfig $serverConfig;
public function __construct(IUserSession $userSession,
+ IGroupManager $groupManager,
IControllerMethodReflector $reflector,
Config $talkConfig,
IConfig $serverConfig) {
$this->userSession = $userSession;
+ $this->groupManager = $groupManager;
$this->reflector = $reflector;
$this->talkConfig = $talkConfig;
$this->serverConfig = $serverConfig;
@@ -64,6 +69,12 @@ class CanUseTalkMiddleware extends Middleware {
public function beforeController($controller, $methodName): void {
$user = $this->userSession->getUser();
if ($user instanceof IUser && $this->talkConfig->isDisabledForUser($user)) {
+ if ($methodName === 'getWelcomeMessage'
+ && $controller instanceof SignalingController
+ && $this->groupManager->isAdmin($user->getUID())) {
+ return;
+ }
+
throw new CanNotUseTalkException();
}