From 5c2b54009e0d1ef8b283fbf8b6937f00a253ae61 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 8 Apr 2018 19:17:50 +0000 Subject: [PATCH] The magic link is added at more places --- mod/dirfind.php | 2 +- src/Model/Profile.php | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/mod/dirfind.php b/mod/dirfind.php index a5b26a9193..14ceb6daee 100644 --- a/mod/dirfind.php +++ b/mod/dirfind.php @@ -223,7 +223,7 @@ function dirfind_content(App $a, $prefix = "") { $entry = [ 'alt_text' => $alt_text, - 'url' => Profile::zrl($jj->url), + 'url' => Profile::magicLink($jj->url), 'itemurl' => $itemurl, 'name' => htmlentities($jj->name), 'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB), diff --git a/src/Model/Profile.php b/src/Model/Profile.php index e493d82d53..ec53d064d6 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -500,6 +500,8 @@ class Profile $p['photo'] = proxy_url($p['photo'], false, PROXY_SIZE_SMALL); } + $p['url'] = self::magicLink($p['url']); + $tpl = get_markup_template('profile_vcard.tpl'); $o .= replace_macros($tpl, [ '$profile' => $p, @@ -1005,6 +1007,29 @@ class Profile } } + /** + * @brief Returns a magic link to authenticate remote visitors + * + * @param string $contact_url The address of the contact profile + * @param integer $uid The user id, "local_user" is the default + * + * @return string with "redir" link + */ + public static function magicLink($contact_url, $uid = -1) + { + if ($uid == -1) { + $uid = local_user(); + } + $condition = ['pending' => false, 'uid' => $uid, + 'nurl' => normalise_link($contact_url), + 'network' => NETWORK_DFRN, 'self' => false]; + $contact = dba::selectFirst('contact', ['id'], $condition); + if (DBM::is_result($contact)) { + return System::baseUrl() . '/redir/' . $contact['id']; + } + return self::zrl($contact_url); + } + public static function zrl($s, $force = false) { if (!strlen($s)) {