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

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorblizzz <blizzz@arthur-schiwon.de>2022-06-13 10:26:47 +0300
committerGitHub <noreply@github.com>2022-06-13 10:26:47 +0300
commita1d570b51a561a46343590645855b9148892efac (patch)
treefa6da1579d48cb9155b538d1a1c8d8254d435d5e /apps
parentb146d8d405841581adbf51171403da6146ec2087 (diff)
parentd328e3cd0607523237caa2bd372474d6c9718676 (diff)
Merge pull request #32833 from nextcloud/backport/32799/stable24
[stable24] Fix exception handling when profile data is too long
Diffstat (limited to 'apps')
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php6
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php54
2 files changed, 33 insertions, 27 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 38d51857ffc..a26479ba0a8 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -958,7 +958,11 @@ class UsersController extends AUserData {
} catch (PropertyDoesNotExistException $e) {
$userAccount->setProperty($key, $value, IAccountManager::SCOPE_PRIVATE, IAccountManager::NOT_VERIFIED);
}
- $this->accountManager->updateAccount($userAccount);
+ try {
+ $this->accountManager->updateAccount($userAccount);
+ } catch (InvalidArgumentException $e) {
+ throw new OCSException('Invalid ' . $e->getMessage(), 102);
+ }
break;
case IAccountManager::PROPERTY_PROFILE_ENABLED:
$userAccount = $this->accountManager->getAccount($targetUser);
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index 2ce5cadb57d..6162be54a04 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -939,9 +939,10 @@ class UsersControllerTest extends TestCase {
}
public function testGetUserDataAsAdmin() {
- $group = $this->getMockBuilder(IGroup::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $group0 = $this->createMock(IGroup::class);
+ $group1 = $this->createMock(IGroup::class);
+ $group2 = $this->createMock(IGroup::class);
+ $group3 = $this->createMock(IGroup::class);
$loggedInUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -975,7 +976,7 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->any())
->method('getUserGroups')
- ->willReturn([$group, $group, $group]);
+ ->willReturn([$group0, $group1, $group2]);
$this->groupManager
->expects($this->once())
->method('getSubAdmin')
@@ -983,17 +984,17 @@ class UsersControllerTest extends TestCase {
$subAdminManager
->expects($this->once())
->method('getSubAdminsGroups')
- ->willReturn([$group]);
- $group->expects($this->at(0))
+ ->willReturn([$group3]);
+ $group0->expects($this->once())
->method('getGID')
->willReturn('group0');
- $group->expects($this->at(1))
+ $group1->expects($this->once())
->method('getGID')
->willReturn('group1');
- $group->expects($this->at(2))
+ $group2->expects($this->once())
->method('getGID')
->willReturn('group2');
- $group->expects($this->at(3))
+ $group3->expects($this->once())
->method('getGID')
->willReturn('group3');
@@ -1009,10 +1010,10 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_PROFILE_ENABLED => ['value' => '1'],
]);
$this->config
- ->expects($this->at(0))
->method('getUserValue')
- ->with('UID', 'core', 'enabled', 'true')
- ->willReturn('true');
+ ->willReturnMap([
+ ['UID', 'core', 'enabled', 'true', 'true'],
+ ]);
$this->api
->expects($this->once())
->method('fillStorageInfo')
@@ -1136,10 +1137,10 @@ class UsersControllerTest extends TestCase {
->method('getSubAdmin')
->willReturn($subAdminManager);
$this->config
- ->expects($this->at(0))
->method('getUserValue')
- ->with('UID', 'core', 'enabled', 'true')
- ->willReturn('true');
+ ->willReturnMap([
+ ['UID', 'core', 'enabled', 'true', 'true'],
+ ]);
$this->api
->expects($this->once())
->method('fillStorageInfo')
@@ -3622,11 +3623,12 @@ class UsersControllerTest extends TestCase {
'profile_enabled' => '1'
];
- $api->expects($this->at(0))->method('getUserData')
- ->with('uid', false)
- ->willReturn($expected);
- $api->expects($this->at(1))->method('getUserData')
- ->with('currentuser', true)
+ $api->expects($this->exactly(2))
+ ->method('getUserData')
+ ->withConsecutive(
+ ['uid', false],
+ ['currentuser', true],
+ )
->willReturn($expected);
$this->assertSame($expected, $api->getUser('uid')->getData());
@@ -3812,11 +3814,11 @@ class UsersControllerTest extends TestCase {
->willReturn('abc@example.org');
$emailTemplate = $this->createMock(IEMailTemplate::class);
$this->newUserMailHelper
- ->expects($this->at(0))
+ ->expects($this->once())
->method('generateTemplate')
->willReturn($emailTemplate);
$this->newUserMailHelper
- ->expects($this->at(1))
+ ->expects($this->once())
->method('sendMail')
->with($targetUser, $emailTemplate);
@@ -3863,11 +3865,11 @@ class UsersControllerTest extends TestCase {
->getMock();
$emailTemplate = $this->createMock(IEMailTemplate::class);
$this->newUserMailHelper
- ->expects($this->at(0))
+ ->expects($this->once())
->method('generateTemplate')
->willReturn($emailTemplate);
$this->newUserMailHelper
- ->expects($this->at(1))
+ ->expects($this->once())
->method('sendMail')
->with($targetUser, $emailTemplate);
@@ -3916,11 +3918,11 @@ class UsersControllerTest extends TestCase {
->willReturn('abc@example.org');
$emailTemplate = $this->createMock(IEMailTemplate::class);
$this->newUserMailHelper
- ->expects($this->at(0))
+ ->expects($this->once())
->method('generateTemplate')
->willReturn($emailTemplate);
$this->newUserMailHelper
- ->expects($this->at(1))
+ ->expects($this->once())
->method('sendMail')
->with($targetUser, $emailTemplate)
->willThrowException(new \Exception());