diff options
author | Robin Appelman <robin@icewind.nl> | 2017-01-27 12:52:17 +0100 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2017-02-08 15:17:02 +0100 |
commit | fa49c4a13b6c5455b13ad44cfc158b271aa9b616 (patch) | |
tree | 1014b6de1bd3761e2e26467c78c6f5fd4697ea56 /apps/files_sharing/lib/Activity | |
parent | 1a591cea97313b8500154d6c2c9ce3aaf2f38a88 (diff) | |
download | nextcloud-server-fa49c4a13b6c5455b13ad44cfc158b271aa9b616.tar.gz nextcloud-server-fa49c4a13b6c5455b13ad44cfc158b271aa9b616.zip |
Add a single public api for resolving a cloud id to a user and remote and back
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps/files_sharing/lib/Activity')
-rw-r--r-- | apps/files_sharing/lib/Activity/Providers/RemoteShares.php | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php index 425defe57e4..4e7d8ef3e27 100644 --- a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php +++ b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php @@ -24,18 +24,39 @@ namespace OCA\Files_Sharing\Activity\Providers; use OCP\Activity\IEvent; use OCP\Activity\IManager; use OCP\Activity\IProvider; +use OCP\Federation\ICloudIdManager; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\IUserManager; use OCP\L10N\IFactory; class RemoteShares extends Base { + protected $cloudIdManager; + const SUBJECT_REMOTE_SHARE_ACCEPTED = 'remote_share_accepted'; const SUBJECT_REMOTE_SHARE_DECLINED = 'remote_share_declined'; const SUBJECT_REMOTE_SHARE_RECEIVED = 'remote_share_received'; const SUBJECT_REMOTE_SHARE_UNSHARED = 'remote_share_unshared'; /** + * @param IFactory $languageFactory + * @param IURLGenerator $url + * @param IManager $activityManager + * @param IUserManager $userManager + * @param ICloudIdManager $cloudIdManager + */ + public function __construct(IFactory $languageFactory, + IURLGenerator $url, + IManager $activityManager, + IUserManager $userManager, + ICloudIdManager $cloudIdManager + ) { + parent::__construct($languageFactory, $url, $activityManager, $userManager); + $this->cloudIdManager = $cloudIdManager; + } + + /** * @param IEvent $event * @return IEvent * @throws \InvalidArgumentException @@ -115,12 +136,12 @@ class RemoteShares extends Base { * @return array */ protected function getFederatedUser($cloudId) { - $remoteUser = explode('@', $cloudId, 2); + $remoteUser = $this->cloudIdManager->resolveCloudId($cloudId); return [ 'type' => 'user', - 'id' => $remoteUser[0], + 'id' => $remoteUser->getUser(), 'name' => $cloudId,// Todo display name from contacts - 'server' => $remoteUser[1], + 'server' => $remoteUser->getRemote(), ]; } } |