ソースを参照

Check if password can be changed for the users backend in OCS api

Signed-off-by: Julius Härtl <jus@bitgrid.net>
Julius Härtl 5 年 前
コミット
add43bc19c

+ 3 - 0
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);

+ 4 - 0
apps/provisioning_api/tests/Controller/UsersControllerTest.php

@@ -1270,6 +1270,10 @@ class UsersControllerTest extends TestCase {
 			->method('get')
 			->with('UserToEdit')
 			->will($this->returnValue($targetUser));
+		$targetUser
+			->expects($this->once())
+			->method('canChangePassword')
+			->will($this->returnValue(true));
 		$targetUser
 			->expects($this->once())
 			->method('setPassword')