|
|
@ -32,6 +32,7 @@ namespace OCA\Provisioning_API\Controller; |
|
|
use OC\Accounts\AccountManager; |
|
|
use OC\Accounts\AccountManager; |
|
|
use OC\Settings\Mailer\NewUserMailHelper; |
|
|
use OC\Settings\Mailer\NewUserMailHelper; |
|
|
use OC_Helper; |
|
|
use OC_Helper; |
|
|
|
|
|
use OCP\App\IAppManager; |
|
|
use OCP\AppFramework\Http\DataResponse; |
|
|
use OCP\AppFramework\Http\DataResponse; |
|
|
use OCP\AppFramework\OCS\OCSException; |
|
|
use OCP\AppFramework\OCS\OCSException; |
|
|
use OCP\AppFramework\OCS\OCSForbiddenException; |
|
|
use OCP\AppFramework\OCS\OCSForbiddenException; |
|
|
@ -52,6 +53,8 @@ class UsersController extends OCSController { |
|
|
private $userManager; |
|
|
private $userManager; |
|
|
/** @var IConfig */ |
|
|
/** @var IConfig */ |
|
|
private $config; |
|
|
private $config; |
|
|
|
|
|
/** @var IAppManager */ |
|
|
|
|
|
private $appManager; |
|
|
/** @var IGroupManager|\OC\Group\Manager */ // FIXME Requires a method that is not on the interface
|
|
|
/** @var IGroupManager|\OC\Group\Manager */ // FIXME Requires a method that is not on the interface
|
|
|
private $groupManager; |
|
|
private $groupManager; |
|
|
/** @var IUserSession */ |
|
|
/** @var IUserSession */ |
|
|
@ -70,6 +73,7 @@ class UsersController extends OCSController { |
|
|
* @param IRequest $request |
|
|
* @param IRequest $request |
|
|
* @param IUserManager $userManager |
|
|
* @param IUserManager $userManager |
|
|
* @param IConfig $config |
|
|
* @param IConfig $config |
|
|
|
|
|
* @param IAppManager $appManager |
|
|
* @param IGroupManager $groupManager |
|
|
* @param IGroupManager $groupManager |
|
|
* @param IUserSession $userSession |
|
|
* @param IUserSession $userSession |
|
|
* @param AccountManager $accountManager |
|
|
* @param AccountManager $accountManager |
|
|
@ -81,6 +85,7 @@ class UsersController extends OCSController { |
|
|
IRequest $request, |
|
|
IRequest $request, |
|
|
IUserManager $userManager, |
|
|
IUserManager $userManager, |
|
|
IConfig $config, |
|
|
IConfig $config, |
|
|
|
|
|
IAppManager $appManager, |
|
|
IGroupManager $groupManager, |
|
|
IGroupManager $groupManager, |
|
|
IUserSession $userSession, |
|
|
IUserSession $userSession, |
|
|
AccountManager $accountManager, |
|
|
AccountManager $accountManager, |
|
|
@ -91,6 +96,7 @@ class UsersController extends OCSController { |
|
|
|
|
|
|
|
|
$this->userManager = $userManager; |
|
|
$this->userManager = $userManager; |
|
|
$this->config = $config; |
|
|
$this->config = $config; |
|
|
|
|
|
$this->appManager = $appManager; |
|
|
$this->groupManager = $groupManager; |
|
|
$this->groupManager = $groupManager; |
|
|
$this->userSession = $userSession; |
|
|
$this->userSession = $userSession; |
|
|
$this->accountManager = $accountManager; |
|
|
$this->accountManager = $accountManager; |
|
|
@ -309,14 +315,25 @@ class UsersController extends OCSController { |
|
|
$permittedFields = []; |
|
|
$permittedFields = []; |
|
|
if($targetUser->getUID() === $currentLoggedInUser->getUID()) { |
|
|
if($targetUser->getUID() === $currentLoggedInUser->getUID()) { |
|
|
// Editing self (display, email)
|
|
|
// Editing self (display, email)
|
|
|
$permittedFields[] = 'display'; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_DISPLAYNAME; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_EMAIL; |
|
|
|
|
|
|
|
|
if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { |
|
|
|
|
|
$permittedFields[] = 'display'; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_DISPLAYNAME; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_EMAIL; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$permittedFields[] = 'password'; |
|
|
$permittedFields[] = 'password'; |
|
|
$permittedFields[] = AccountManager::PROPERTY_PHONE; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_ADDRESS; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_WEBSITE; |
|
|
|
|
|
$permittedFields[] = AccountManager::PROPERTY_TWITTER; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// If admin they can edit their own quota
|
|
|
// If admin they can edit their own quota
|
|
|
if($this->groupManager->isAdmin($currentLoggedInUser->getUID())) { |
|
|
if($this->groupManager->isAdmin($currentLoggedInUser->getUID())) { |
|
|
$permittedFields[] = 'quota'; |
|
|
$permittedFields[] = 'quota'; |
|
|
|