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
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-03-01 12:11:37 +0300
committerRoeland Jago Douma <roeland@famdouma.nl>2019-03-05 15:44:25 +0300
commitadd43bc19c2e7681668e6bc24b06d96e0ae8bd70 (patch)
tree8ca1214827e4917c6ef361e78646554c19763f7b /apps/provisioning_api
parentc91ae1133e727156a63a8fe1bdc3ad0f05f4851a (diff)
Check if password can be changed for the users backend in OCS api
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'apps/provisioning_api')
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php3
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php4
2 files changed, 7 insertions, 0 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index a034ff6d77a..c7625a26f59 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -513,6 +513,9 @@ class UsersController extends AUserData {
break;
case 'password':
try {
+ if (!$targetUser->canChangePassword()) {
+ throw new OCSException('Setting the password is not supported by the users backend', 103);
+ }
$targetUser->setPassword($value);
} catch (HintException $e) { // password policy error
throw new OCSException($e->getMessage(), 103);
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index fcdc68d353b..c6e0082c4b0 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -1272,6 +1272,10 @@ class UsersControllerTest extends TestCase {
->will($this->returnValue($targetUser));
$targetUser
->expects($this->once())
+ ->method('canChangePassword')
+ ->will($this->returnValue(true));
+ $targetUser
+ ->expects($this->once())
->method('setPassword')
->with('NewPassword');
$targetUser