diff options
author | Joas Schilling <coding@schilljs.com> | 2021-04-26 14:34:03 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2021-04-27 15:28:02 +0200 |
commit | 03b467bd237a2b7849092c3991a76ed1205bd583 (patch) | |
tree | 9ed1566fa3d3b471d8f7643faec02ad5d712ae11 /apps/provisioning_api/lib | |
parent | f67a10e8d096ba859540e678857e2611e3b2cfd0 (diff) | |
download | nextcloud-server-03b467bd237a2b7849092c3991a76ed1205bd583.tar.gz nextcloud-server-03b467bd237a2b7849092c3991a76ed1205bd583.zip |
Also check implementsAction method
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/provisioning_api/lib')
-rw-r--r-- | apps/provisioning_api/lib/Controller/UsersController.php | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index dad9fdfe3fa..115b955354b 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -50,6 +50,7 @@ use OC\Accounts\AccountManager; use OC\Authentication\Token\RemoteWipe; use OC\HintException; use OC\KnownUser\KnownUserService; +use OC\User\Backend; use OCA\Settings\Mailer\NewUserMailHelper; use OCP\Accounts\IAccountManager; use OCP\App\IAppManager; @@ -568,7 +569,8 @@ class UsersController extends AUserData { // Editing self (display, email) if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { - if ($targetUser->getBackend() instanceof ISetDisplayNameBackend) { + if ($targetUser->getBackend() instanceof ISetDisplayNameBackend + || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)) { $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME; } $permittedFields[] = IAccountManager::PROPERTY_EMAIL; @@ -607,7 +609,8 @@ class UsersController extends AUserData { if ($targetUser->getUID() === $currentLoggedInUser->getUID()) { // Editing self (display, email) if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { - if ($targetUser->getBackend() instanceof ISetDisplayNameBackend) { + if ($targetUser->getBackend() instanceof ISetDisplayNameBackend + || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)) { $permittedFields[] = 'display'; $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME; } @@ -649,7 +652,8 @@ class UsersController extends AUserData { if ($this->groupManager->isAdmin($currentLoggedInUser->getUID()) || $subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) { // They have permissions over the user - if ($targetUser->getBackend() instanceof ISetDisplayNameBackend) { + if ($targetUser->getBackend() instanceof ISetDisplayNameBackend + || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)) { $permittedFields[] = 'display'; $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME; } |