Skip to content

Commit

Permalink
Merge pull request #38969 from nextcloud/enh/38944/add-profile-url-to…
Browse files Browse the repository at this point in the history
…-sab

enh(sab): Add profileUrl to SAB
  • Loading branch information
JohannesGGE authored Jul 3, 2023
2 parents 646dfd2 + eda3824 commit c3dcd70
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 4 deletions.
21 changes: 20 additions & 1 deletion apps/dav/lib/CardDAV/Converter.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,25 @@

use Exception;
use OCP\Accounts\IAccountManager;
use OCP\IURLGenerator;
use OCP\IImage;
use OCP\IUser;
use OCP\IUserManager;
use Sabre\VObject\Component\VCard;
use Sabre\VObject\Property\Text;

class Converter {
/** @var IURLGenerator */
private $urlGenerator;
/** @var IAccountManager */
private $accountManager;
private IUserManager $userManager;

public function __construct(IAccountManager $accountManager,
IUserManager $userManager) {
IUserManager $userManager, IURLGenerator $urlGenerator) {
$this->accountManager = $accountManager;
$this->userManager = $userManager;
$this->urlGenerator = $urlGenerator;
}

public function createCardFromUser(IUser $user): ?VCard {
Expand Down Expand Up @@ -88,6 +92,21 @@ public function createCardFromUser(IUser $user): ?VCard {
case IAccountManager::PROPERTY_WEBSITE:
$vCard->add(new Text($vCard, 'URL', $property->getValue(), ['X-NC-SCOPE' => $scope]));
break;
case IAccountManager::PROPERTY_PROFILE_ENABLED:
if ($property->getValue()) {
$vCard->add(
new Text(
$vCard,
'X-SOCIALPROFILE',
$this->urlGenerator->linkToRouteAbsolute('core.ProfilePage.index', ['targetUserId' => $user->getUID()]),
[
'TYPE' => 'NEXTCLOUD',
'X-NC-SCOPE' => IAccountManager::SCOPE_PUBLISHED
]
)
);
}
break;
case IAccountManager::PROPERTY_PHONE:
$vCard->add(new Text($vCard, 'TEL', $property->getValue(), ['TYPE' => 'VOICE', 'X-NC-SCOPE' => $scope]));
break;
Expand Down
11 changes: 8 additions & 3 deletions apps/dav/tests/unit/CardDAV/ConverterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
use OCP\Accounts\IAccount;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\IURLGenerator;
use OCP\IImage;
use OCP\IUser;
use OCP\IUserManager;
Expand All @@ -47,11 +48,15 @@ class ConverterTest extends TestCase {
/** @var IUserManager|(IUserManager&MockObject)|MockObject */
private IUserManager|MockObject $userManager;

/** @var IURLGenerator */
private $urlGenerator;

protected function setUp(): void {
parent::setUp();

$this->accountManager = $this->createMock(IAccountManager::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
}

/**
Expand Down Expand Up @@ -103,7 +108,7 @@ public function testCreation($expectedVCard, $displayName = null, $eMailAddress
$user = $this->getUserMock((string)$displayName, $eMailAddress, $cloudId);
$accountManager = $this->getAccountManager($user);

$converter = new Converter($accountManager, $this->userManager);
$converter = new Converter($accountManager, $this->userManager, $this->urlGenerator);
$vCard = $converter->createCardFromUser($user);
if ($expectedVCard !== null) {
$this->assertInstanceOf('Sabre\VObject\Component\VCard', $vCard);
Expand All @@ -124,7 +129,7 @@ public function testManagerProp(): void {
->willReturn('Manager');
$accountManager = $this->getAccountManager($user);

$converter = new Converter($accountManager, $this->userManager);
$converter = new Converter($accountManager, $this->userManager, $this->urlGenerator);
$vCard = $converter->createCardFromUser($user);

$this->compareData(
Expand Down Expand Up @@ -212,7 +217,7 @@ public function providesNewUsers() {
* @param $fullName
*/
public function testNameSplitter($expected, $fullName): void {
$converter = new Converter($this->accountManager, $this->userManager);
$converter = new Converter($this->accountManager, $this->userManager, $this->urlGenerator);
$r = $converter->splitFullName($fullName);
$r = implode(';', $r);
$this->assertEquals($expected, $r);
Expand Down

0 comments on commit c3dcd70

Please sign in to comment.