From 444959a789e5bc122b177cb970ca4006c07c1eee Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 17 Sep 2010 16:33:02 -0400 Subject: Status_network::encache() doesn't exist --- classes/Status_network.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'classes') diff --git a/classes/Status_network.php b/classes/Status_network.php index c4f37ce1c..70c7a58eb 100644 --- a/classes/Status_network.php +++ b/classes/Status_network.php @@ -167,9 +167,8 @@ class Status_network extends Safe_DataObject ' WHERE nickname = ' . $this->_quote($this->nickname); $orig->decache(); $result = $this->query($qry); - if ($result) { - $this->encache(); - } + $this->decache(); + return $result; } -- cgit v1.2.3-54-g00ecf From 521daf5562051d0cc319c35a0dceaae3e0fd49b7 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 20 Sep 2010 15:57:46 -0700 Subject: Ticket #2327: fixing block to remove the blocking user's subscription to the blockee if present; also cleaning up inbox delivery to apply the block checks more consistently, instead of just to group posts. --- classes/Notice.php | 33 ++++++++++++++++++++------------- classes/User.php | 3 +++ 2 files changed, 23 insertions(+), 13 deletions(-) (limited to 'classes') diff --git a/classes/Notice.php b/classes/Notice.php index f1b012465..13b322828 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -753,8 +753,15 @@ class Notice extends Memcached_DataObject } /** - * @param $groups array of Group *objects* - * @param $recipients array of profile *ids* + * Pull up a full list of local recipients who will be getting + * this notice in their inbox. Results will be cached, so don't + * change the input data wily-nilly! + * + * @param array $groups optional list of Group objects; + * if left empty, will be loaded from group_inbox records + * @param array $recipient optional list of reply profile ids + * if left empty, will be loaded from reply records + * @return array associating recipient user IDs with an inbox source constant */ function whoGets($groups=null, $recipients=null) { @@ -787,27 +794,27 @@ class Notice extends Memcached_DataObject $ni[$id] = NOTICE_INBOX_SOURCE_SUB; } - $profile = $this->getProfile(); - foreach ($groups as $group) { $users = $group->getUserMembers(); foreach ($users as $id) { if (!array_key_exists($id, $ni)) { - $user = User::staticGet('id', $id); - if (!$user->hasBlocked($profile)) { - $ni[$id] = NOTICE_INBOX_SOURCE_GROUP; - } + $ni[$id] = NOTICE_INBOX_SOURCE_GROUP; } } } foreach ($recipients as $recipient) { - if (!array_key_exists($recipient, $ni)) { - $recipientUser = User::staticGet('id', $recipient); - if (!empty($recipientUser)) { - $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY; - } + $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY; + } + } + + // Exclude any deleted, non-local, or blocking recipients. + $profile = $this->getProfile(); + foreach ($ni as $id => $source) { + $user = User::staticGet('id', $id); + if (empty($user) || $user->hasBlocked($profile)) { + unset($ni[$id]); } } diff --git a/classes/User.php b/classes/User.php index 8033229c4..4c25ee3d9 100644 --- a/classes/User.php +++ b/classes/User.php @@ -552,6 +552,9 @@ class User extends Memcached_DataObject if (Subscription::exists($other, $self)) { Subscription::cancel($other, $self); } + if (Subscription::exists($self, $other)) { + Subscription::cancel($self, $other); + } $block->query('COMMIT'); -- cgit v1.2.3-54-g00ecf From 28b06864fbb5a14e4a1b06803461b4022682dac6 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 20 Sep 2010 17:37:21 -0700 Subject: Fix for #2227: 'view profile designs' and other default-on options are initially mis-set to off due to caching at account creation --- classes/User.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'classes') diff --git a/classes/User.php b/classes/User.php index 4c25ee3d9..080e338fe 100644 --- a/classes/User.php +++ b/classes/User.php @@ -255,6 +255,19 @@ class User extends Memcached_DataObject $user->inboxed = 1; + // Set default-on options here, otherwise they'll be disabled + // initially for sites using caching, since the initial encache + // doesn't know about the defaults in the database. + $user->emailnotifysub = 1; + $user->emailnotifyfav = 1; + $user->emailnotifynudge = 1; + $user->emailnotifymsg = 1; + $user->emailnotifyattn = 1; + $user->emailmicroid = 1; + $user->emailpost = 1; + $user->jabbermicroid = 1; + $user->viewdesigns = 1; + $user->created = common_sql_now(); if (Event::handle('StartUserRegister', array(&$user, &$profile))) { -- cgit v1.2.3-54-g00ecf