function dfrn_notify_post(&$a) {
-
+ logger(__function__, LOGGER_TRACE);
$dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : '');
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
$challenge = ((x($_POST,'challenge')) ? notags(trim($_POST['challenge'])) : '');
$ssl_policy = ((x($_POST,'ssl_policy')) ? notags(trim($_POST['ssl_policy'])): 'none');
$page = ((x($_POST,'page')) ? intval($_POST['page']) : 0);
+ $forum = (($page == 1) ? 1 : 0);
+ $prv = (($page == 2) ? 1 : 0);
+
$writable = (-1);
if($dfrn_version >= 2.21) {
$writable = (($perm === 'rw') ? 1 : 0);
FROM `contact`
LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND `user`.`nickname` = '%s' AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
+ AND `user`.`nickname` = '%s' AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 $sql_extra LIMIT 1",
dbesc($a->argv[1])
);
$importer = $r[0];
- if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $page)) {
- q("UPDATE `contact` SET `writable` = %d, forum = %d WHERE `id` = %d LIMIT 1",
+ if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $forum) || ($importer['prv'] != $prv)) {
+ q("UPDATE `contact` SET `writable` = %d, forum = %d, prv = %d WHERE `id` = %d LIMIT 1",
intval(($writable == (-1)) ? $importer['writable'] : $writable),
- intval($page),
+ intval($forum),
+ intval($prv),
intval($importer['id'])
);
if($writable != (-1))
$importer['forum'] = $page;
}
- // if contact's ssl policy changed, update our links
-
- $ssl_changed = false;
-
- if($ssl_policy == 'self' && strstr($importer['url'],'https:')) {
- $ssl_changed = true;
- $importer['url'] = str_replace('https:','http:',$importer['url']);
- $importer['nurl'] = normalise_link($importer['url']);
- $importer['request'] = str_replace('https:','http:',$importer['request']);
- $importer['notify'] = str_replace('https:','http:',$importer['notify']);
- $importer['poll'] = str_replace('https:','http:',$importer['poll']);
- $importer['confirm'] = str_replace('https:','http:',$importer['confirm']);
- $importer['poco'] = str_replace('https:','http:',$importer['poco']);
- }
- if($ssl_policy == 'full' && strstr($importer['url'],'http:')) {
- $ssl_changed = true;
- $importer['url'] = str_replace('http:','https:',$importer['url']);
- $importer['nurl'] = normalise_link($importer['url']);
- $importer['request'] = str_replace('http:','https:',$importer['request']);
- $importer['notify'] = str_replace('http:','https:',$importer['notify']);
- $importer['poll'] = str_replace('http:','https:',$importer['poll']);
- $importer['confirm'] = str_replace('http:','https:',$importer['confirm']);
- $importer['poco'] = str_replace('http:','https:',$importer['poco']);
- }
+ // if contact's ssl policy changed, update our links
- if($ssl_changed) {
- q("update contact set
- url = '%s',
- nurl = '%s',
- photo = '%s',
- thumb = '%s',
- micro = '%s',
- request = '%s',
- notify = '%s',
- poll = '%s',
- confirm = '%s',
- poco = '%s'
- where id = %d limit 1",
- dbesc($importer['url']),
- dbesc($importer['nurl']),
- dbesc($importer['request']),
- dbesc($importer['notify']),
- dbesc($importer['poll']),
- dbesc($importer['confirm']),
- dbesc($importer['poco']),
- intval($importer['id'])
- );
- }
-
+ fix_contact_ssl_policy($importer,$ssl_policy);
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
$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'
- AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
+ AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 $sql_extra LIMIT 1",
dbesc($a->argv[1])
);