Skip to content
Snippets Groups Projects
Unverified Commit a3381b1d authored by Björn Schießle's avatar Björn Schießle
Browse files

we need to initialize the mount points of the given user before we recover

access to his files
parent b441d3dc
No related branches found
No related tags found
No related merge requests found
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
namespace OCA\Encryption\Hooks; namespace OCA\Encryption\Hooks;
use OC\Files\Filesystem;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\Util as OCUtil; use OCP\Util as OCUtil;
use OCA\Encryption\Hooks\Contracts\IHook; use OCA\Encryption\Hooks\Contracts\IHook;
...@@ -243,6 +244,7 @@ class UserHooks implements IHook { ...@@ -243,6 +244,7 @@ class UserHooks implements IHook {
// used to decrypt it has changed // used to decrypt it has changed
} else { // admin changed the password for a different user, create new keys and re-encrypt file keys } else { // admin changed the password for a different user, create new keys and re-encrypt file keys
$user = $params['uid']; $user = $params['uid'];
$this->initMountPoints($user);
$recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null; $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null;
// we generate new keys if... // we generate new keys if...
...@@ -281,6 +283,15 @@ class UserHooks implements IHook { ...@@ -281,6 +283,15 @@ class UserHooks implements IHook {
} }
} }
/**
* init mount points for given user
*
* @param string $user
* @throws \OC\User\NoUserException
*/
protected function initMountPoints($user) {
Filesystem::initMountPoints($user);
}
/** /**
......
...@@ -29,6 +29,12 @@ use OCA\Encryption\Crypto\Crypt; ...@@ -29,6 +29,12 @@ use OCA\Encryption\Crypto\Crypt;
use OCA\Encryption\Hooks\UserHooks; use OCA\Encryption\Hooks\UserHooks;
use Test\TestCase; use Test\TestCase;
/**
* Class UserHooksTest
*
* @group DB
* @package OCA\Encryption\Tests\Hooks
*/
class UserHooksTest extends TestCase { class UserHooksTest extends TestCase {
/** /**
* @var \PHPUnit_Framework_MockObject_MockObject * @var \PHPUnit_Framework_MockObject_MockObject
...@@ -190,6 +196,23 @@ class UserHooksTest extends TestCase { ...@@ -190,6 +196,23 @@ class UserHooksTest extends TestCase {
->willReturnOnConsecutiveCalls(true, false); ->willReturnOnConsecutiveCalls(true, false);
$this->instance = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks')
->setConstructorArgs(
[
$this->keyManagerMock,
$this->userManagerMock,
$this->loggerMock,
$this->userSetupMock,
$this->userSessionMock,
$this->utilMock,
$this->sessionMock,
$this->cryptMock,
$this->recoveryMock
]
)->setMethods(['initMountPoints'])->getMock();
$this->instance->expects($this->exactly(3))->method('initMountPoints');
// Test first if statement // Test first if statement
$this->assertNull($this->instance->setPassphrase($this->params)); $this->assertNull($this->instance->setPassphrase($this->params));
...@@ -236,16 +259,20 @@ class UserHooksTest extends TestCase { ...@@ -236,16 +259,20 @@ class UserHooksTest extends TestCase {
->with('testUser') ->with('testUser')
->willReturn(false); ->willReturn(false);
$userHooks = new UserHooks($this->keyManagerMock, $userHooks = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks')
$this->userManagerMock, ->setConstructorArgs(
$this->loggerMock, [
$this->userSetupMock, $this->keyManagerMock,
$userSessionMock, $this->userManagerMock,
$this->utilMock, $this->loggerMock,
$this->sessionMock, $this->userSetupMock,
$this->cryptMock, $userSessionMock,
$this->recoveryMock $this->utilMock,
); $this->sessionMock,
$this->cryptMock,
$this->recoveryMock
]
)->setMethods(['initMountPoints'])->getMock();
$this->assertNull($userHooks->setPassphrase($this->params)); $this->assertNull($userHooks->setPassphrase($this->params));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment