set writable flag on dfrn_poll
This commit is contained in:
parent
63030ca51e
commit
3d51518a13
3 changed files with 34 additions and 5 deletions
|
@ -167,9 +167,13 @@ function poller_run($argv, $argc){
|
||||||
if(intval($contact['duplex']) && $contact['issued-id'])
|
if(intval($contact['duplex']) && $contact['issued-id'])
|
||||||
$idtosend = '1:' . $orig_id;
|
$idtosend = '1:' . $orig_id;
|
||||||
|
|
||||||
|
// they have permission to write to us. We already filtered this in the contact query.
|
||||||
|
$perm = 'rw';
|
||||||
|
|
||||||
$url = $contact['poll'] . '?dfrn_id=' . $idtosend
|
$url = $contact['poll'] . '?dfrn_id=' . $idtosend
|
||||||
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION
|
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION
|
||||||
. '&type=data&last_update=' . $last_update ;
|
. '&type=data&last_update=' . $last_update
|
||||||
|
. '&perm=' . $perm ;
|
||||||
|
|
||||||
$xml = fetch_url($url);
|
$xml = fetch_url($url);
|
||||||
|
|
||||||
|
@ -250,13 +254,14 @@ function poller_run($argv, $argc){
|
||||||
$final_dfrn_id = substr($final_dfrn_id,2);
|
$final_dfrn_id = substr($final_dfrn_id,2);
|
||||||
|
|
||||||
if($final_dfrn_id != $orig_id) {
|
if($final_dfrn_id != $orig_id) {
|
||||||
|
logger('poller: ID did not decode: ' . $contact['id'] . ' orig: ' . $orig_id . ' final: ' . $final_dfrn_id);
|
||||||
// did not decode properly - cannot trust this site
|
// did not decode properly - cannot trust this site
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$postvars['dfrn_id'] = $idtosend;
|
$postvars['dfrn_id'] = $idtosend;
|
||||||
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
||||||
|
$postvars['perm'] = 'rw';
|
||||||
|
|
||||||
$xml = post_url($contact['poll'],$postvars);
|
$xml = post_url($contact['poll'],$postvars);
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,6 +80,14 @@ function dfrn_notify_post(&$a) {
|
||||||
|
|
||||||
$importer = $r[0];
|
$importer = $r[0];
|
||||||
|
|
||||||
|
if(($writable != (-1)) && ($writable != $importer['writable'])) {
|
||||||
|
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
|
||||||
|
intval($writable),
|
||||||
|
intval($importer['id'])
|
||||||
|
);
|
||||||
|
$importer['writable'] = $writable;
|
||||||
|
}
|
||||||
|
|
||||||
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
|
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
|
||||||
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
|
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
|
||||||
|
|
||||||
|
@ -124,8 +132,6 @@ function dfrn_notify_post(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if($importer['readonly']) {
|
if($importer['readonly']) {
|
||||||
// We aren't receiving stuff from this person. But we will quietly ignore them
|
// We aren't receiving stuff from this person. But we will quietly ignore them
|
||||||
// rather than a blatant "go away" message.
|
// rather than a blatant "go away" message.
|
||||||
|
|
|
@ -297,6 +297,7 @@ function dfrn_poll_post(&$a) {
|
||||||
if(! count($r))
|
if(! count($r))
|
||||||
killme();
|
killme();
|
||||||
|
|
||||||
|
$contact = $r[0];
|
||||||
$owner_uid = $r[0]['uid'];
|
$owner_uid = $r[0]['uid'];
|
||||||
$contact_id = $r[0]['id'];
|
$contact_id = $r[0]['id'];
|
||||||
|
|
||||||
|
@ -330,6 +331,23 @@ function dfrn_poll_post(&$a) {
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
// Update the writable flag if it changed
|
||||||
|
|
||||||
|
if($dfrn_version >= 2.21) {
|
||||||
|
if($perm === 'rw')
|
||||||
|
$writable = 1;
|
||||||
|
else
|
||||||
|
$writable = 0;
|
||||||
|
|
||||||
|
if($writable != $contact['writable]) {
|
||||||
|
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
|
||||||
|
intval($writable),
|
||||||
|
intval($contact_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
header("Content-type: application/atom+xml");
|
header("Content-type: application/atom+xml");
|
||||||
$o = get_feed_for($a,$dfrn_id, $a->argv[1], $last_update, $direction);
|
$o = get_feed_for($a,$dfrn_id, $a->argv[1], $last_update, $direction);
|
||||||
echo $o;
|
echo $o;
|
||||||
|
|
Loading…
Reference in a new issue