aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/conversation.php13
-rw-r--r--include/poller.php4
-rw-r--r--mod/login.php2
3 files changed, 13 insertions, 6 deletions
diff --git a/include/conversation.php b/include/conversation.php
index 6b1f64925..0d901a3c0 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -283,14 +283,14 @@ function conversation(&$a, $items, $mode, $update) {
continue;
$toplevelpost = (($item['id'] == $item['parent']) ? true : false);
-
+ $toplevelprivate = false;
// Take care of author collapsing and comment collapsing
// If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
// If there are more than two comments, squash all but the last 2.
-
+
if($toplevelpost) {
-
+ $toplevelprivate = (($toplevelpost && $item['private']) ? true : false);
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
@@ -312,9 +312,12 @@ function conversation(&$a, $items, $mode, $update) {
$comments_seen = 0;
$comments_collapsed = false;
}
- else
+ else {
+ // prevent private email from leaking into public conversation
+ if((! $toplevelpost) && (! toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
+ continue;
$comments_seen ++;
-
+ }
$override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false);
$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false);
diff --git a/include/poller.php b/include/poller.php
index 6ac99fc7d..86bb8ad55 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -421,8 +421,10 @@ function poller_run($argv, $argc){
$datarray['contact-id'] = $contact['id'];
if($datarray['parent-uri'] === $datarray['uri'])
$datarray['private'] = 1;
- if(! get_pconfig($importer_uid,'system','allow_public_email_replies'))
+ if(! get_pconfig($importer_uid,'system','allow_public_email_replies')) {
$datarray['private'] = 1;
+ $datarray['allow_cid'] = '<' . $contact['id'] . '>';
+ }
$datarray['author-name'] = $contact['name'];
$datarray['author-link'] = 'mailbox';
$datarray['author-avatar'] = $contact['photo'];
diff --git a/mod/login.php b/mod/login.php
index 58af42d74..10b4d3001 100644
--- a/mod/login.php
+++ b/mod/login.php
@@ -3,6 +3,8 @@
function login_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
+ if(local_user())
+ goaway(z_root());
return login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
} \ No newline at end of file