Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v21.0.0beta1
@@ -26,6 +26,7 @@ | |||
namespace OCA\DAV\CardDAV; | |||
use OC\Accounts\AccountManager; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\IImage; | |||
use OCP\IUser; | |||
use Sabre\VObject\Component\VCard; | |||
@@ -62,8 +63,8 @@ class Converter { | |||
$publish = false; | |||
if ($image !== null && isset($userData[AccountManager::PROPERTY_AVATAR])) { | |||
$userData[AccountManager::PROPERTY_AVATAR]['value'] = true; | |||
if ($image !== null && isset($userData[IAccountManager::PROPERTY_AVATAR])) { | |||
$userData[IAccountManager::PROPERTY_AVATAR]['value'] = true; | |||
} | |||
foreach ($userData as $property => $value) { | |||
@@ -76,28 +77,28 @@ class Converter { | |||
if ($shareWithTrustedServers && !$emptyValue) { | |||
$publish = true; | |||
switch ($property) { | |||
case AccountManager::PROPERTY_DISPLAYNAME: | |||
case IAccountManager::PROPERTY_DISPLAYNAME: | |||
$vCard->add(new Text($vCard, 'FN', $value['value'])); | |||
$vCard->add(new Text($vCard, 'N', $this->splitFullName($value['value']))); | |||
break; | |||
case AccountManager::PROPERTY_AVATAR: | |||
case IAccountManager::PROPERTY_AVATAR: | |||
if ($image !== null) { | |||
$vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType()]); | |||
} | |||
break; | |||
case AccountManager::PROPERTY_EMAIL: | |||
case IAccountManager::PROPERTY_EMAIL: | |||
$vCard->add(new Text($vCard, 'EMAIL', $value['value'], ['TYPE' => 'OTHER'])); | |||
break; | |||
case AccountManager::PROPERTY_WEBSITE: | |||
case IAccountManager::PROPERTY_WEBSITE: | |||
$vCard->add(new Text($vCard, 'URL', $value['value'])); | |||
break; | |||
case AccountManager::PROPERTY_PHONE: | |||
case IAccountManager::PROPERTY_PHONE: | |||
$vCard->add(new Text($vCard, 'TEL', $value['value'], ['TYPE' => 'OTHER'])); | |||
break; | |||
case AccountManager::PROPERTY_ADDRESS: | |||
case IAccountManager::PROPERTY_ADDRESS: | |||
$vCard->add(new Text($vCard, 'ADR', $value['value'], ['TYPE' => 'OTHER'])); | |||
break; | |||
case AccountManager::PROPERTY_TWITTER: | |||
case IAccountManager::PROPERTY_TWITTER: | |||
$vCard->add(new Text($vCard, 'X-SOCIALPROFILE', $value['value'], ['TYPE' => 'TWITTER'])); | |||
break; | |||
} |
@@ -29,13 +29,14 @@ namespace OCA\DAV\Tests\unit\CardDAV; | |||
use OC\Accounts\AccountManager; | |||
use OCA\DAV\CardDAV\Converter; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\IImage; | |||
use OCP\IUser; | |||
use Test\TestCase; | |||
class ConverterTest extends TestCase { | |||
/** @var AccountManager | \PHPUnit\Framework\MockObject\MockObject */ | |||
/** @var AccountManager|\PHPUnit\Framework\MockObject\MockObject */ | |||
private $accountManager; | |||
protected function setUp(): void { | |||
@@ -49,36 +50,36 @@ class ConverterTest extends TestCase { | |||
->disableOriginalConstructor()->getMock(); | |||
$accountManager->expects($this->any())->method('getUser')->willReturn( | |||
[ | |||
AccountManager::PROPERTY_DISPLAYNAME => | |||
IAccountManager::PROPERTY_DISPLAYNAME => | |||
[ | |||
'value' => $user->getDisplayName(), | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY, | |||
], | |||
AccountManager::PROPERTY_ADDRESS => | |||
IAccountManager::PROPERTY_ADDRESS => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
], | |||
AccountManager::PROPERTY_WEBSITE => | |||
IAccountManager::PROPERTY_WEBSITE => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
], | |||
AccountManager::PROPERTY_EMAIL => | |||
IAccountManager::PROPERTY_EMAIL => | |||
[ | |||
'value' => $user->getEMailAddress(), | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY, | |||
], | |||
AccountManager::PROPERTY_AVATAR => | |||
IAccountManager::PROPERTY_AVATAR => | |||
[ | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY | |||
], | |||
AccountManager::PROPERTY_PHONE => | |||
IAccountManager::PROPERTY_PHONE => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
], | |||
AccountManager::PROPERTY_TWITTER => | |||
IAccountManager::PROPERTY_TWITTER => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, |
@@ -31,6 +31,7 @@ namespace OCA\DAV\Tests\unit\CardDAV; | |||
use OC\Accounts\AccountManager; | |||
use OCA\DAV\CardDAV\CardDavBackend; | |||
use OCA\DAV\CardDAV\SyncService; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\ILogger; | |||
use OCP\IUser; | |||
use OCP\IUserManager; | |||
@@ -132,36 +133,36 @@ class SyncServiceTest extends TestCase { | |||
$accountManager = $this->getMockBuilder(AccountManager::class)->disableOriginalConstructor()->getMock(); | |||
$accountManager->expects($this->any())->method('getUser') | |||
->willReturn([ | |||
AccountManager::PROPERTY_DISPLAYNAME => | |||
IAccountManager::PROPERTY_DISPLAYNAME => | |||
[ | |||
'value' => $user->getDisplayName(), | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY, | |||
], | |||
AccountManager::PROPERTY_ADDRESS => | |||
IAccountManager::PROPERTY_ADDRESS => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
], | |||
AccountManager::PROPERTY_WEBSITE => | |||
IAccountManager::PROPERTY_WEBSITE => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
], | |||
AccountManager::PROPERTY_EMAIL => | |||
IAccountManager::PROPERTY_EMAIL => | |||
[ | |||
'value' => $user->getEMailAddress(), | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY, | |||
], | |||
AccountManager::PROPERTY_AVATAR => | |||
IAccountManager::PROPERTY_AVATAR => | |||
[ | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY | |||
], | |||
AccountManager::PROPERTY_PHONE => | |||
IAccountManager::PROPERTY_PHONE => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
], | |||
AccountManager::PROPERTY_TWITTER => | |||
IAccountManager::PROPERTY_TWITTER => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, |
@@ -35,6 +35,7 @@ use OC\Accounts\AccountManager; | |||
use OC\User\Backend; | |||
use OC\User\NoUserException; | |||
use OC_Helper; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\AppFramework\OCS\OCSException; | |||
use OCP\AppFramework\OCS\OCSNotFoundException; | |||
use OCP\AppFramework\OCSController; | |||
@@ -135,12 +136,12 @@ abstract class AUserData extends OCSController { | |||
$data['backend'] = $targetUserObject->getBackendClassName(); | |||
$data['subadmin'] = $this->getUserSubAdminGroupsData($targetUserObject->getUID()); | |||
$data['quota'] = $this->fillStorageInfo($targetUserObject->getUID()); | |||
$data[AccountManager::PROPERTY_EMAIL] = $targetUserObject->getEMailAddress(); | |||
$data[AccountManager::PROPERTY_DISPLAYNAME] = $targetUserObject->getDisplayName(); | |||
$data[AccountManager::PROPERTY_PHONE] = $userAccount[AccountManager::PROPERTY_PHONE]['value']; | |||
$data[AccountManager::PROPERTY_ADDRESS] = $userAccount[AccountManager::PROPERTY_ADDRESS]['value']; | |||
$data[AccountManager::PROPERTY_WEBSITE] = $userAccount[AccountManager::PROPERTY_WEBSITE]['value']; | |||
$data[AccountManager::PROPERTY_TWITTER] = $userAccount[AccountManager::PROPERTY_TWITTER]['value']; | |||
$data[IAccountManager::PROPERTY_EMAIL] = $targetUserObject->getEMailAddress(); | |||
$data[IAccountManager::PROPERTY_DISPLAYNAME] = $targetUserObject->getDisplayName(); | |||
$data[IAccountManager::PROPERTY_PHONE] = $userAccount[IAccountManager::PROPERTY_PHONE]['value']; | |||
$data[IAccountManager::PROPERTY_ADDRESS] = $userAccount[IAccountManager::PROPERTY_ADDRESS]['value']; | |||
$data[IAccountManager::PROPERTY_WEBSITE] = $userAccount[IAccountManager::PROPERTY_WEBSITE]['value']; | |||
$data[IAccountManager::PROPERTY_TWITTER] = $userAccount[IAccountManager::PROPERTY_TWITTER]['value']; | |||
$data['groups'] = $gids; | |||
$data['language'] = $this->l10nFactory->getUserLanguage($targetUserObject); | |||
$data['locale'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'locale'); |
@@ -46,6 +46,7 @@ use OC\Authentication\Token\RemoteWipe; | |||
use OC\HintException; | |||
use OCA\Provisioning_API\FederatedShareProviderFactory; | |||
use OCA\Settings\Mailer\NewUserMailHelper; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\App\IAppManager; | |||
use OCP\AppFramework\Http\DataResponse; | |||
use OCP\AppFramework\OCS\OCSException; | |||
@@ -431,17 +432,17 @@ class UsersController extends AUserData { | |||
// 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[] = IAccountManager::PROPERTY_DISPLAYNAME; | |||
$permittedFields[] = IAccountManager::PROPERTY_EMAIL; | |||
} | |||
if ($this->appManager->isEnabledForUser('federatedfilesharing')) { | |||
$shareProvider = $this->federatedShareProviderFactory->get(); | |||
if ($shareProvider->isLookupServerUploadEnabled()) { | |||
$permittedFields[] = AccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = AccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = AccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = AccountManager::PROPERTY_TWITTER; | |||
$permittedFields[] = IAccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = IAccountManager::PROPERTY_TWITTER; | |||
} | |||
} | |||
@@ -474,8 +475,8 @@ class UsersController extends AUserData { | |||
// Editing self (display, email) | |||
if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { | |||
$permittedFields[] = 'display'; | |||
$permittedFields[] = AccountManager::PROPERTY_DISPLAYNAME; | |||
$permittedFields[] = AccountManager::PROPERTY_EMAIL; | |||
$permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME; | |||
$permittedFields[] = IAccountManager::PROPERTY_EMAIL; | |||
} | |||
$permittedFields[] = 'password'; | |||
@@ -492,10 +493,10 @@ class UsersController extends AUserData { | |||
if ($this->appManager->isEnabledForUser('federatedfilesharing')) { | |||
$shareProvider = $this->federatedShareProviderFactory->get(); | |||
if ($shareProvider->isLookupServerUploadEnabled()) { | |||
$permittedFields[] = AccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = AccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = AccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = AccountManager::PROPERTY_TWITTER; | |||
$permittedFields[] = IAccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = IAccountManager::PROPERTY_TWITTER; | |||
} | |||
} | |||
@@ -510,15 +511,15 @@ class UsersController extends AUserData { | |||
|| $subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) { | |||
// They have permissions over the user | |||
$permittedFields[] = 'display'; | |||
$permittedFields[] = AccountManager::PROPERTY_DISPLAYNAME; | |||
$permittedFields[] = AccountManager::PROPERTY_EMAIL; | |||
$permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME; | |||
$permittedFields[] = IAccountManager::PROPERTY_EMAIL; | |||
$permittedFields[] = 'password'; | |||
$permittedFields[] = 'language'; | |||
$permittedFields[] = 'locale'; | |||
$permittedFields[] = AccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = AccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = AccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = AccountManager::PROPERTY_TWITTER; | |||
$permittedFields[] = IAccountManager::PROPERTY_PHONE; | |||
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS; | |||
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE; | |||
$permittedFields[] = IAccountManager::PROPERTY_TWITTER; | |||
$permittedFields[] = 'quota'; | |||
} else { | |||
// No rights | |||
@@ -532,7 +533,7 @@ class UsersController extends AUserData { | |||
// Process the edit | |||
switch ($key) { | |||
case 'display': | |||
case AccountManager::PROPERTY_DISPLAYNAME: | |||
case IAccountManager::PROPERTY_DISPLAYNAME: | |||
$targetUser->setDisplayName($value); | |||
break; | |||
case 'quota': | |||
@@ -577,17 +578,17 @@ class UsersController extends AUserData { | |||
} | |||
$this->config->setUserValue($targetUser->getUID(), 'core', 'locale', $value); | |||
break; | |||
case AccountManager::PROPERTY_EMAIL: | |||
case IAccountManager::PROPERTY_EMAIL: | |||
if (filter_var($value, FILTER_VALIDATE_EMAIL) || $value === '') { | |||
$targetUser->setEMailAddress($value); | |||
} else { | |||
throw new OCSException('', 102); | |||
} | |||
break; | |||
case AccountManager::PROPERTY_PHONE: | |||
case AccountManager::PROPERTY_ADDRESS: | |||
case AccountManager::PROPERTY_WEBSITE: | |||
case AccountManager::PROPERTY_TWITTER: | |||
case IAccountManager::PROPERTY_PHONE: | |||
case IAccountManager::PROPERTY_ADDRESS: | |||
case IAccountManager::PROPERTY_WEBSITE: | |||
case IAccountManager::PROPERTY_TWITTER: | |||
$userAccount = $this->accountManager->getUser($targetUser); | |||
if ($userAccount[$key]['value'] !== $value) { | |||
$userAccount[$key]['value'] = $value; |
@@ -35,6 +35,7 @@ use OC\Group\Manager; | |||
use OC\SubAdmin; | |||
use OC\User\NoUserException; | |||
use OCA\Provisioning_API\Controller\GroupsController; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\IConfig; | |||
use OCP\ILogger; | |||
use OCP\IRequest; | |||
@@ -185,10 +186,10 @@ class GroupsControllerTest extends \Test\TestCase { | |||
->method('getUser') | |||
->willReturnCallback(function (IUser $user) { | |||
return [ | |||
AccountManager::PROPERTY_PHONE => ['value' => '0800-call-' . $user->getUID()], | |||
AccountManager::PROPERTY_ADDRESS => ['value' => 'Holzweg 99, 0601 Herrera, Panama'], | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'https://' . $user->getUid() . '.pa'], | |||
AccountManager::PROPERTY_TWITTER => ['value' => '@' . $user->getUID()], | |||
IAccountManager::PROPERTY_PHONE => ['value' => '0800-call-' . $user->getUID()], | |||
IAccountManager::PROPERTY_ADDRESS => ['value' => 'Holzweg 99, 0601 Herrera, Panama'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'https://' . $user->getUid() . '.pa'], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => '@' . $user->getUID()], | |||
]; | |||
}); | |||
} |
@@ -48,6 +48,7 @@ use OCA\FederatedFileSharing\FederatedShareProvider; | |||
use OCA\Provisioning_API\Controller\UsersController; | |||
use OCA\Provisioning_API\FederatedShareProviderFactory; | |||
use OCA\Settings\Mailer\NewUserMailHelper; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\App\IAppManager; | |||
use OCP\AppFramework\Http\DataResponse; | |||
use OCP\EventDispatcher\IEventDispatcher; | |||
@@ -993,10 +994,10 @@ class UsersControllerTest extends TestCase { | |||
->with($targetUser) | |||
->willReturn( | |||
[ | |||
AccountManager::PROPERTY_ADDRESS => ['value' => 'address'], | |||
AccountManager::PROPERTY_PHONE => ['value' => 'phone'], | |||
AccountManager::PROPERTY_TWITTER => ['value' => 'twitter'], | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'website'], | |||
IAccountManager::PROPERTY_ADDRESS => ['value' => 'address'], | |||
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'], | |||
] | |||
); | |||
$this->config | |||
@@ -1162,10 +1163,10 @@ class UsersControllerTest extends TestCase { | |||
->with($targetUser) | |||
->willReturn( | |||
[ | |||
AccountManager::PROPERTY_ADDRESS => ['value' => 'address'], | |||
AccountManager::PROPERTY_PHONE => ['value' => 'phone'], | |||
AccountManager::PROPERTY_TWITTER => ['value' => 'twitter'], | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'website'], | |||
IAccountManager::PROPERTY_ADDRESS => ['value' => 'address'], | |||
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'], | |||
] | |||
); | |||
@@ -1333,10 +1334,10 @@ class UsersControllerTest extends TestCase { | |||
->with($targetUser) | |||
->willReturn( | |||
[ | |||
AccountManager::PROPERTY_ADDRESS => ['value' => 'address'], | |||
AccountManager::PROPERTY_PHONE => ['value' => 'phone'], | |||
AccountManager::PROPERTY_TWITTER => ['value' => 'twitter'], | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'website'], | |||
IAccountManager::PROPERTY_ADDRESS => ['value' => 'address'], | |||
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'], | |||
] | |||
); | |||
@@ -3566,22 +3567,22 @@ class UsersControllerTest extends TestCase { | |||
return [ | |||
[false, false, []], | |||
[false, true, [ | |||
AccountManager::PROPERTY_PHONE, | |||
AccountManager::PROPERTY_ADDRESS, | |||
AccountManager::PROPERTY_WEBSITE, | |||
AccountManager::PROPERTY_TWITTER, | |||
IAccountManager::PROPERTY_PHONE, | |||
IAccountManager::PROPERTY_ADDRESS, | |||
IAccountManager::PROPERTY_WEBSITE, | |||
IAccountManager::PROPERTY_TWITTER, | |||
]], | |||
[ true, false, [ | |||
AccountManager::PROPERTY_DISPLAYNAME, | |||
AccountManager::PROPERTY_EMAIL, | |||
IAccountManager::PROPERTY_DISPLAYNAME, | |||
IAccountManager::PROPERTY_EMAIL, | |||
]], | |||
[ true, true ,[ | |||
AccountManager::PROPERTY_DISPLAYNAME, | |||
AccountManager::PROPERTY_EMAIL, | |||
AccountManager::PROPERTY_PHONE, | |||
AccountManager::PROPERTY_ADDRESS, | |||
AccountManager::PROPERTY_WEBSITE, | |||
AccountManager::PROPERTY_TWITTER, | |||
IAccountManager::PROPERTY_DISPLAYNAME, | |||
IAccountManager::PROPERTY_EMAIL, | |||
IAccountManager::PROPERTY_PHONE, | |||
IAccountManager::PROPERTY_ADDRESS, | |||
IAccountManager::PROPERTY_WEBSITE, | |||
IAccountManager::PROPERTY_TWITTER, | |||
]] | |||
]; | |||
} |
@@ -30,6 +30,7 @@ | |||
namespace OCA\Settings\BackgroundJobs; | |||
use OC\Accounts\AccountManager; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\AppFramework\Http; | |||
use OCP\BackgroundJob\IJobList; | |||
use OCP\BackgroundJob\Job; | |||
@@ -114,11 +115,11 @@ class VerifyUserData extends Job { | |||
$try = (int)$argument['try'] + 1; | |||
switch ($argument['type']) { | |||
case AccountManager::PROPERTY_WEBSITE: | |||
case IAccountManager::PROPERTY_WEBSITE: | |||
$result = $this->verifyWebsite($argument); | |||
break; | |||
case AccountManager::PROPERTY_TWITTER: | |||
case AccountManager::PROPERTY_EMAIL: | |||
case IAccountManager::PROPERTY_TWITTER: | |||
case IAccountManager::PROPERTY_EMAIL: | |||
$result = $this->verifyViaLookupServer($argument, $argument['type']); | |||
break; | |||
default: | |||
@@ -164,9 +165,9 @@ class VerifyUserData extends Job { | |||
$userData = $this->accountManager->getUser($user); | |||
if ($publishedCodeSanitized === $argument['verificationCode']) { | |||
$userData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFIED; | |||
$userData[IAccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFIED; | |||
} else { | |||
$userData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::NOT_VERIFIED; | |||
$userData[IAccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::NOT_VERIFIED; | |||
} | |||
$this->accountManager->updateUser($user, $userData); |
@@ -1,4 +1,6 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright Copyright (c) 2016, ownCloud, Inc. | |||
* | |||
@@ -30,7 +32,6 @@ | |||
// FIXME: disabled for now to be able to inject IGroupManager and also use | |||
// getSubAdmin() | |||
//declare(strict_types=1); | |||
namespace OCA\Settings\Controller; | |||
@@ -46,6 +47,7 @@ use OCA\FederatedFileSharing\FederatedShareProvider; | |||
use OCA\Settings\BackgroundJobs\VerifyUserData; | |||
use OCA\Settings\Events\BeforeTemplateRenderedEvent; | |||
use OCA\User_LDAP\User_Proxy; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\App\IAppManager; | |||
use OCP\AppFramework\Controller; | |||
use OCP\AppFramework\Http\DataResponse; | |||
@@ -140,7 +142,7 @@ class UsersController extends Controller { | |||
* | |||
* @return TemplateResponse | |||
*/ | |||
public function usersListByGroup() { | |||
public function usersListByGroup(): TemplateResponse { | |||
return $this->usersList(); | |||
} | |||
@@ -152,7 +154,7 @@ class UsersController extends Controller { | |||
* | |||
* @return TemplateResponse | |||
*/ | |||
public function usersList() { | |||
public function usersList(): TemplateResponse { | |||
$user = $this->userSession->getUser(); | |||
$uid = $user->getUID(); | |||
@@ -309,7 +311,7 @@ class UsersController extends Controller { | |||
* | |||
* @return bool | |||
*/ | |||
protected function canAdminChangeUserPasswords() { | |||
protected function canAdminChangeUserPasswords(): bool { | |||
$isEncryptionEnabled = $this->encryptionManager->isEnabled(); | |||
try { | |||
$noUserSpecificEncryptionKeys = !$this->encryptionManager->getEncryptionModule()->needDetailedAccessList(); | |||
@@ -344,19 +346,19 @@ class UsersController extends Controller { | |||
* @param string $twitterScope | |||
* @return DataResponse | |||
*/ | |||
public function setUserSettings($avatarScope, | |||
$displayname, | |||
$displaynameScope, | |||
$phone, | |||
$phoneScope, | |||
$email, | |||
$emailScope, | |||
$website, | |||
$websiteScope, | |||
$address, | |||
$addressScope, | |||
$twitter, | |||
$twitterScope | |||
public function setUserSettings(string $avatarScope, | |||
string $displayname, | |||
string $displaynameScope, | |||
string $phone, | |||
string $phoneScope, | |||
string $email, | |||
string $emailScope, | |||
string $website, | |||
string $websiteScope, | |||
string $address, | |||
string $addressScope, | |||
string $twitter, | |||
string $twitterScope | |||
) { | |||
$email = strtolower($email); | |||
if (!empty($email) && !$this->mailer->validateMailAddress($email)) { | |||
@@ -372,18 +374,18 @@ class UsersController extends Controller { | |||
} | |||
$user = $this->userSession->getUser(); | |||
$data = $this->accountManager->getUser($user); | |||
$data[AccountManager::PROPERTY_AVATAR] = ['scope' => $avatarScope]; | |||
$data[IAccountManager::PROPERTY_AVATAR] = ['scope' => $avatarScope]; | |||
if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { | |||
$data[AccountManager::PROPERTY_DISPLAYNAME] = ['value' => $displayname, 'scope' => $displaynameScope]; | |||
$data[AccountManager::PROPERTY_EMAIL] = ['value' => $email, 'scope' => $emailScope]; | |||
$data[IAccountManager::PROPERTY_DISPLAYNAME] = ['value' => $displayname, 'scope' => $displaynameScope]; | |||
$data[IAccountManager::PROPERTY_EMAIL] = ['value' => $email, 'scope' => $emailScope]; | |||
} | |||
if ($this->appManager->isEnabledForUser('federatedfilesharing')) { | |||
$shareProvider = \OC::$server->query(FederatedShareProvider::class); | |||
if ($shareProvider->isLookupServerUploadEnabled()) { | |||
$data[AccountManager::PROPERTY_WEBSITE] = ['value' => $website, 'scope' => $websiteScope]; | |||
$data[AccountManager::PROPERTY_ADDRESS] = ['value' => $address, 'scope' => $addressScope]; | |||
$data[AccountManager::PROPERTY_PHONE] = ['value' => $phone, 'scope' => $phoneScope]; | |||
$data[AccountManager::PROPERTY_TWITTER] = ['value' => $twitter, 'scope' => $twitterScope]; | |||
$data[IAccountManager::PROPERTY_WEBSITE] = ['value' => $website, 'scope' => $websiteScope]; | |||
$data[IAccountManager::PROPERTY_ADDRESS] = ['value' => $address, 'scope' => $addressScope]; | |||
$data[IAccountManager::PROPERTY_PHONE] = ['value' => $phone, 'scope' => $phoneScope]; | |||
$data[IAccountManager::PROPERTY_TWITTER] = ['value' => $twitter, 'scope' => $twitterScope]; | |||
} | |||
} | |||
try { | |||
@@ -393,15 +395,15 @@ class UsersController extends Controller { | |||
'status' => 'success', | |||
'data' => [ | |||
'userId' => $user->getUID(), | |||
'avatarScope' => $data[AccountManager::PROPERTY_AVATAR]['scope'], | |||
'displayname' => $data[AccountManager::PROPERTY_DISPLAYNAME]['value'], | |||
'displaynameScope' => $data[AccountManager::PROPERTY_DISPLAYNAME]['scope'], | |||
'email' => $data[AccountManager::PROPERTY_EMAIL]['value'], | |||
'emailScope' => $data[AccountManager::PROPERTY_EMAIL]['scope'], | |||
'website' => $data[AccountManager::PROPERTY_WEBSITE]['value'], | |||
'websiteScope' => $data[AccountManager::PROPERTY_WEBSITE]['scope'], | |||
'address' => $data[AccountManager::PROPERTY_ADDRESS]['value'], | |||
'addressScope' => $data[AccountManager::PROPERTY_ADDRESS]['scope'], | |||
'avatarScope' => $data[IAccountManager::PROPERTY_AVATAR]['scope'], | |||
'displayname' => $data[IAccountManager::PROPERTY_DISPLAYNAME]['value'], | |||
'displaynameScope' => $data[IAccountManager::PROPERTY_DISPLAYNAME]['scope'], | |||
'email' => $data[IAccountManager::PROPERTY_EMAIL]['value'], | |||
'emailScope' => $data[IAccountManager::PROPERTY_EMAIL]['scope'], | |||
'website' => $data[IAccountManager::PROPERTY_WEBSITE]['value'], | |||
'websiteScope' => $data[IAccountManager::PROPERTY_WEBSITE]['scope'], | |||
'address' => $data[IAccountManager::PROPERTY_ADDRESS]['value'], | |||
'addressScope' => $data[IAccountManager::PROPERTY_ADDRESS]['scope'], | |||
'message' => $this->l10n->t('Settings saved') | |||
] | |||
], | |||
@@ -423,30 +425,30 @@ class UsersController extends Controller { | |||
* @param array $data | |||
* @throws ForbiddenException | |||
*/ | |||
protected function saveUserSettings(IUser $user, array $data) { | |||
protected function saveUserSettings(IUser $user, array $data): void { | |||
// keep the user back-end up-to-date with the latest display name and email | |||
// address | |||
$oldDisplayName = $user->getDisplayName(); | |||
$oldDisplayName = is_null($oldDisplayName) ? '' : $oldDisplayName; | |||
if (isset($data[AccountManager::PROPERTY_DISPLAYNAME]['value']) | |||
&& $oldDisplayName !== $data[AccountManager::PROPERTY_DISPLAYNAME]['value'] | |||
if (isset($data[IAccountManager::PROPERTY_DISPLAYNAME]['value']) | |||
&& $oldDisplayName !== $data[IAccountManager::PROPERTY_DISPLAYNAME]['value'] | |||
) { | |||
$result = $user->setDisplayName($data[AccountManager::PROPERTY_DISPLAYNAME]['value']); | |||
$result = $user->setDisplayName($data[IAccountManager::PROPERTY_DISPLAYNAME]['value']); | |||
if ($result === false) { | |||
throw new ForbiddenException($this->l10n->t('Unable to change full name')); | |||
} | |||
} | |||
$oldEmailAddress = $user->getEMailAddress(); | |||
$oldEmailAddress = is_null($oldEmailAddress) ? '' : strtolower($oldEmailAddress); | |||
if (isset($data[AccountManager::PROPERTY_EMAIL]['value']) | |||
&& $oldEmailAddress !== $data[AccountManager::PROPERTY_EMAIL]['value'] | |||
if (isset($data[IAccountManager::PROPERTY_EMAIL]['value']) | |||
&& $oldEmailAddress !== $data[IAccountManager::PROPERTY_EMAIL]['value'] | |||
) { | |||
// this is the only permission a backend provides and is also used | |||
// for the permission of setting a email address | |||
if (!$user->canChangeDisplayName()) { | |||
throw new ForbiddenException($this->l10n->t('Unable to change email address')); | |||
} | |||
$user->setEMailAddress($data[AccountManager::PROPERTY_EMAIL]['value']); | |||
$user->setEMailAddress($data[IAccountManager::PROPERTY_EMAIL]['value']); | |||
} | |||
$this->accountManager->updateUser($user, $data); | |||
} | |||
@@ -479,19 +481,19 @@ class UsersController extends Controller { | |||
switch ($account) { | |||
case 'verify-twitter': | |||
$accountData[AccountManager::PROPERTY_TWITTER]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; | |||
$accountData[IAccountManager::PROPERTY_TWITTER]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; | |||
$msg = $this->l10n->t('In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):'); | |||
$code = $codeMd5; | |||
$type = AccountManager::PROPERTY_TWITTER; | |||
$data = $accountData[AccountManager::PROPERTY_TWITTER]['value']; | |||
$accountData[AccountManager::PROPERTY_TWITTER]['signature'] = $signature; | |||
$type = IAccountManager::PROPERTY_TWITTER; | |||
$data = $accountData[IAccountManager::PROPERTY_TWITTER]['value']; | |||
$accountData[IAccountManager::PROPERTY_TWITTER]['signature'] = $signature; | |||
break; | |||
case 'verify-website': | |||
$accountData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; | |||
$accountData[IAccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; | |||
$msg = $this->l10n->t('In order to verify your Website, store the following content in your web-root at \'.well-known/CloudIdVerificationCode.txt\' (please make sure that the complete text is in one line):'); | |||
$type = AccountManager::PROPERTY_WEBSITE; | |||
$data = $accountData[AccountManager::PROPERTY_WEBSITE]['value']; | |||
$accountData[AccountManager::PROPERTY_WEBSITE]['signature'] = $signature; | |||
$type = IAccountManager::PROPERTY_WEBSITE; | |||
$data = $accountData[IAccountManager::PROPERTY_WEBSITE]['value']; | |||
$accountData[IAccountManager::PROPERTY_WEBSITE]['signature'] = $signature; | |||
break; | |||
default: | |||
return new DataResponse([], Http::STATUS_BAD_REQUEST); |
@@ -1,4 +1,6 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> | |||
* | |||
@@ -33,6 +35,7 @@ namespace OCA\Settings\Settings\Personal; | |||
use OC\Accounts\AccountManager; | |||
use OCA\FederatedFileSharing\FederatedShareProvider; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\App\IAppManager; | |||
use OCP\AppFramework\Http\TemplateResponse; | |||
use OCP\Files\FileInfo; | |||
@@ -62,14 +65,6 @@ class PersonalInfo implements ISettings { | |||
/** @var IL10N */ | |||
private $l; | |||
/** | |||
* @param IConfig $config | |||
* @param IUserManager $userManager | |||
* @param IGroupManager $groupManager | |||
* @param AccountManager $accountManager | |||
* @param IFactory $l10nFactory | |||
* @param IL10N $l | |||
*/ | |||
public function __construct( | |||
IConfig $config, | |||
IUserManager $userManager, | |||
@@ -88,11 +83,7 @@ class PersonalInfo implements ISettings { | |||
$this->l = $l; | |||
} | |||
/** | |||
* @return TemplateResponse returns the instance with all parameters set, ready to be rendered | |||
* @since 9.1 | |||
*/ | |||
public function getForm() { | |||
public function getForm(): TemplateResponse { | |||
$federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing'); | |||
$lookupServerUploadEnabled = false; | |||
if ($federatedFileSharingEnabled) { | |||
@@ -126,23 +117,23 @@ class PersonalInfo implements ISettings { | |||
'quota' => $storageInfo['quota'], | |||
'avatarChangeSupported' => $user->canChangeAvatar(), | |||
'lookupServerUploadEnabled' => $lookupServerUploadEnabled, | |||
'avatarScope' => $userData[AccountManager::PROPERTY_AVATAR]['scope'], | |||
'avatarScope' => $userData[IAccountManager::PROPERTY_AVATAR]['scope'], | |||
'displayNameChangeSupported' => $user->canChangeDisplayName(), | |||
'displayName' => $userData[AccountManager::PROPERTY_DISPLAYNAME]['value'], | |||
'displayNameScope' => $userData[AccountManager::PROPERTY_DISPLAYNAME]['scope'], | |||
'email' => $userData[AccountManager::PROPERTY_EMAIL]['value'], | |||
'emailScope' => $userData[AccountManager::PROPERTY_EMAIL]['scope'], | |||
'emailVerification' => $userData[AccountManager::PROPERTY_EMAIL]['verified'], | |||
'phone' => $userData[AccountManager::PROPERTY_PHONE]['value'], | |||
'phoneScope' => $userData[AccountManager::PROPERTY_PHONE]['scope'], | |||
'address' => $userData[AccountManager::PROPERTY_ADDRESS]['value'], | |||
'addressScope' => $userData[AccountManager::PROPERTY_ADDRESS]['scope'], | |||
'website' => $userData[AccountManager::PROPERTY_WEBSITE]['value'], | |||
'websiteScope' => $userData[AccountManager::PROPERTY_WEBSITE]['scope'], | |||
'websiteVerification' => $userData[AccountManager::PROPERTY_WEBSITE]['verified'], | |||
'twitter' => $userData[AccountManager::PROPERTY_TWITTER]['value'], | |||
'twitterScope' => $userData[AccountManager::PROPERTY_TWITTER]['scope'], | |||
'twitterVerification' => $userData[AccountManager::PROPERTY_TWITTER]['verified'], | |||
'displayName' => $userData[IAccountManager::PROPERTY_DISPLAYNAME]['value'], | |||
'displayNameScope' => $userData[IAccountManager::PROPERTY_DISPLAYNAME]['scope'], | |||
'email' => $userData[IAccountManager::PROPERTY_EMAIL]['value'], | |||
'emailScope' => $userData[IAccountManager::PROPERTY_EMAIL]['scope'], | |||
'emailVerification' => $userData[IAccountManager::PROPERTY_EMAIL]['verified'], | |||
'phone' => $userData[IAccountManager::PROPERTY_PHONE]['value'], | |||
'phoneScope' => $userData[IAccountManager::PROPERTY_PHONE]['scope'], | |||
'address' => $userData[IAccountManager::PROPERTY_ADDRESS]['value'], | |||
'addressScope' => $userData[IAccountManager::PROPERTY_ADDRESS]['scope'], | |||
'website' => $userData[IAccountManager::PROPERTY_WEBSITE]['value'], | |||
'websiteScope' => $userData[IAccountManager::PROPERTY_WEBSITE]['scope'], | |||
'websiteVerification' => $userData[IAccountManager::PROPERTY_WEBSITE]['verified'], | |||
'twitter' => $userData[IAccountManager::PROPERTY_TWITTER]['value'], | |||
'twitterScope' => $userData[IAccountManager::PROPERTY_TWITTER]['scope'], | |||
'twitterVerification' => $userData[IAccountManager::PROPERTY_TWITTER]['verified'], | |||
'groups' => $this->getGroups($user), | |||
] + $messageParameters + $languageParameters + $localeParameters; | |||
@@ -154,7 +145,7 @@ class PersonalInfo implements ISettings { | |||
* @return string the section ID, e.g. 'sharing' | |||
* @since 9.1 | |||
*/ | |||
public function getSection() { | |||
public function getSection(): string { | |||
return 'personal-info'; | |||
} | |||
@@ -166,7 +157,7 @@ class PersonalInfo implements ISettings { | |||
* E.g.: 70 | |||
* @since 9.1 | |||
*/ | |||
public function getPriority() { | |||
public function getPriority(): int { | |||
return 10; | |||
} | |||
@@ -176,9 +167,9 @@ class PersonalInfo implements ISettings { | |||
* @param IUser $user | |||
* @return array | |||
*/ | |||
private function getGroups(IUser $user) { | |||
private function getGroups(IUser $user): array { | |||
$groups = array_map( | |||
function (IGroup $group) { | |||
static function (IGroup $group) { | |||
return $group->getDisplayName(); | |||
}, | |||
$this->groupManager->getUserGroups($user) | |||
@@ -195,7 +186,7 @@ class PersonalInfo implements ISettings { | |||
* @param IUser $user | |||
* @return array | |||
*/ | |||
private function getLanguages(IUser $user) { | |||
private function getLanguages(IUser $user): array { | |||
$forceLanguage = $this->config->getSystemValue('force_language', false); | |||
if ($forceLanguage !== false) { | |||
return []; | |||
@@ -228,7 +219,7 @@ class PersonalInfo implements ISettings { | |||
); | |||
} | |||
private function getLocales(IUser $user) { | |||
private function getLocales(IUser $user): array { | |||
$forceLanguage = $this->config->getSystemValue('force_locale', false); | |||
if ($forceLanguage !== false) { | |||
return []; | |||
@@ -273,8 +264,8 @@ class PersonalInfo implements ISettings { | |||
* @param array $userData | |||
* @return array | |||
*/ | |||
private function getMessageParameters(array $userData) { | |||
$needVerifyMessage = [AccountManager::PROPERTY_EMAIL, AccountManager::PROPERTY_WEBSITE, AccountManager::PROPERTY_TWITTER]; | |||
private function getMessageParameters(array $userData): array { | |||
$needVerifyMessage = [IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_WEBSITE, IAccountManager::PROPERTY_TWITTER]; | |||
$messageParameters = []; | |||
foreach ($needVerifyMessage as $property) { | |||
switch ($userData[$property]['verified']) { |
@@ -31,6 +31,7 @@ use OC\Accounts\AccountManager; | |||
use OC\Encryption\Exceptions\ModuleDoesNotExistsException; | |||
use OC\Group\Manager; | |||
use OCA\Settings\Controller\UsersController; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\App\IAppManager; | |||
use OCP\AppFramework\Http; | |||
use OCP\BackgroundJob\IJobList; | |||
@@ -196,41 +197,41 @@ class UsersControllerTest extends \Test\TestCase { | |||
->method('getUser') | |||
->with($user) | |||
->willReturn([ | |||
AccountManager::PROPERTY_DISPLAYNAME => | |||
IAccountManager::PROPERTY_DISPLAYNAME => | |||
[ | |||
'value' => 'Display name', | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY, | |||
'verified' => AccountManager::NOT_VERIFIED, | |||
], | |||
AccountManager::PROPERTY_ADDRESS => | |||
IAccountManager::PROPERTY_ADDRESS => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
'verified' => AccountManager::NOT_VERIFIED, | |||
], | |||
AccountManager::PROPERTY_WEBSITE => | |||
IAccountManager::PROPERTY_WEBSITE => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
'verified' => AccountManager::NOT_VERIFIED, | |||
], | |||
AccountManager::PROPERTY_EMAIL => | |||
IAccountManager::PROPERTY_EMAIL => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY, | |||
'verified' => AccountManager::NOT_VERIFIED, | |||
], | |||
AccountManager::PROPERTY_AVATAR => | |||
IAccountManager::PROPERTY_AVATAR => | |||
[ | |||
'scope' => AccountManager::VISIBILITY_CONTACTS_ONLY | |||
], | |||
AccountManager::PROPERTY_PHONE => | |||
IAccountManager::PROPERTY_PHONE => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
'verified' => AccountManager::NOT_VERIFIED, | |||
], | |||
AccountManager::PROPERTY_TWITTER => | |||
IAccountManager::PROPERTY_TWITTER => | |||
[ | |||
'value' => '', | |||
'scope' => AccountManager::VISIBILITY_PRIVATE, | |||
@@ -289,21 +290,21 @@ class UsersControllerTest extends \Test\TestCase { | |||
$user->method('getEMailAddress')->willReturn($oldEmailAddress); | |||
$user->method('canChangeDisplayName')->willReturn(true); | |||
if ($data[AccountManager::PROPERTY_EMAIL]['value'] === $oldEmailAddress || | |||
($oldEmailAddress === null && $data[AccountManager::PROPERTY_EMAIL]['value'] === '')) { | |||
if ($data[IAccountManager::PROPERTY_EMAIL]['value'] === $oldEmailAddress || | |||
($oldEmailAddress === null && $data[IAccountManager::PROPERTY_EMAIL]['value'] === '')) { | |||
$user->expects($this->never())->method('setEMailAddress'); | |||
} else { | |||
$user->expects($this->once())->method('setEMailAddress') | |||
->with($data[AccountManager::PROPERTY_EMAIL]['value']) | |||
->with($data[IAccountManager::PROPERTY_EMAIL]['value']) | |||
->willReturn(true); | |||
} | |||
if ($data[AccountManager::PROPERTY_DISPLAYNAME]['value'] === $oldDisplayName || | |||
($oldDisplayName === null && $data[AccountManager::PROPERTY_DISPLAYNAME]['value'] === '')) { | |||
if ($data[IAccountManager::PROPERTY_DISPLAYNAME]['value'] === $oldDisplayName || | |||
($oldDisplayName === null && $data[IAccountManager::PROPERTY_DISPLAYNAME]['value'] === '')) { | |||
$user->expects($this->never())->method('setDisplayName'); | |||
} else { | |||
$user->expects($this->once())->method('setDisplayName') | |||
->with($data[AccountManager::PROPERTY_DISPLAYNAME]['value']) | |||
->with($data[IAccountManager::PROPERTY_DISPLAYNAME]['value']) | |||
->willReturn(true); | |||
} | |||
@@ -317,48 +318,48 @@ class UsersControllerTest extends \Test\TestCase { | |||
return [ | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'john@example.com', | |||
'john doe' | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'johnNew@example.com', | |||
'john New doe' | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'johnNew@example.com', | |||
'john doe' | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'john@example.com', | |||
'john New doe' | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
null, | |||
'john New doe' | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'john@example.com', | |||
null | |||
@@ -391,14 +392,14 @@ class UsersControllerTest extends \Test\TestCase { | |||
$user->method('getDisplayName')->willReturn($oldDisplayName); | |||
$user->method('getEMailAddress')->willReturn($oldEmailAddress); | |||
if ($data[AccountManager::PROPERTY_EMAIL]['value'] !== $oldEmailAddress) { | |||
if ($data[IAccountManager::PROPERTY_EMAIL]['value'] !== $oldEmailAddress) { | |||
$user->method('canChangeDisplayName') | |||
->willReturn($canChangeEmail); | |||
} | |||
if ($data[AccountManager::PROPERTY_DISPLAYNAME]['value'] !== $oldDisplayName) { | |||
if ($data[IAccountManager::PROPERTY_DISPLAYNAME]['value'] !== $oldDisplayName) { | |||
$user->method('setDisplayName') | |||
->with($data[AccountManager::PROPERTY_DISPLAYNAME]['value']) | |||
->with($data[IAccountManager::PROPERTY_DISPLAYNAME]['value']) | |||
->willReturn($setDisplayNameResult); | |||
} | |||
@@ -410,8 +411,8 @@ class UsersControllerTest extends \Test\TestCase { | |||
return [ | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'johnNew@example.com', | |||
'john New doe', | |||
@@ -420,8 +421,8 @@ class UsersControllerTest extends \Test\TestCase { | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'johnNew@example.com', | |||
'john New doe', | |||
@@ -430,8 +431,8 @@ class UsersControllerTest extends \Test\TestCase { | |||
], | |||
[ | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'john@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'john doe'], | |||
], | |||
'johnNew@example.com', | |||
'john New doe', | |||
@@ -455,7 +456,7 @@ class UsersControllerTest extends \Test\TestCase { | |||
$signature = 'theSignature'; | |||
$code = $message . ' ' . $signature; | |||
if ($type === AccountManager::PROPERTY_TWITTER) { | |||
if ($type === IAccountManager::PROPERTY_TWITTER) { | |||
$code = $message . ' ' . md5($signature); | |||
} | |||
@@ -492,25 +493,25 @@ class UsersControllerTest extends \Test\TestCase { | |||
public function dataTestGetVerificationCode() { | |||
$accountDataBefore = [ | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => AccountManager::NOT_VERIFIED], | |||
AccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => AccountManager::NOT_VERIFIED, 'signature' => 'theSignature'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => AccountManager::NOT_VERIFIED], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => AccountManager::NOT_VERIFIED, 'signature' => 'theSignature'], | |||
]; | |||
$accountDataAfterWebsite = [ | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => AccountManager::VERIFICATION_IN_PROGRESS, 'signature' => 'theSignature'], | |||
AccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => AccountManager::NOT_VERIFIED, 'signature' => 'theSignature'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => AccountManager::VERIFICATION_IN_PROGRESS, 'signature' => 'theSignature'], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => AccountManager::NOT_VERIFIED, 'signature' => 'theSignature'], | |||
]; | |||
$accountDataAfterTwitter = [ | |||
AccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => AccountManager::NOT_VERIFIED], | |||
AccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => AccountManager::VERIFICATION_IN_PROGRESS, 'signature' => 'theSignature'], | |||
IAccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => AccountManager::NOT_VERIFIED], | |||
IAccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => AccountManager::VERIFICATION_IN_PROGRESS, 'signature' => 'theSignature'], | |||
]; | |||
return [ | |||
['verify-twitter', AccountManager::PROPERTY_TWITTER, $accountDataBefore, $accountDataAfterTwitter, false], | |||
['verify-website', AccountManager::PROPERTY_WEBSITE, $accountDataBefore, $accountDataAfterWebsite, false], | |||
['verify-twitter', AccountManager::PROPERTY_TWITTER, $accountDataBefore, $accountDataAfterTwitter, true], | |||
['verify-website', AccountManager::PROPERTY_WEBSITE, $accountDataBefore, $accountDataAfterWebsite, true], | |||
['verify-twitter', IAccountManager::PROPERTY_TWITTER, $accountDataBefore, $accountDataAfterTwitter, false], | |||
['verify-website', IAccountManager::PROPERTY_WEBSITE, $accountDataBefore, $accountDataAfterWebsite, false], | |||
['verify-twitter', IAccountManager::PROPERTY_TWITTER, $accountDataBefore, $accountDataAfterTwitter, true], | |||
['verify-website', IAccountManager::PROPERTY_WEBSITE, $accountDataBefore, $accountDataAfterWebsite, true], | |||
]; | |||
} | |||
@@ -173,7 +173,7 @@ class AccountManager implements IAccountManager { | |||
'lastRun' => time() | |||
] | |||
); | |||
$newData[AccountManager::PROPERTY_EMAIL]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; | |||
$newData[self::PROPERTY_EMAIL]['verified'] = self::VERIFICATION_IN_PROGRESS; | |||
} | |||
return $newData; |
@@ -24,6 +24,7 @@ | |||
namespace OC\Accounts; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\IUser; | |||
use Psr\Log\LoggerInterface; | |||
@@ -61,14 +62,14 @@ class Hooks { | |||
switch ($feature) { | |||
case 'eMailAddress': | |||
if ($accountData[AccountManager::PROPERTY_EMAIL]['value'] !== $newValue) { | |||
$accountData[AccountManager::PROPERTY_EMAIL]['value'] = $newValue; | |||
if ($accountData[IAccountManager::PROPERTY_EMAIL]['value'] !== $newValue) { | |||
$accountData[IAccountManager::PROPERTY_EMAIL]['value'] = $newValue; | |||
$accountManager->updateUser($user, $accountData); | |||
} | |||
break; | |||
case 'displayName': | |||
if ($accountData[AccountManager::PROPERTY_DISPLAYNAME]['value'] !== $newValue) { | |||
$accountData[AccountManager::PROPERTY_DISPLAYNAME]['value'] = $newValue; | |||
if ($accountData[IAccountManager::PROPERTY_DISPLAYNAME]['value'] !== $newValue) { | |||
$accountData[IAccountManager::PROPERTY_DISPLAYNAME]['value'] = $newValue; | |||
$accountManager->updateUser($user, $accountData); | |||
} | |||
break; |
@@ -23,6 +23,7 @@ namespace Test\Accounts; | |||
use OC\Accounts\AccountManager; | |||
use OC\Accounts\Hooks; | |||
use OCP\Accounts\IAccountManager; | |||
use OCP\IUser; | |||
use PHPUnit\Framework\MockObject\MockObject; | |||
use Psr\Log\LoggerInterface; | |||
@@ -77,11 +78,11 @@ class HooksTest extends TestCase { | |||
$this->accountManager->expects($this->once())->method('getUser')->willReturn($data); | |||
$newData = $data; | |||
if ($setEmail) { | |||
$newData[AccountManager::PROPERTY_EMAIL]['value'] = $params['value']; | |||
$newData[IAccountManager::PROPERTY_EMAIL]['value'] = $params['value']; | |||
$this->accountManager->expects($this->once())->method('updateUser') | |||
->with($params['user'], $newData); | |||
} elseif ($setDisplayName) { | |||
$newData[AccountManager::PROPERTY_DISPLAYNAME]['value'] = $params['value']; | |||
$newData[IAccountManager::PROPERTY_DISPLAYNAME]['value'] = $params['value']; | |||
$this->accountManager->expects($this->once())->method('updateUser') | |||
->with($params['user'], $newData); | |||
} else { | |||
@@ -98,48 +99,48 @@ class HooksTest extends TestCase { | |||
[ | |||
['feature' => '', 'value' => ''], | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => ''] | |||
IAccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => ''] | |||
], | |||
false, false, true | |||
], | |||
[ | |||
['user' => $user, 'value' => ''], | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => ''] | |||
IAccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => ''] | |||
], | |||
false, false, true | |||
], | |||
[ | |||
['user' => $user, 'feature' => ''], | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => ''] | |||
IAccountManager::PROPERTY_EMAIL => ['value' => ''], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => ''] | |||
], | |||
false, false, true | |||
], | |||
[ | |||
['user' => $user, 'feature' => 'foo', 'value' => 'bar'], | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'oldMail@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'oldDisplayName'] | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'oldMail@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'oldDisplayName'] | |||
], | |||
false, false, false | |||
], | |||
[ | |||
['user' => $user, 'feature' => 'eMailAddress', 'value' => 'newMail@example.com'], | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'oldMail@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'oldDisplayName'] | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'oldMail@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'oldDisplayName'] | |||
], | |||
true, false, false | |||
], | |||
[ | |||
['user' => $user, 'feature' => 'displayName', 'value' => 'newDisplayName'], | |||
[ | |||
AccountManager::PROPERTY_EMAIL => ['value' => 'oldMail@example.com'], | |||
AccountManager::PROPERTY_DISPLAYNAME => ['value' => 'oldDisplayName'] | |||
IAccountManager::PROPERTY_EMAIL => ['value' => 'oldMail@example.com'], | |||
IAccountManager::PROPERTY_DISPLAYNAME => ['value' => 'oldDisplayName'] | |||
], | |||
false, true, false | |||
], |