diff options
-rw-r--r-- | apps/provisioning_api/lib/Controller/UsersController.php | 3 | ||||
-rw-r--r-- | apps/provisioning_api/tests/Controller/UsersControllerTest.php | 4 |
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 |