Fixes #7983 Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>tags/v14.0.0beta1
@@ -44,6 +44,7 @@ return [ | |||
['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'], | |||
['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'], | |||
['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', 'verb' => 'GET'], | |||
['root' => '/cloud', 'name' => 'Users#getEditableField', 'url' => '/user/fields', 'verb' => 'GET'], | |||
['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'], | |||
['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'], | |||
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'], |
@@ -296,6 +296,38 @@ class UsersController extends OCSController { | |||
return $data; | |||
} | |||
/** | |||
* @NoAdminRequired | |||
* @NoSubAdminRequired | |||
*/ | |||
public function getEditableField() { | |||
$permittedFields = []; | |||
// Editing self (display, email) | |||
if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { | |||
$permittedFields[] = AccountManager::PROPERTY_DISPLAYNAME; | |||
$permittedFields[] = AccountManager::PROPERTY_EMAIL; | |||
} | |||
$permittedFields[] = 'password'; | |||
if ($this->config->getSystemValue('force_language', false) === false) { | |||
$permittedFields[] = 'language'; | |||
} | |||
if ($this->appManager->isEnabledForUser('federatedfilesharing')) { | |||
$federatedFileSharing = new \OCA\FederatedFileSharing\AppInfo\Application(); | |||
$shareProvider = $federatedFileSharing->getFederatedShareProvider(); | |||
if ($shareProvider->isLookupServerUploadEnabled()) { | |||
$permittedFields[] = AccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = AccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = AccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = AccountManager::PROPERTY_TWITTER; | |||
} | |||
} | |||
return new DataResponse($permittedFields); | |||
} | |||
/** | |||
* @NoAdminRequired | |||
* @NoSubAdminRequired |