namespace Friendica\Module;
use Friendica\BaseModule;
+use Friendica\Database\DBA;
use Friendica\Model\Contact;
use Friendica\Util\HTTPSignature;
use Friendica\Util\Network;
-use dba;
-
/**
* Magic Auth (remote authentication) module.
- *
+ *
* Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/Zotlabs/Module/Magic.php
*/
class Magic extends BaseModule
$test = ((x($_REQUEST, 'test')) ? intval($_REQUEST['test']) : 0);
$owa = ((x($_REQUEST, 'owa')) ? intval($_REQUEST['owa']) : 0);
- // NOTE: I guess $dest isn't just the profile url (could be also
+ // NOTE: I guess $dest isn't just the profile url (could be also
// other profile pages e.g. photo). We need to find a solution
// to be able to redirct to other pages than the contact profile.
$cid = Contact::getIdForURL($dest);
goaway($dest);
}
- $contact = dba::selectFirst('contact', ['id', 'nurl', 'url'], ['id' => $cid]);
+ $contact = DBA::selectFirst('contact', ['id', 'nurl', 'url'], ['id' => $cid]);
// Redirect if the contact is already authenticated on this site.
- if (array_key_exists('id', $a->contact) && strpos($contact['nurl'], normalise_link(self::getApp()->get_baseurl())) !== false) {
- if($test) {
+ if (!empty($a->contact) && array_key_exists('id', $a->contact) && strpos($contact['nurl'], normalise_link(self::getApp()->get_baseurl())) !== false) {
+ if ($test) {
$ret['success'] = true;
$ret['message'] .= 'Local site - you are already authenticated.' . EOL;
return $ret;
// Create a header that is signed with the local users private key.
$headers = HTTPSignature::createSig(
- '',
- $headers,
- $user['prvkey'],
- 'acct:' . $user['nickname'] . '@' . $a->get_hostname() . ($a->path ? '/' . $a->path : ''),
- false,
- true,
- 'sha512'
+ $headers,
+ $user['prvkey'],
+ 'acct:' . $user['nickname'] . '@' . $a->get_hostname() . ($a->urlpath ? '/' . $a->urlpath : '')
);
// Try to get an authentication token from the other instance.
}
}
- if($test) {
+ if ($test) {
$ret['message'] = 'Not authenticated or invalid arguments' . EOL;
return $ret;
}