Bugfix for the api call for remoteauth

This commit is contained in:
Michael 2017-12-22 23:00:49 +00:00
parent 98c2cdb49a
commit a309d3c733

View file

@ -4547,8 +4547,8 @@ function prepare_photo_data($type, $scale, $photo_id)
*/ */
function api_friendica_remoteauth() function api_friendica_remoteauth()
{ {
$url = ((x($_GET, 'url')) ? $_GET['url'] : ''); $url = (x($_GET, 'url') ? $_GET['url'] : '');
$c_url = ((x($_GET, 'c_url')) ? $_GET['c_url'] : ''); $c_url = (x($_GET, 'c_url') ? $_GET['c_url'] : '');
if ($url === '' || $c_url === '') { if ($url === '' || $c_url === '') {
throw new BadRequestException("Wrong parameters."); throw new BadRequestException("Wrong parameters.");
@ -4558,26 +4558,22 @@ function api_friendica_remoteauth()
// traditional DFRN // traditional DFRN
$r = q( $r = dba::select('contact', [], ['uid' => api_user(), 'nurl' => $c_url], ['limit' => 1]);
"SELECT * FROM `contact` WHERE `id` = %d AND `nurl` = '%s' LIMIT 1",
dbesc($c_url),
intval(api_user())
);
if ((! DBM::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN)) { if (!DBM::is_result($r) || ($r['network'] !== NETWORK_DFRN)) {
throw new BadRequestException("Unknown contact"); throw new BadRequestException("Unknown contact");
} }
$cid = $r[0]['id']; $cid = $r['id'];
$dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']); $dfrn_id = $orig_id = (($r['issued-id']) ? $r['issued-id'] : $r['dfrn-id']);
if ($r[0]['duplex'] && $r[0]['issued-id']) { if ($r['duplex'] && $r['issued-id']) {
$orig_id = $r[0]['issued-id']; $orig_id = $r['issued-id'];
$dfrn_id = '1:' . $orig_id; $dfrn_id = '1:' . $orig_id;
} }
if ($r[0]['duplex'] && $r[0]['dfrn-id']) { if ($r['duplex'] && $r['dfrn-id']) {
$orig_id = $r[0]['dfrn-id']; $orig_id = $r['dfrn-id'];
$dfrn_id = '0:' . $orig_id; $dfrn_id = '0:' . $orig_id;
} }
@ -4593,10 +4589,10 @@ function api_friendica_remoteauth()
intval(time() + 45) intval(time() + 45)
); );
logger($r[0]['name'] . ' ' . $sec, LOGGER_DEBUG); logger($r['name'] . ' ' . $sec, LOGGER_DEBUG);
$dest = (($url) ? '&destination_url=' . $url : ''); $dest = ($url ? '&destination_url=' . $url : '');
goaway( goaway(
$r[0]['poll'] . '?dfrn_id=' . $dfrn_id $r['poll'] . '?dfrn_id=' . $dfrn_id
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION . '&dfrn_version=' . DFRN_PROTOCOL_VERSION
. '&type=profile&sec=' . $sec . $dest . $quiet . '&type=profile&sec=' . $sec . $dest . $quiet
); );