mirror of
https://github.com/nextcloud/server.git
synced 2026-04-15 22:11:17 -04:00
adjust email verification checker
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
parent
bcedd4031d
commit
b30ce04e15
2 changed files with 19 additions and 20 deletions
|
|
@ -228,7 +228,7 @@ class AccountManager implements IAccountManager {
|
|||
$updated = true;
|
||||
|
||||
if ($userData !== $data) {
|
||||
$data = $this->checkEmailVerification($userData, $data, $user);
|
||||
|
||||
$this->updateExistingUser($user, $data);
|
||||
} else {
|
||||
// nothing needs to be done if new and old data set are the same
|
||||
|
|
@ -340,30 +340,31 @@ class AccountManager implements IAccountManager {
|
|||
|
||||
/**
|
||||
* check if we need to ask the server for email verification, if yes we create a cronjob
|
||||
*
|
||||
* @param $oldData
|
||||
* @param $newData
|
||||
* @param IUser $user
|
||||
* @return array
|
||||
*/
|
||||
protected function checkEmailVerification($oldData, $newData, IUser $user): array {
|
||||
if ($oldData[self::PROPERTY_EMAIL]['value'] !== $newData[self::PROPERTY_EMAIL]['value']) {
|
||||
|
||||
*/
|
||||
protected function checkEmailVerification(IAccount $updatedAccount, array $oldData): void {
|
||||
try {
|
||||
$property = $updatedAccount->getProperty(self::PROPERTY_EMAIL);
|
||||
} catch (PropertyDoesNotExistException $e) {
|
||||
return;
|
||||
}
|
||||
if ($oldData[self::PROPERTY_EMAIL]['value'] !== $property->getValue()) {
|
||||
$this->jobList->add(VerifyUserData::class,
|
||||
[
|
||||
'verificationCode' => '',
|
||||
'data' => $newData[self::PROPERTY_EMAIL]['value'],
|
||||
'data' => $property->getValue(),
|
||||
'type' => self::PROPERTY_EMAIL,
|
||||
'uid' => $user->getUID(),
|
||||
'uid' => $updatedAccount->getUser()->getUID(),
|
||||
'try' => 0,
|
||||
'lastRun' => time()
|
||||
]
|
||||
);
|
||||
$newData[self::PROPERTY_EMAIL]['verified'] = self::VERIFICATION_IN_PROGRESS;
|
||||
|
||||
|
||||
|
||||
|
||||
$property->setVerified(self::VERIFICATION_IN_PROGRESS);
|
||||
}
|
||||
|
||||
return $newData;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -639,8 +640,9 @@ class AccountManager implements IAccountManager {
|
|||
$this->testPropertyScope($property, $allowedScopes, true);
|
||||
}
|
||||
|
||||
$this->updateVerificationStatus($account, $this->getUser($account->getUser(), false));
|
||||
|
||||
$oldData = $this->getUser($account->getUser(), false);
|
||||
$this->updateVerificationStatus($account, $oldData);
|
||||
$this->checkEmailVerification($account, $oldData);
|
||||
|
||||
$this->updateUser($account->getUser(), $data, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ class AccountManagerTest extends TestCase {
|
|||
* @param bool $updateExisting
|
||||
*/
|
||||
public function testUpdateUser($newData, $oldData, $insertNew, $updateExisting) {
|
||||
$accountManager = $this->getInstance(['getUser', 'insertNewUser', 'updateExistingUser', 'checkEmailVerification']);
|
||||
$accountManager = $this->getInstance(['getUser', 'insertNewUser', 'updateExistingUser']);
|
||||
/** @var IUser $user */
|
||||
$user = $this->createMock(IUser::class);
|
||||
|
||||
|
|
@ -286,8 +286,6 @@ class AccountManagerTest extends TestCase {
|
|||
$accountManager->expects($this->once())->method('getUser')->with($user)->willReturn($oldData);
|
||||
|
||||
if ($updateExisting) {
|
||||
$accountManager->expects($this->once())->method('checkEmailVerification')
|
||||
->with($oldData, $newData, $user)->willReturn($newData);
|
||||
$accountManager->expects($this->once())->method('updateExistingUser')
|
||||
->with($user, $newData);
|
||||
$accountManager->expects($this->never())->method('insertNewUser');
|
||||
|
|
@ -300,7 +298,6 @@ class AccountManagerTest extends TestCase {
|
|||
|
||||
if (!$insertNew && !$updateExisting) {
|
||||
$accountManager->expects($this->never())->method('updateExistingUser');
|
||||
$accountManager->expects($this->never())->method('checkEmailVerification');
|
||||
$accountManager->expects($this->never())->method('insertNewUser');
|
||||
$this->eventDispatcher->expects($this->never())->method('dispatch');
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue