aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Federation/CloudId.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Federation/CloudId.php')
-rw-r--r--lib/private/Federation/CloudId.php42
1 files changed, 17 insertions, 25 deletions
diff --git a/lib/private/Federation/CloudId.php b/lib/private/Federation/CloudId.php
index c20dbfc6418..b807c29d812 100644
--- a/lib/private/Federation/CloudId.php
+++ b/lib/private/Federation/CloudId.php
@@ -9,29 +9,15 @@ declare(strict_types=1);
namespace OC\Federation;
use OCP\Federation\ICloudId;
+use OCP\Federation\ICloudIdManager;
class CloudId implements ICloudId {
- /** @var string */
- private $id;
- /** @var string */
- private $user;
- /** @var string */
- private $remote;
- /** @var string|null */
- private $displayName;
-
- /**
- * CloudId constructor.
- *
- * @param string $id
- * @param string $user
- * @param string $remote
- */
- public function __construct(string $id, string $user, string $remote, ?string $displayName = null) {
- $this->id = $id;
- $this->user = $user;
- $this->remote = $remote;
- $this->displayName = $displayName;
+ public function __construct(
+ protected string $id,
+ protected string $user,
+ protected string $remote,
+ protected ?string $displayName = null,
+ ) {
}
/**
@@ -44,12 +30,18 @@ class CloudId implements ICloudId {
}
public function getDisplayId(): string {
+ if ($this->displayName === null) {
+ /** @var CloudIdManager $cloudIdManager */
+ $cloudIdManager = \OCP\Server::get(ICloudIdManager::class);
+ $this->displayName = $cloudIdManager->getDisplayNameFromContact($this->getId());
+ }
+
+ $atHost = str_replace(['http://', 'https://'], '', $this->getRemote());
+
if ($this->displayName) {
- $atPos = strrpos($this->getId(), '@');
- $atHost = substr($this->getId(), $atPos);
- return $this->displayName . $atHost;
+ return $this->displayName . '@' . $atHost;
}
- return str_replace('https://', '', str_replace('http://', '', $this->getId()));
+ return $this->getUser() . '@' . $atHost;
}
/**