summaryrefslogtreecommitdiffstats
path: root/settings/Controller
diff options
context:
space:
mode:
authorGreta Doci <gretadoci@gmail.com>2019-06-12 14:26:01 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2019-09-15 12:04:27 +0200
commit0a874c51af8dd6652c694f0545489af23d53771a (patch)
tree6781c94e2bb54cf4392ae826abf08086ff277321 /settings/Controller
parentd231fc9843b117c3361ce0b4e030d55c59607005 (diff)
downloadnextcloud-server-0a874c51af8dd6652c694f0545489af23d53771a.tar.gz
nextcloud-server-0a874c51af8dd6652c694f0545489af23d53771a.zip
Disable app token creation for impersonated people, ref #15539
Signed-off-by: Greta Doci <gretadoci@gmail.com>
Diffstat (limited to 'settings/Controller')
-rw-r--r--settings/Controller/AuthSettingsController.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/settings/Controller/AuthSettingsController.php b/settings/Controller/AuthSettingsController.php
index da9414dcb10..7582f1287b9 100644
--- a/settings/Controller/AuthSettingsController.php
+++ b/settings/Controller/AuthSettingsController.php
@@ -44,6 +44,7 @@ use OCP\AppFramework\Http\JSONResponse;
use OCP\ILogger;
use OCP\IRequest;
use OCP\ISession;
+use OCP\IUserSession;
use OCP\Security\ISecureRandom;
use OCP\Session\Exceptions\SessionNotAvailableException;
@@ -55,6 +56,9 @@ class AuthSettingsController extends Controller {
/** @var ISession */
private $session;
+ /** IUserSession */
+ private $userSession;
+
/** @var string */
private $uid;
@@ -77,6 +81,7 @@ class AuthSettingsController extends Controller {
* @param ISession $session
* @param ISecureRandom $random
* @param string|null $userId
+ * @param IUserSession $userSession
* @param IManager $activityManager
* @param RemoteWipe $remoteWipe
* @param ILogger $logger
@@ -87,12 +92,14 @@ class AuthSettingsController extends Controller {
ISession $session,
ISecureRandom $random,
?string $userId,
+ IUserSession $userSession,
IManager $activityManager,
RemoteWipe $remoteWipe,
ILogger $logger) {
parent::__construct($appName, $request);
$this->tokenProvider = $tokenProvider;
$this->uid = $userId;
+ $this->userSession = $userSession;
$this->session = $session;
$this->random = $random;
$this->activityManager = $activityManager;
@@ -114,6 +121,10 @@ class AuthSettingsController extends Controller {
} catch (SessionNotAvailableException $ex) {
return $this->getServiceNotAvailableResponse();
}
+ if ($this->userSession->getImpersonatingUserID() !== null)
+ {
+ return $this->getServiceNotAvailableResponse();
+ }
try {
$sessionToken = $this->tokenProvider->getToken($sessionId);