aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/acl_selectors.php4
-rw-r--r--include/notifier.php10
-rw-r--r--mod/follow.php21
3 files changed, 28 insertions, 7 deletions
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 9bbd6bcb4..d0952421e 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -40,7 +40,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
$sql_extra = '';
if($privmail || $celeb) {
- $sql_extra = sprintf(" AND `rel` = %d ", intval(REL_BUD));
+ $sql_extra .= sprintf(" AND `rel` = %d ", intval(REL_BUD));
}
if($privmail)
@@ -49,7 +49,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" >\r\n";
$r = q("SELECT `id`, `name`, `url`, `network` FROM `contact`
- WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0
+ WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
$sql_extra
ORDER BY `name` ASC ",
intval(local_user())
diff --git a/include/notifier.php b/include/notifier.php
index 405688ab1..f22917e4f 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -257,7 +257,7 @@
$deliver_status = dfrn_deliver($owner,$contact,$atom);
break;
default:
- if($followup) {
+ if($followup && $contact['notify']) {
slapper($owner,$contact['notify'],$slap);
}
else {
@@ -268,7 +268,9 @@
if(count($slaps) && $notify_hub) {
logger('notifier: slapdelivery: ' . $contact['name']);
foreach($slaps as $slappy) {
- slapper($owner,$contact['notify'],$slappy);
+ if($contact['notify']) {
+ slapper($owner,$contact['notify'],$slappy);
+ }
}
}
}
@@ -289,7 +291,9 @@
foreach($url_recipients as $url) {
logger('notifier: urldelivery: ' . $url);
foreach($slaps as $slappy) {
- slapper($owner,$url,$slappy);
+ if($url) {
+ slapper($owner,$url,$slappy);
+ }
}
}
}
diff --git a/mod/follow.php b/mod/follow.php
index d839a04d4..dfc394502 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -50,6 +50,14 @@ function follow_post(&$a) {
if($hcard) {
$vcard = scrape_vcard($hcard);
+
+ // Google doesn't use absolute url in profile photos
+
+ if((x($vcard,'photo')) && substr($vcard['photo'],0,1) == '/') {
+ $h = parse_url($hcard);
+ if($h)
+ $vcard['photo'] = $h['scheme'] . '://' . $h['host'] . $vcard['photo'];
+ }
}
if(! $profile)
@@ -61,10 +69,16 @@ function follow_post(&$a) {
if(x($vcard,'nick'))
$vcard['fn'] = $vcard['nick'];
- if(! ((x($vcard['fn'])) && ($poll) && ($notify) && ($profile))) {
+ logger('follow: poll=' . $poll . ' notify=' . $notify . ' profile=' . $profile . ' vcard=' . print_r($vcard,true));
+
+ if(! ((x($vcard['fn'])) && ($poll) && ($profile))) {
notice( t('The profile address specified does not provide adequate information.') . EOL);
goaway($_SESSION['return_url']);
- }
+ }
+
+ if(! $notify) {
+ notice( t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL);
+ }
if(! x($vcard,'photo'))
$vcard['photo'] = $a->get_baseurl() . '/images/default-profile.jpg' ;
@@ -77,6 +91,7 @@ function follow_post(&$a) {
intval(local_user()),
dbesc($poll)
);
+
if(count($r)) {
// update contact
if($r[0]['rel'] == REL_VIP) {
@@ -104,10 +119,12 @@ function follow_post(&$a) {
intval(REL_FAN)
);
}
+
$r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
dbesc($profile),
intval(local_user())
);
+
if(! count($r)) {
notice( t('Unable to retrieve contact information.') . EOL);
goaway($_SESSION['return_url']);