summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2010-04-20Fix email notifications for @-replies that come via OStatus.Brion Vibber
* Moved notification sending from Notice::saveReplies to distrib queue handler, so it'll pull from the reply set we've saved regardless of how we got it. * Set up gettext infrastructure for command-line scripts; gets localization mail notifications etc working from background queues. * Adjusted locale switching: common_switch_locale() works at runtime for bg scripts, forces a message catalog update
2010-04-14Fix for "#foo !foo" in same notice failing during save, causing failout ↵Brion Vibber
before distribution. Move saveGroups after saveTags when saving notices; groups may save additional tags, so need to be moved after so the check for duplicates actually works.
2010-04-14move comment to correct placeBrion Vibber
2010-04-10Allow blocking someone who's not currently subscribed to you (prevents ↵Brion Vibber
seeing @-replies from them, or them subbing to you in future)
2010-04-09Merge branch 'master' of gitorious.org:statusnet/mainlineEvan Prodromou
2010-04-09Run block checks on remote OStatus repliesBrion Vibber
2010-04-07show PEAR_Error message, not the objectEvan Prodromou
2010-04-02Don't save duplicate messages into a user's packed inbox. We've already got ↵Brion Vibber
the packed box loaded at insert time, so we can simply unpack it and check before doing the update query. Should help with dupes that come in when inbox distrib jobs die and get restarted, etc. Conflicts: classes/Inbox.php Looks like this was implemented on master recently and not copied up to testing. Merging to my version on testing as I've added some doc comments and extracted a couple functions for future ease of use.
2010-04-01Temporary hack until notice_profile_id_idx is updatedBrion Vibber
to (profile_id, id) instead of (profile_id, created, id). It's been falling back to PRIMARY instead, which is really very inefficient for a profile that hasn't posted in a few months. Even though forcing the index will cause a filesort, it's usually going to be better. Even for large profiles it seems much faster than the badly-indexed query.
2010-04-01Revert "Revert "don't insert the same notice twice into an inbox""Evan Prodromou
This reverts commit a09b27ff41df41a86fdb0abae14239907d5ee6ec.
2010-04-01Revert "don't insert the same notice twice into an inbox"Evan Prodromou
This reverts commit 650074c648d98f81674c6e2b0ebf052c473ada6e.
2010-03-31don't insert the same notice twice into an inboxEvan Prodromou
2010-03-31use Subscription::cancel() to cancel all subscriptions on blockEvan Prodromou
2010-03-31do complete unsubscribe process when deleting a userEvan Prodromou
2010-03-28continue deleting even if user profile record is missingEvan Prodromou
2010-03-23fixup_deletions.php script to look for notices posted by now-deleted ↵Brion Vibber
profiles and remove them.
2010-03-23Merge branch 'master' of git@gitorious.org:statusnet/mainline into testingBrion Vibber
2010-03-23Consistently send Profiles into Fave::addNew()Brion Vibber
2010-03-23Don't add PHPSESSID parameter onto notice and conversation URIs if we save a ↵Brion Vibber
notice during a session override. This was being triggered by welcomebot messages created at account creation time, then propagated through replies.
2010-03-19Drop result ID from data objects on clone(). This keeps the original object ↵Brion Vibber
working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor. This bug was hitting a number of places where we had the pattern: $db->find(); while($dbo->fetch()) { $x = clone($dbo); // do anything with $x other than storing it in an array } The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted. (Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.) Detaching the database result from the clone lets us work with its data without interfering with the rest of the query. In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now.
2010-03-18OStatus discover fixes:Brion Vibber
* Subscription::start was sometimes passing users instead of profiles to hooks, which broke OStatus subscription notifications; now normalizing to profiles for processing. * H-card parsing would trigger a lot of PHP warnings and notices in hKit. Now suppressing warnings and notices for the duration of the call to keep them out of output when display_errors is on. * H-card parsing would trigger a PHP fatal error if the source page was not well-formed XML and Tidy was not present on the system. Switched normalization to use the PHP DOM module which is always present, as we have no need for Tidy's extra features here. * Trying to fetch avatars from Google profiles failed and triggered a PHP warning due to the relative URL not being resolved during h-card parsing. Now passing profile page URL into hKit by sneaking a <base> tag in while we normalize the HTML source. * Profile pages without a "Link" header could trigger PHP notices due to a bad NULL -> array(NULL) conversion in LinkHeader::getLink(). Now checking that there was a return value before converting single return value into array.
2010-03-18Fix for xmpp/sms notification options appearing to be disabled on new ↵Brion Vibber
subscriptions. Base problem is that our caching-on-insert interferes with relying on column default values; the cached object is missing those fields, so they appear to be empty (null) when the object is retrieved from cache. Now explicitly setting them when inserting subscriptions, and cleaned up some code that had alternate code paths. May also have made auto-subscription work for remote OStatus subscribers, but can't test until magic sigs are working again.
2010-03-18Merge branch 'master' of git@gitorious.org:statusnet/mainline into testingBrion Vibber
2010-03-18Ensure that DB connection is active at start of User::updateKeys() and ↵Brion Vibber
Foreign_user::updateKeys(); calls to $this->_quote() require a live connection object and don't lazy-initialize themselves. May fix WSOD when changing incoming email address.
2010-03-18add exception on inconsistent db to User::getProfile()Evan Prodromou
2010-03-17Merge branch 'master' into testingBrion Vibber
2010-03-17Fix to regression for auto-subscribe - was backwards.Brion Vibber
2010-03-15Background deletion of user accounts. Notices are deleted in chunks, then ↵Brion Vibber
the user itself when they're all gone. While deletion is in progress, the account is locked with the 'deleted' role, which disables all actions with rights control. Todo: * Pretty up the notice on the profile page about the pending delete. Show status? * Possibly more thorough account disabling, such as disallowing all use for login and access. * Improve error recovery; worst case is that an account gets left locked in 'deleted' state but the queue jobs have gotten dropped out. This would leave the username in use and any undeleted notices in place.
2010-03-15Drop result ID from data objects on clone(). This keeps the original object ↵Brion Vibber
working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor. This bug was hitting a number of places where we had the pattern: $db->find(); while($dbo->fetch()) { $x = clone($dbo); // do anything with $x other than storing it in an array } The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted. (Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.) Detaching the database result from the clone lets us work with its data without interfering with the rest of the query. In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now.
2010-03-15Blow more timeline caches on notice delete. Fixes paging on public and ↵Brion Vibber
profile timelines after deleting something from the first page.
2010-03-12Merge commit 'origin/testing' into 0.9.xBrion Vibber
2010-03-12Scrub all atom output with common_xml_safe_str()Zach Copley
2010-03-12Add id and updated elements to atom sourceZach Copley
2010-03-11A null mimetype is not an enclosure (more likely than not means there was an ↵Craig Andrews
error)
2010-03-11Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.xSarven Capadisli
2010-03-11Drop timestamp cutoff parameter from User::getCurrentNotice() and ↵Brion Vibber
Profile::getCurrentNotice(). It's not currently used, and won't be efficient when we update the notice.profile_id_idx index to optimize for our id-based sorting when pulling user post lists for profile pages, feeds etc.
2010-03-10Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.xBrion Vibber
2010-03-10Fixup script for files w/ bogus data saved into file record ('h bug')Brion Vibber
2010-03-10Fix for attachment "h bug": posting a shortened link to an oembed-able ↵Brion Vibber
resource that has been previously used in the system would incorrectly save "h" as the item's type and title.
2010-03-08Fixed warning messages when auto-registering a new LDAP user.Jeffery To
On my test system (without memcache), while testing the LDAP authentication plugin, when I sign in for the first time, triggering auto-registration, I get these messages in the output page: Warning: ksort() expects parameter 1 to be array, null given in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 219 Warning: Invalid argument supplied for foreach() in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 224 Warning: assert() [function.assert]: Assertion failed in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 241 (plus two "Cannot modify header information..." messages as a result of the above warnings) This change appears to fix this (although I can't really explain exactly why).
2010-03-06Fixed problem causing 500 error on notices containing a non-existent groupCiaran Gultnieks
2010-03-05Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xZach Copley
2010-03-05A better way to safely delete Foreign_linksZach Copley
2010-03-05A better way to safely delete Foreign_linksZach Copley
2010-03-04Merge commit 'origin/testing' into 0.9.xBrion Vibber
Conflicts: lib/action.php lib/adminpanelaction.php
2010-03-03Revert "Revert "Show <activity:subject> and no activity actors for user feed""Zach Copley
This reverts commit e2578cfad68c45ca177c51997c4cc7c0abafbd9a.
2010-03-03Initial user role controls on profile pages, for owner to add/remove ↵Brion Vibber
administrator and moderator options. Buttons need to be themed.
2010-03-03Avoid notice on local group creation when uri isn't passed in at create time ↵Brion Vibber
(needs to be generated)
2010-03-03Use poster's subscribed groups to disambiguate group linking when a remote ↵Brion Vibber
group and a local group exist with the same name. (If you're a member of two groups with the same name though, there's not a defined winner.)
2010-03-02OStatus: save file records for enclosuresBrion Vibber
Also stripping id from foreign HTML messages (could interfere with UI) and disabled failing attachment popup for a.attachment links that don't have a proper id, so you can click through instead of getting an error. Issues: * any other links aren't marked and saved * inconsistent behavior between local and remote attachments (local displays in lightbox, remote doesn't) * if the enclosure'd object isn't referenced in the content, you won't be offered a link to it in our UI