improved rw notifications
This commit is contained in:
parent
a2b1aca27c
commit
7956c2d08e
2 changed files with 28 additions and 2 deletions
|
@ -1090,12 +1090,23 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
|
||||||
$postvars = array();
|
$postvars = array();
|
||||||
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
|
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
|
||||||
$challenge = hex2bin((string) $res->challenge);
|
$challenge = hex2bin((string) $res->challenge);
|
||||||
|
$perm = (($res->perm) ? $res->perm : null);
|
||||||
$dfrn_version = (float) (($res->dfrn_version) ? $res->dfrn_version : 2.0);
|
$dfrn_version = (float) (($res->dfrn_version) ? $res->dfrn_version : 2.0);
|
||||||
$rino_allowed = ((intval($res->rino) === 1) ? 1 : 0);
|
$rino_allowed = ((intval($res->rino) === 1) ? 1 : 0);
|
||||||
$page = (($owner['page-flags'] == PAGE_COMMUNITY) ? 1 : 0);
|
$page = (($owner['page-flags'] == PAGE_COMMUNITY) ? 1 : 0);
|
||||||
|
|
||||||
$final_dfrn_id = '';
|
$final_dfrn_id = '';
|
||||||
|
|
||||||
|
if($perm) {
|
||||||
|
if((($perm == 'rw') && (! intval($contact['writable'])))
|
||||||
|
|| (($perm == 'r') && (intval($contact['writable'])))) {
|
||||||
|
q("update contact set writable = %d where id = %d limit 1",
|
||||||
|
intval(($perm == 'rw') ? 1 : 0),
|
||||||
|
intval($contact['id'])
|
||||||
|
);
|
||||||
|
$contact['writable'] = (string) 1 - intval($contact['writable']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(($contact['duplex'] && strlen($contact['pubkey']))
|
if(($contact['duplex'] && strlen($contact['pubkey']))
|
||||||
|| ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
|
|| ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
|
||||||
|
|
|
@ -158,6 +158,7 @@ function dfrn_notify_post(&$a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
|
@ -174,6 +175,13 @@ function dfrn_notify_post(&$a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// If we are setup as a soapbox we aren't accepting input from this person
|
||||||
|
|
||||||
|
if($importer['page-flags'] == PAGE_SOAPBOX)
|
||||||
|
xml_status(0);
|
||||||
|
|
||||||
|
|
||||||
if(strlen($key)) {
|
if(strlen($key)) {
|
||||||
$rawkey = hex2bin(trim($key));
|
$rawkey = hex2bin(trim($key));
|
||||||
logger('rino: md5 raw key: ' . md5($rawkey));
|
logger('rino: md5 raw key: ' . md5($rawkey));
|
||||||
|
@ -261,7 +269,7 @@ function dfrn_notify_content(&$a) {
|
||||||
break; // NOTREACHED
|
break; // NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
$r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`page-flags` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
||||||
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s'
|
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s'
|
||||||
AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
|
AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
|
||||||
dbesc($a->argv[1])
|
dbesc($a->argv[1])
|
||||||
|
@ -299,6 +307,12 @@ function dfrn_notify_content(&$a) {
|
||||||
if(! $rino_enable)
|
if(! $rino_enable)
|
||||||
$rino = 0;
|
$rino = 0;
|
||||||
|
|
||||||
|
if((($r[0]['rel']) && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
|
||||||
|
$perm = 'rw';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$perm = 'r';
|
||||||
|
}
|
||||||
|
|
||||||
header("Content-type: text/xml");
|
header("Content-type: text/xml");
|
||||||
|
|
||||||
|
@ -307,6 +321,7 @@ function dfrn_notify_content(&$a) {
|
||||||
. "\t" . '<status>' . $status . '</status>' . "\r\n"
|
. "\t" . '<status>' . $status . '</status>' . "\r\n"
|
||||||
. "\t" . '<dfrn_version>' . DFRN_PROTOCOL_VERSION . '</dfrn_version>' . "\r\n"
|
. "\t" . '<dfrn_version>' . DFRN_PROTOCOL_VERSION . '</dfrn_version>' . "\r\n"
|
||||||
. "\t" . '<rino>' . $rino . '</rino>' . "\r\n"
|
. "\t" . '<rino>' . $rino . '</rino>' . "\r\n"
|
||||||
|
. "\t" . '<perm>' . $perm . '</perm>' . "\r\n"
|
||||||
. "\t" . '<dfrn_id>' . $encrypted_id . '</dfrn_id>' . "\r\n"
|
. "\t" . '<dfrn_id>' . $encrypted_id . '</dfrn_id>' . "\r\n"
|
||||||
. "\t" . '<challenge>' . $challenge . '</challenge>' . "\r\n"
|
. "\t" . '<challenge>' . $challenge . '</challenge>' . "\r\n"
|
||||||
. '</dfrn_notify>' . "\r\n" ;
|
. '</dfrn_notify>' . "\r\n" ;
|
||||||
|
|
Loading…
Reference in a new issue