X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FProfile.php;h=ec53d064d6b83704d24ff2bd99f8a5b6c8f96640;hb=ea9b4cc52319bdeb2078ff34cdb2eff90ae3aa22;hp=e493d82d53cfb36c4be9234bd093113211860909;hpb=617ace38e42708c5626146c892899e7561b5905e;p=friendica.git 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)) {