Przeglądaj źródła

Fix injection to get the user id

Signed-off-by: Julius Härtl <jus@bitgrid.net>
tags/v15.0.0beta1
Julius Härtl 5 lat temu
rodzic
commit
5a73a9b9de
No account linked to committer's email address

+ 7
- 4
lib/private/Collaboration/Collaborators/RemotePlugin.php Wyświetl plik

@@ -31,6 +31,7 @@ use OCP\Contacts\IManager;
use OCP\Federation\ICloudIdManager;
use OCP\IConfig;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share;

class RemotePlugin implements ISearchPlugin {
@@ -45,15 +46,17 @@ class RemotePlugin implements ISearchPlugin {
/** @var IUserManager */
private $userManager;
/** @var string */
private $userId;
private $userId = '';

public function __construct(IManager $contactsManager, ICloudIdManager $cloudIdManager, IConfig $config, IUserManager $userManager, $userId) {
public function __construct(IManager $contactsManager, ICloudIdManager $cloudIdManager, IConfig $config, IUserManager $userManager, IUserSession $userSession) {
$this->contactsManager = $contactsManager;
$this->cloudIdManager = $cloudIdManager;
$this->config = $config;
$this->userManager = $userManager;
$this->userId = $userId;

$user = $userSession->getUser();
if ($user !== null) {
$this->userId = $user->getUID();
}
$this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes';
}


+ 11
- 1
tests/lib/Collaboration/Collaborators/RemotePluginTest.php Wyświetl plik

@@ -31,7 +31,9 @@ use OCP\Collaboration\Collaborators\SearchResultType;
use OCP\Contacts\IManager;
use OCP\Federation\ICloudIdManager;
use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share;
use Test\TestCase;

@@ -66,7 +68,15 @@ class RemotePluginTest extends TestCase {
}

public function instantiatePlugin() {
$this->plugin = new RemotePlugin($this->contactsManager, $this->cloudIdManager, $this->config, $this->userManager, 'admin');
$user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('admin');
$userSession = $this->createMock(IUserSession::class);
$userSession->expects($this->any())
->method('getUser')
->willReturn($user);
$this->plugin = new RemotePlugin($this->contactsManager, $this->cloudIdManager, $this->config, $this->userManager, $userSession);
}

/**

Ładowanie…
Anuluj
Zapisz