Provide list of editable fields via OCS API
Fixes #7983 Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
fe7e726ab2
commit
70b19761aa
2 changed files with 33 additions and 0 deletions
|
@ -44,6 +44,7 @@ return [
|
||||||
['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'],
|
['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'],
|
||||||
['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'],
|
['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'],
|
||||||
['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', '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#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
|
||||||
['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'],
|
['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'],
|
||||||
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
|
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
|
||||||
|
|
|
@ -296,6 +296,38 @@ class UsersController extends OCSController {
|
||||||
return $data;
|
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
|
* @NoAdminRequired
|
||||||
* @NoSubAdminRequired
|
* @NoSubAdminRequired
|
||||||
|
|
Loading…
Reference in a new issue