Commit Graph

370 Commits

Author SHA1 Message Date
Evan Prodromou 65766a0ebe continue deleting even if user profile record is missing 2010-03-28 11:58:16 -04:00
Brion Vibber e89908f261 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 1.0.x
Conflicts:
	lib/channel.php
	scripts/imdaemon.php
2010-03-22 13:56:16 -07:00
Brion Vibber cac9d23498 Fix for xmpp/sms notification options appearing to be disabled on new 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-18 14:26:32 -07:00
Brion Vibber 1de7badd78 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-18 10:55:20 -07:00
Brion Vibber 515cdf28a8 Ensure that DB connection is active at start of User::updateKeys() and 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-18 09:24:55 -07:00
Evan Prodromou 425ddcaa26 add exception on inconsistent db to User::getProfile() 2010-03-18 08:35:10 -05:00
Sarven Capadisli 4c320872d9 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-11 16:39:07 -05:00
Brion Vibber ce92bc7143 Drop timestamp cutoff parameter from User::getCurrentNotice() and 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-11 11:01:01 -08:00
Craig Andrews 714d920fae Merge branch '0.9.x' into 1.0.x
Conflicts:
	classes/statusnet.ini
	db/statusnet.sql
	lib/jabber.php
	lib/xmppmanager.php
2010-03-08 17:22:23 -05:00
Brion Vibber b218aee94e Merge commit 'origin/testing' into 0.9.x
Conflicts:
	lib/action.php
	lib/adminpanelaction.php
2010-03-04 06:07:28 -08:00
Brion Vibber 3bb42d1170 Use poster's subscribed groups to disambiguate group linking when a remote 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-03 19:00:02 +00:00
Brion Vibber ddf3614c84 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-02 13:38:10 -08:00
Brion Vibber 6b134ae4c7 Dropped deprecated timestamp-based 'since' parameter for all API methods. When it sneaks in it can cause some very slow queries due to mismatches with the indexing.
Twitter removed 'since' support some time ago, and we've already removed it from the public timeline, so it shouldn't be missed.
2010-03-02 11:54:02 -08:00
Craig Andrews 410cd52434 bail out if the requested nickname is illegal 2010-02-26 15:51:25 -05:00
Craig Andrews c187bf5597 Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	db/statusnet.sql
	lib/queuemanager.php
2010-02-24 20:52:45 -05:00
Evan Prodromou 52e8aa798a Refactor subs_* functions for remote use
The subs_* functions in subs.php have made a lot of assumptions
about users versus profiles. I've refactored the functions to
be methods of the Subscription class instead, and to use Profile
objects throughout.

Some of the checks for blocks or existing subscriptions depended
on users or profiles, so I've moved those methods around a bit.

I've left stubs for the subs_* functions until we get time to replace
them.
2010-02-19 08:16:45 -05:00
Craig Andrews 32084e33a2 Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
2010-02-16 10:25:57 -05:00
Brion Vibber 9554b4ccbf Inbox::streamNotices() with deletion compensation: inbox paging should more or less work with deleted items now.
No change in efficiency for the common case where nothing's deleted: does the same bulk fetch of just the notices we think we'll need as before, then if we turned up short keeps checking one by one until we've filled up to our $limit.

This can leave us with overlap between pages, but we already have that when new messages come in between clicks; seems to be the lesser of evils versus not getting a 'before' button.
More permanent fix for that will be to switch timeline paging in the UI to use notice IDs.
2010-02-04 15:09:04 -08:00
Craig Andrews 057ec1fcea Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	lib/imqueuehandler.php
	lib/jabber.php
	lib/util.php
	plugins/Xmpp/Sharing_XMPP.php
2010-02-02 17:00:10 -05:00
Evan Prodromou f9cb1c3265 restructuring of User::registerNew() lost password munging 2010-02-01 00:47:50 -05:00
Evan Prodromou fb36094eb1 buggy fetch for site owner 2010-01-31 22:55:07 -05:00
Evan Prodromou 8cb8b357a4 add hooks for user registration 2010-01-29 17:54:54 -05:00
Evan Prodromou 70a4f8c0e2 method to get the site owner 2010-01-29 15:15:23 -05:00
Craig Andrews e9995b0f6a Create IM plugin, Pluginize XMPP, Create AIM plugin 2010-01-27 13:48:35 -05:00
Evan Prodromou e26a843caf Offload inbox updates to a queue handler to speed up posting online
Moved much of the writing that happens when posting a notice to a new
queuehandler, distribqueuehandler. This updates tags, groups, replies
and inboxes at queue time (or at Web time, if queues are disabled).

To make this work well, I had to break up the monolithic
Notice::blowCaches() and make cache blowing happen closer to where
data is updated.

Squashed commit of the following:

commit 5257626c62750ac4ac1db0ce2b71410c5711cfa3
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 14:56:41 2010 -0500

    slightly better handling of blowing tag memory cache

commit 8a22a3cdf6ec28685da129a0313e7b2a0837c9ef
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 01:42:56 2010 -0500

    change 'distribute' to 'distrib' so not too long for dbqueue

commit 7a063315b0f7fad27cb6fbd2bdd74e253af83e4f
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 01:39:15 2010 -0500

    change handle_notice() to handle() in distributqueuehandler

commit 1a39ccd28b9994137d7bfd21bb4f230546938e77
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 16:05:25 2010 -0500

    error with queuemanager

commit e6b3bb93f305cfd2de71a6340b8aa6fb890049b7
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 01:11:34 2010 -0500

    Blow memcache at different point rather than one big function for Notice class

commit 94d557cdc016187d1d0647ae1794cd94d6fb8ac8
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jan 25 00:48:44 2010 -0500

    Blow memcache at different point rather than one big function for Notice class

commit 1c781dd08c88a35dafc5c01230b4872fd6b95182
Author: Evan Prodromou <evan@status.net>
Date:   Wed Jan 20 08:54:18 2010 -0500

    move broadcasting and distributing to new queuehandler

commit da3e46d26b84e4f028f34a13fd2ee373e4c1b954
Author: Evan Prodromou <evan@status.net>
Date:   Wed Jan 20 08:53:12 2010 -0500

    Move distribution of notices to new distribute queue handler
2010-01-25 18:08:21 -05:00
Evan Prodromou 1bbd19169f unimplement repeatedToMe() until we figure out how 2010-01-13 00:44:29 -08:00
Evan Prodromou 1e7ec69190 some formatting changes to make inblobs work 2010-01-09 10:02:07 -08:00
Evan Prodromou f2a403589c Use inbox instead of notice_inbox 2010-01-09 10:02:07 -08:00
Evan Prodromou 39bdda9c7e More configuration options for location sharing 2009-12-28 14:43:34 -08:00
Evan Prodromou bb93d6b1c7 remove namespace setting from location; it's unused 2009-12-28 14:21:07 -08:00
Evan Prodromou c07f221040 check if other user exists before unsub 2009-12-28 10:42:31 -08:00
Brion Vibber fa0fbd0118 Fix for massively slow friends timeline query due to indexing bug introduced with repeats.
Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table.
Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up.

Before:
mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0;
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+
| id | select_type | table        | type   | possible_keys                      | key     | key_len | ref                           | rows   | Extra                                        |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+
|  1 | SIMPLE      | notice_inbox | ref    | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4       | const                         | 102600 | Using index; Using temporary; Using filesort |
|  1 | SIMPLE      | notice       | eq_ref | PRIMARY                            | PRIMARY | 4       | stoica.notice_inbox.notice_id |      1 | Using index                                  |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+

After:
mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0;
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
| id | select_type | table        | type   | possible_keys                      | key     | key_len | ref                           | rows   | Extra                    |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
|  1 | SIMPLE      | notice_inbox | ref    | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4       | const                         | 102816 | Using where; Using index |
|  1 | SIMPLE      | notice       | eq_ref | PRIMARY,notice_repeatof_idx        | PRIMARY | 4       | stoica.notice_inbox.notice_id |      1 | Using where              |
+----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
2009-12-22 20:30:41 -08:00
Brion Vibber 0ca80f78fb Add doc comments listing the array parameters for User::register() and Notice::saveNew() 2009-12-16 09:27:48 -05:00
Brion Vibber a998bda4a5 Fix UserRightsTest unit tests 2009-12-16 09:27:48 -05:00
Evan Prodromou 2a8eee0e0b add friends_timeline with no repeats in it 2009-12-14 16:41:25 -05:00
Evan Prodromou 1ec54d3433 add statuses/retweeted_to_me to API 2009-12-12 16:15:23 -05:00
Evan Prodromou cfe67a9c01 add statuses/retweets_of_me to API 2009-12-12 16:00:27 -05:00
Evan Prodromou 138ce0cd05 add statuses/retweeted_by_me api action 2009-12-12 15:35:05 -05:00
Zach Copley d2b42577de Was deleting wrong subscription during block. Now deletes the blockee's sub if it exists. 2009-12-03 17:44:34 -08:00
Zach Copley aef4cc0a59 Make it impossible to block (and thus unsubscribe from your
self-subscription) via the API.  Additionally, make it impossible
to block yourself or unsubscribe from yourself, period.

I also made User use the subs.php helper function for unsubscribing
during a block.

Hopefully, these changes will get rid of the problem of people
accidentally deleting their self-subscriptions once and for all
(knock on wood).
2009-12-03 17:06:58 -08:00
Evan Prodromou 6a1afda259 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	classes/statusnet.ini
2009-11-17 06:25:07 -05:00
Evan Prodromou d2145a5b7f Move rights check to profile and add right for new notices
Added a right for new notices, realized that the hasRight() method
should be on the profile, and moved it.

Makes this a less atomic commit but that's the way it goes sometimes.
2009-11-16 19:03:59 +01:00
Craig Andrews 7177585630 getGroups was not handling the case where limit=null correctly 2009-11-16 11:22:45 -05:00
Evan Prodromou 3e08309826 change uses of User_role to Profile_role 2009-11-16 16:06:52 +01:00
Evan Prodromou 792590bcdc move role functions to Profile class 2009-11-16 15:52:33 +01:00
Evan Prodromou c9475c76a8 define rights around how to silence, sandbox, and delete a user 2009-11-15 15:59:10 +01:00
Craig Andrews ed690615de Added a User_username table that links the external username with a StatusNet user_id
Added EmailAuthenticationPlugin
Added ReverseUsernameAuthenticationPlugin
Changed the StartChangePassword and EndChangePassword events to take a user, instead of a nickname
User::allowed_nickname was declared non-static, but used as if it was static, so I made the declaration static
2009-11-12 20:12:36 -05:00
Brion Vibber 088081675f Revert "Remove more contractions"
This reverts commit 5ab709b739.

Missed this one yesterday...
2009-11-09 20:01:46 +01:00
Siebrand Mazeland 5ab709b739 Remove more contractions
* doesn't
* won't
* isn't
* don't
2009-11-08 23:32:15 +01:00
Evan Prodromou 111f6a775d Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-11-08 17:06:41 -05:00
Brion Vibber 8d44b6a5a2 Fix bug 1962: deleteuser.php regression when OpenID plugin not enabled
The User_openid data object was explicitly listed as a related field to delete from in User::delete(); this class doesn't exist anymore by default since OpenID was broken out to a plugin.
Added UserDeleteRelated event for plugins to add related tables to delete from at user delete time.
2009-11-08 14:40:30 +01:00
Evan Prodromou 38833af6f1 use upper-case constants for roles and rights in hasRight() 2009-11-07 19:16:54 -05:00
Evan Prodromou a2b8303925 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	classes/User.php
2009-11-02 18:13:04 -05:00
Evan Prodromou 61419038e5 Merge branch '0.8.x' into 0.9.x
Conflicts:
	README
2009-11-02 18:11:45 -05:00
Craig Andrews 15d0055c6f allowed_nickname blocks top level url router names 2009-11-02 15:18:56 -05:00
Evan Prodromou 6664528244 Revert "Blacklist all files and directories in the web root (INSTALLDIR). Much more elegant than manually keep tracking of these invalid usernames."
This reverts commit 15f9c80c28.

So, so, elegant! And so, so, incorrect!

We can't have a user named 'notice' because that would interfere with
URLs like /notice/1234. However, there is no file named 'notice' in
the Web root.

If there were a way to automatically pull out the virtual paths in the
root dir, this may make sense. Until then, we keep track here.
2009-11-01 11:09:14 -05:00
Evan Prodromou b73d6d18ba Merge branch '0.9.x' into location 2009-10-28 17:24:53 -04:00
Carlos Perilla bf701b8235 Enable welcome bot to broadcast it's notices 2009-10-27 23:38:08 -04:00
Evan Prodromou 943b2bea09 update location while registering 2009-10-23 11:46:44 -04:00
Evan Prodromou 4f5badda94 remove inboxes option 2009-10-13 17:38:27 -04:00
Evan Prodromou c5047fd90a Merge branch '0.8.x' into 0.9.x
Conflicts:
	classes/Profile.php
2009-10-04 03:07:37 -04:00
Evan Prodromou 94e3f6bb09 also delete blocks 2009-10-02 15:29:57 -04:00
Evan Prodromou b3b3af9a2e Merge branch '0.8.x' into deleteuser 2009-10-02 15:27:55 -04:00
Evan Prodromou 38345d0783 let hooks override standard user rights 2009-09-27 21:11:45 -04:00
Evan Prodromou 6c069312e2 user rights 2009-09-27 21:11:45 -04:00
Evan Prodromou 8284b3cb82 Merge branch '0.8.x' into 0.9.x
Conflicts:
	actions/requesttoken.php
	classes/File.php
	install.php
	lib/noticeform.php
2009-09-23 09:45:22 -04:00
Craig Andrews 15f9c80c28 Blacklist all files and directories in the web root (INSTALLDIR). Much more elegant than manually keep tracking of these invalid usernames. 2009-09-18 17:53:06 -04:00
Brenda Wallace 815630fe63 used standard SQL that mysql and pgsql both like 2009-08-28 20:45:12 +12:00
Brenda Wallace b9ea2bf1bc used standard SQL that mysql and pgsql both like 2009-08-28 20:44:11 +12:00
Brenda Wallace b833b725a8 make use of common_database_tablename() 2009-08-28 20:42:13 +12:00
Evan Prodromou 522008dee5 methods on User to grant, check, and revoke roles 2009-08-27 11:38:31 -07:00
Evan Prodromou 5d09b6b3f0 Merge branch '0.8.x' into 0.9.x
Conflicts:
	EVENTS.txt
	actions/finishremotesubscribe.php
	actions/postnotice.php
	actions/public.php
	actions/remotesubscribe.php
	actions/showstream.php
	actions/updateprofile.php
	actions/userauthorization.php
	classes/laconica.ini
	lib/common.php
	lib/oauthstore.php
	lib/omb.php
2009-08-27 11:16:45 -07:00
Evan Prodromou df86aa7214 define LACONICA and accept LACONICA for backwards compatibility 2009-08-26 10:41:36 -04:00
Evan Prodromou 865b716f09 change LACONICA to STATUSNET 2009-08-25 18:42:34 -04:00
Evan Prodromou 4737563b95 a distributed -> the distributed 2009-08-25 18:14:12 -04:00
Evan Prodromou c8b8f07af1 change Laconica and Control Yourself to StatusNet in PHP files 2009-08-25 18:12:20 -04:00
Evan Prodromou 622c0b24c3 move redirect-to-openid code to OpenID plugin 2009-08-04 13:17:43 -04:00
Evan Prodromou 51ac34e80c first version of deleting users 2009-07-26 13:06:38 -06:00
Evan Prodromou 5f7fb99447 change NOTICE_GATEWAY to Notice::GATEWAY so autoloading works 2009-07-23 14:22:22 -07:00
Evan Prodromou 8b65883f9d cache frequently-used subscriber, subscription, notice and fave count values 2009-07-09 17:28:38 -07:00
Evan Prodromou ac361791c4 fix caching of faves by own, other 2009-07-05 11:32:57 -04:00
Evan Prodromou 994768b821 break up big inbox queries into lots of small ones 2009-06-25 23:00:46 -07:00
Zach Copley 31325f0995 Stop Twitter gateway notices from leaking via user faves pages 2009-06-23 13:51:23 -07:00
Evan Prodromou 3f54840b51 Only show twitter msgs in your own inbox 2009-06-18 11:45:48 -07:00
Evan Prodromou 4df1ea49ec Merge branch '0.8.x' into userdesign
Conflicts:
	actions/designsettings.php
2009-06-09 21:51:24 -07:00
Evan Prodromou adfb79a9bb Merge branch '0.7.x' into 0.8.x
Conflicts:
	classes/Notice.php
	classes/Profile.php
	lib/common.php
	lib/util.php
	scripts/getvaliddaemons.php
	scripts/stopdaemons.sh
2009-06-08 11:55:32 -07:00
Evan Prodromou 7656277313 remove debug code from replies 2009-05-30 03:02:26 -04:00
Evan Prodromou 705abf31ee add getDesign to User 2009-05-23 23:27:42 -04:00
Evan Prodromou 91fc1e36bc update User.php with new design-related fields 2009-05-23 23:26:29 -04:00
Robin Millette 0271859c24 Added personal tag page: http://example.com/MY_NICK/tag/A_TAG 2009-05-18 17:18:57 -04:00
Evan Prodromou 5314d9b2cf make faves work with ids 2009-05-01 12:01:28 -07:00
Evan Prodromou aee641ee1e make replies use new query format 2009-04-29 20:45:33 -04:00
Evan Prodromou c7105c2af1 Change to avoid a join in notice inbox
The join in notice_inbox is causing temp-table sorting on identi.ca,
so I'm trying a finer-tuned approach.
2009-04-28 13:07:05 -04:00
Evan Prodromou 3081b2e317 start of querybyid 2009-04-16 08:44:48 -04:00
Evan Prodromou eacdf329b6 some phpcs fixups 2009-03-28 17:42:45 -04:00
Evan Prodromou fe426a3152 welcome notice, default sub for new users 2009-03-28 17:36:39 -04:00
Evan Prodromou 0570c16e6c Add local directory for plugins, themes, etc.
Added a local directory for locally-installed software. This is where
you should put any code you write, themes, plugins, etc. so they don't
get stomped by upgrades.
2009-03-07 11:56:01 -08:00
CiaranG e5345d8d7a PostgreSQL - fixed a couple more quoting issues 2009-03-05 16:18:31 +00:00
Leslie Michael Orchard 9a0e71f9bf Fixing a bunch of undefined variable warnings in OpenID signup process 2009-02-20 16:37:59 -05:00
Evan Prodromou affb2f9359 add email notify flag for @-replies 2009-02-16 18:24:43 -05:00
Evan Prodromou 7ad3ff4a2c Allow re-authentication with OpenID
"Rememberme" logins aren't allowed to make changes to an account
(since cookie-stealing is too easy). Users have to re-authenticate.
Previously, it was impossible to do so without having a username and
password; this change lets you do it with OpenID, too.
2009-02-05 11:46:17 -05:00
Ciaran Gultnieks 53274a6d93 PostgreSQL - code changes to avoid problems where user table is referenced in ad-hoc queries 2009-01-30 01:12:58 +00:00
Evan Prodromou a7c85bebd5 Merge branch 'master' of /var/www/mublog
Conflicts:

	actions/api.php
	actions/deletenotice.php
	actions/recoverpassword.php
	actions/remotesubscribe.php
	actions/tag.php
	actions/tagrss.php
	actions/twitapiaccount.php
	actions/twitapiusers.php
	classes/Notice.php
	classes/User.php
	lib/common.php
	lib/language.php
	lib/subs.php
	lib/twitterapi.php
	lib/util.php
	scripts/inbox_users.php
	scripts/update_translations.php

Merged development trunk into laconica head. woohoo!
2009-01-23 08:58:31 +01:00
Evan Prodromou d6879bfe0c Debug some of the subscriptions+tags problems 2009-01-22 22:38:10 +00:00
Evan Prodromou 8516ccfb9d move membership/adminship tests to profile 2009-01-21 13:57:18 -05:00
Evan Prodromou 00f6f4fb67 user subscriptions methods 2009-01-21 13:00:30 -05:00
Evan Prodromou 64f5c542df Add group and groups to list of forbidden user names 2009-01-21 12:21:16 -05:00
Evan Prodromou fb6e9dda8e A method on User for getting groups 2009-01-21 12:19:23 -05:00
Evan Prodromou 26652e92f2 First pass at a group home page
This is the first pass at a group home page.
2009-01-21 02:22:10 -05:00
Evan Prodromou af2fb7dff2 Don't override ORDER for inboxes; it messes up caching 2009-01-19 22:51:03 -05:00
Evan Prodromou 35bc21d3bb whitespace conflicts in User.php
darcs-hash:20081211163434-5ed1f-38d9bf093db72d27837cbfe76d46fd518adc3bb6.gz
2008-12-11 11:34:34 -05:00
Evan Prodromou 7ad2f2a371 TRUE
More PEAR coding standards global changes. Here, I've changed all
instances of TRUE to true and FALSE to false.

darcs-hash:20081223194428-84dde-cb1a1e6f679acd68e864545c4d4dd8752d6a6257.gz
2008-12-23 14:44:28 -05:00
Evan Prodromou 04ef1ba8ee change function headers to K&R style
Another huge change, for PEAR code standards compliance. Function
headers have to be in K&R style (opening brace on its own line),
instead of having the opening brace on the same line as the function
and parameters. So, a little perl magic found all the function
definitions and move the opening brace to the next line (properly
indented... usually).

darcs-hash:20081223193323-84dde-a28e36ecc66672c783c2842d12fc11043c13ab28.gz
2008-12-23 14:33:23 -05:00
Evan Prodromou eb2f9c98ac replace NULL with null
Another global search-and-replace update. Here, I've replaced the PHP
keyword 'NULL' with its lowercase version. This is another PEAR code
standards change.

darcs-hash:20081223192129-84dde-4a0182e0ec16a01ad88745ad3e08f7cb501aee0b.gz
2008-12-23 14:21:29 -05:00
Evan Prodromou edbc0c665c replace all tabs with four spaces
The PEAR coding standards decree: no tabs, but indent by four spaces.
I've done a global search-and-replace on all tabs, replacing them by
four spaces. This is a huge change, but it will go a long way to
getting us towards phpcs-compliance. And that means better code
readability, and that means more participation.

darcs-hash:20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz
2008-12-23 14:19:07 -05:00
Zach Copley 792cb7a535 fix registration bug - fatal error when sending email confirmation
darcs-hash:20081209082750-7b5ce-6d06a7b1cda2a9afb6ce8ea64d65df81cc063139.gz
2008-12-09 03:27:50 -05:00
Zach Copley 92ea88fd60 trac540 - Add 'since' param to Twitter-compatible API calls
darcs-hash:20081209055345-7b5ce-e48fd4c87963b8ae15859fd03d2f1f86a16f3a2b.gz
2008-12-09 00:53:45 -05:00
Evan Prodromou 8445796908 fix Profile_block::get() again
darcs-hash:20081209041648-5ed1f-fb6ed96047ebfbbe769a11cc3171ce8a5a1440a7.gz
2008-12-08 23:16:48 -05:00
Evan Prodromou facba2566b removed Profile_block::get, changed to use pkeyGet
darcs-hash:20081209041227-5ed1f-2edefdc79545da646a6fd40b15fd72809c15831c.gz
2008-12-08 23:12:27 -05:00
Evan Prodromou ef3d487ae0 enable block API
darcs-hash:20081208185728-5ed1f-8d5f6be6decfbb50deb4ca50bee13404d0c51b72.gz
2008-12-08 13:57:28 -05:00
Evan Prodromou 81a81baf83 low-level management of blocks
darcs-hash:20081208031008-5ed1f-c96006b5c05fa0e68f9adaacd0518016aedfee2a.gz
2008-12-07 22:10:08 -05:00
Evan Prodromou a143b64666 edit throttling
darcs-hash:20081210174722-84dde-4c79d7f73230d008195bd19738bc9a6017b940e9.gz
2008-12-10 12:47:22 -05:00
Evan Prodromou 6f31f25105 let users set their own profile tags from profilesettings
darcs-hash:20081120214821-84dde-c8569ef645b389de545f78bf01a270f28b871f02.gz
2008-11-20 16:48:21 -05:00
Evan Prodromou 3b4db8f5e1 whitespace diffs in User.php
darcs-hash:20081120205421-84dde-b41e50386ce3ec5f887c87cd83258c2e0e86f713.gz
2008-11-20 15:54:21 -05:00
millette f71f2d5ba8 emailnotifynudge added to User.php class manually (how to auto-gen?)
darcs-hash:20081117003010-099f7-dd605b41a28ab99c2fadde38d9c7341bfdae0312.gz
2008-11-16 19:30:10 -05:00
Evan Prodromou 45f5ef8c87 if all faves in cache, skip
darcs-hash:20081122192857-84dde-c8fcddd794a8339a53e6a0224bd07f6f86ef3896.gz
2008-11-22 14:28:57 -05:00
Evan Prodromou 24ad0b3c13 blow last cache for faves
darcs-hash:20081122165234-84dde-d9d6a608434502cb3d5fb09f04d0c641900c3134.gz
2008-11-22 11:52:34 -05:00
Evan Prodromou 5d161f3d24 messed up logic for passing faves
darcs-hash:20081122163552-84dde-9171c5e24ae90a430f2abd78437073656af9e5ec.gz
2008-11-22 11:35:52 -05:00
Evan Prodromou 5632b2e6d5 use cached fave stream to save DB hits for faves
darcs-hash:20081122163347-84dde-abb0dfc800f65f50951c5517af3bfda48013c6ed.gz
2008-11-22 11:33:47 -05:00
Evan Prodromou 16e3fcf2c2 add inboxes for new users
darcs-hash:20081116062937-84dde-2c2369d0513dba49514a6800f67324803d0fe335.gz
2008-11-16 01:29:37 -05:00
Evan Prodromou 5409bd6a5d different query based on config var and user inbox status
darcs-hash:20081113215734-84dde-badae0579fb70a6760dc6fdf0289b76356e479f6.gz
2008-11-13 16:57:34 -05:00
Evan Prodromou 69a1cea319 add inboxed and regenerate data objects
darcs-hash:20081113210209-84dde-56052bac5ce490d54f3220baaa13f5bfc0e7618d.gz
2008-11-13 16:02:09 -05:00
millette 15c1d4f5e4 trac31 url_auto_shortening by sgmurphy
darcs-hash:20081106205926-099f7-6bcfd7969a159a12b1ba6a9ee254e44a07b94761.gz
2008-11-06 15:59:26 -05:00
Evan Prodromou 0625f18c8e notice_inbox.id -> notice_inbox.notice_id
darcs-hash:20081112173627-5ed1f-7cee5b6f25ab654f066c8902492ed531fb1ea091.gz
2008-11-12 12:36:27 -05:00
Evan Prodromou 3987de1064 created timestamp on notice_inbox
darcs-hash:20081112172517-5ed1f-4e8534d7898e2134edf4c0a28417b4a5274617d4.gz
2008-11-12 12:25:17 -05:00
zach 8deac7248e Twitter-compatible API - since_id and before_id were polluting the cache and generating bad SQL
(Also cleaned out some extra whitespace.)

darcs-hash:20081104053359-462f3-2f6619bb942aa34b38dd82cb427878f83d4c332c.gz
2008-11-04 00:33:59 -05:00
Evan Prodromou 561140fbed change User to use notice inboxes rather than subscription
darcs-hash:20081022210445-5ed1f-94a7b172f33411dfa8d1faaf7dc72169f57d6b39.gz
2008-10-22 17:04:45 -04:00
Evan Prodromou 894496f0e8 remove unused noticesWithFriendsWindow from User
darcs-hash:20081022210428-5ed1f-8de35689bfee3b38e6da83328137fb457a0bfdb0.gz
2008-10-22 17:04:28 -04:00
Zach Copley 06a80c829b Another patch to fix up whitespace conflicts in User.php
darcs-hash:20081005181614-7b5ce-4ab236108fe2570a199120317120d921715fbd19.gz
2008-10-05 14:16:14 -04:00
Zach Copley e115322473 Fixed up conflict (over white space) in User.php
darcs-hash:20081005181350-7b5ce-1e722af0bd3677b27dd6d100456131a42072dd91.gz
2008-10-05 14:13:50 -04:00
Evan Prodromou 5978fcb601 fix deleted function after synch from Zach
darcs-hash:20081004194218-5ed1f-efd9e82c9f78e19185d8ef6b626f46c5ae6613db.gz
2008-10-04 15:42:18 -04:00
mac65 c08a67094c Add support for since_id and before_id to Twitter API. Ticket #540.
darcs-hash:20081001001233-e558a-3fcc269985050021ec9b44c052206c731cc4689d.gz
2008-09-30 20:12:33 -04:00
Evan Prodromou 67cf415b7e don't try to free faves in User
darcs-hash:20081002162739-5ed1f-7d83c69d986cc704ef1bb9703a105ac04ad38d06.gz
2008-10-02 12:27:39 -04:00
Evan Prodromou 37735a35c0 try to use caching functions where possible in User
darcs-hash:20081002162513-5ed1f-fff718be660fa4a8abf58df402a3db30d72d11db.gz
2008-10-02 12:25:13 -04:00
Evan Prodromou f290ae348a remove unused helper function
darcs-hash:20081002144628-5ed1f-0cf7909fd15d5361d391a9bcde723585d83e5ed3.gz
2008-10-02 10:46:28 -04:00
Evan Prodromou f5f9559a60 correct some SQL and add some spaces
darcs-hash:20080928174316-5ed1f-73bc071fed0aff359c94b4213816e8830eba6c50.gz
2008-09-28 13:43:16 -04:00
Evan Prodromou 3a99883c6c remove noticewrapper
darcs-hash:20080928171634-5ed1f-5a62d8a16dedeff8a9ed5677b2288c9890a008e7.gz
2008-09-28 13:16:34 -04:00
Evan Prodromou 02a3f24b92 single function for important streams, with memcached support
I moved the 4 streams for a user (with friends, faves, replies,
personal) into functions on the User object. Added a helper function
in Notice for making notice streams. Also, will fetch notice streams
out of the memcached server, if possible. Made the API, RSS, and HTML
output all use the same streams (hopefully cached).

Added some code to Notice to blow the cache when a notice is posted.
Also, added code to favor and disfavor actions to blow the faves
cache, too.

darcs-hash:20080928120119-5ed1f-ead542348bcd3cf315be6f42934353154402eb16.gz
2008-09-28 08:01:19 -04:00
Evan Prodromou 82084ab74c move memcache connections to util.php
darcs-hash:20080926200102-5ed1f-debbc18981424d7724277ac82e5fbfd5e797090e.gz
2008-09-26 16:01:02 -04:00
Evan Prodromou 8da61dc1d3 path correct in require_once for memcached
darcs-hash:20080926161824-5ed1f-b4fb53e5ca65bb099aabbba6ea60a13496f669a2.gz
2008-09-26 12:18:24 -04:00
Evan Prodromou f6615f70e5 prepend Memcached_DataObject require with INSTALLDIR
darcs-hash:20080926161540-5ed1f-2e9dc6f2297c612208214a6d52f36ce0dd7aa4de.gz
2008-09-26 12:15:40 -04:00
Evan Prodromou e2e6bbb298 caching layer for DB/DataObject
I added a new class, Memcached_DataObject, that will (optionally)
fetch data out of a memcached server if it's available. This only
works on 'staticGet'.

Methods that write to the database (insert, update, delete) will clear
and set the cache correctly, too.

darcs-hash:20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz
2008-09-26 12:09:41 -04:00
Evan Prodromou 0ee3d6ccb0 user -> this
darcs-hash:20080923181648-5ed1f-a30ef5c24b8b9e49e5c8ba8e023574bb7d9b1ef3.gz
2008-09-23 14:16:48 -04:00
Evan Prodromou e24425d44e correct a couple of bugs
darcs-hash:20080922190937-5ed1f-9439cd9cff178323ac1445f33e2520260b4b267e.gz
2008-09-22 15:09:37 -04:00
Evan Prodromou e42de1ccc1 fancy urls for show message, new message
darcs-hash:20080917180244-5ed1f-06e2ac2d8f094eacd12b316794b0599b57d76596.gz
2008-09-17 14:02:44 -04:00
Evan Prodromou 130ba28886 newmessage and showmessage
darcs-hash:20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz
2008-09-17 13:47:41 -04:00
Evan Prodromou 809c4a9d31 rationalize with ciarang's pgsql changes
darcs-hash:20080916214134-84dde-ba11f44676d876cf0f29773c60fa95676ad07ebd.gz
2008-09-16 17:41:34 -04:00
CiaranG ab68c61a12 PostgreSQL: Quote table name in manually formed query - fixes profile settings update
darcs-hash:20080915070256-f6e2c-344d1ca1ca158b9ab5f558804ad129c1ef9d6a7a.gz
2008-09-15 03:02:56 -04:00
CiaranG 26634ef0a0 Initial support for PostgreSQL
darcs-hash:20080909072224-f6e2c-881bd2e7fb032f336fecae9ca5ce527dd821d3dc.gz
2008-09-09 03:22:24 -04:00
Zach Copley 6eb84f0f03 Disallow 'api' nickname
darcs-hash:20080909000650-7b5ce-c7eb990db81620b83201c0e361af9dfcdd9c2b89.gz
2008-09-08 20:06:50 -04:00
Evan Prodromou 4476a4286f rationalize with repository version
darcs-hash:20080916174400-84dde-63781c5cd6a7c9a3dbc765dfa15084e3372effd5.gz
2008-09-16 13:44:00 -04:00
Evan Prodromou a8a3667774 initial non-Ajax version of favorites
darcs-hash:20080908181624-84dde-8200e1d91eb5f560ef0f296c9e1c56f93ef1b0c5.gz
2008-09-08 14:16:24 -04:00
Evan Prodromou 79f4469db9 Invite -> Invitation
darcs-hash:20080827010515-84dde-f4dd776209a0aa4f6a7e9d6ac1de46d83ff54650.gz
2008-08-26 21:05:15 -04:00
Evan Prodromou e248066b74 updates for invitations
Add the code to registration to handle invitation codes.

Some edge cases on invitations: is the user already subbed to this
person? Tell them. Is the person already on the system? Sub the user
to them, then, and tell the user.

Add some code to User to auto-sub invitees whenever the email address
changes. Call it from a new registration with an invite code, and also
from confirmaddress.

Some whitespace cleanup in the files touched.

darcs-hash:20080827001927-84dde-b50e5d921ca3f2fb894821730ff93cac09d2ba66.gz
2008-08-26 20:19:27 -04:00
Evan Prodromou d53a4123f3 can actually take all the data in the window
darcs-hash:20080920174700-84dde-a00751e0eafd9adc4580924bb41c11b0649b7fe5.gz
2008-09-20 13:47:00 -04:00
Evan Prodromou 7334add156 compress window-getting to one function
darcs-hash:20080915071835-84dde-173e6afde44c3348c3314c638e2a67dfb333c011.gz
2008-09-15 03:18:35 -04:00
Evan Prodromou 1806469ba2 $INSTALLDIR -> INSTALLDIR
darcs-hash:20080915070413-84dde-5e942675dec105b297889a58ea770fb4b337307d.gz
2008-09-15 03:04:13 -04:00
Evan Prodromou f246b8f2d7 cache noticesWithFriends in memcached
noticesWithFriends is turning out to be one of our most expensive
queries. The join is costly, and this method is hit over and over and
over by desktop clients and other API users.

So, I've added a first pass at caching the results. I store a "window"
of notices -- equal to the first 3 pages of notices, plus one for
pagination -- in the memcached cache. If with-friends notices are
requests, I fetch the whole window out of the cache and grab the slice
requested. If the requested notices are outside the window, we just do
the query. If there's nothing in the cache, we request the window and
store it, then return a slice.

I had to add a NoticeWrapper class that works like DB_DataObject
(well, just the fetch() part...) but just holds an array of notices
instead of a DB cursor.

Finally, saving a new notice blows away the caches for subscribed users.

darcs-hash:20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz
2008-09-15 02:56:16 -04:00
Ori Avtalion 77a96747d7 Disallow 'tag' and 'tags' as usernames. Fixes ticket #584
darcs-hash:20080905114534-57fc3-feee793696ddf3d5bbb1ae7f326d9d88dc961e60.gz
2008-09-05 07:45:34 -04:00
Evan Prodromou 08a3c5ac7f use better SQL date, fix security problem with OpenID logins
darcs-hash:20080825184104-84dde-5735c1791002a12c3417603dc85da31ea868f263.gz
2008-08-25 14:41:04 -04:00
Evan Prodromou 7554f2561c move user registration to a single static method
darcs-hash:20080814002038-84dde-8505d4e083056b770db128129a95be639d8e7f0a.gz
2008-08-13 20:20:38 -04:00
Evan Prodromou 9676315b2e extend length of source for notices
darcs-hash:20080731152731-84dde-dc6bf652c38ae9a52950e65d7cb310f870a70640.gz
2008-07-31 11:27:31 -04:00
mikec a4fa34cecb Resolve conflicts after pull from evan
darcs-hash:20080721135637-edabd-cca33bc0a0936423b9fd2ffdf9413236123d680e.gz
2008-07-21 09:56:37 -04:00
mikec 334c652e80 Publish MicroIDs for email and mpp on profile and notice pages.
darcs-hash:20080721120036-edabd-838335c0e23c80a657d353955b25b52a9a8624b2.gz
2008-07-21 08:00:36 -04:00
Mike Cochrane 12e610a223 Regenerate class file for language column
darcs-hash:20080720100253-533db-bc2605d57e265cfa4e38866b977c81302d4fb1c5.gz
2008-07-20 06:02:53 -04:00
matthew.gregg 6dd211530f Patch for PITS 00032, 00033, 00034
darcs-hash:20080719003417-982e4-7004f8a4dfb447f941457c30b0b2289eee5582e6.gz
2008-07-18 20:34:17 -04:00
Evan Prodromou 42ac47915b don't get a count from query
darcs-hash:20080722163116-84dde-3b17b13022b3d97483e911a99ebd23cc4b8da784.gz
2008-07-22 12:31:16 -04:00
Evan Prodromou 9515303b14 notices and counts
darcs-hash:20080722162332-84dde-75801a271f50789377aa7a3467223286c372ec6c.gz
2008-07-22 12:23:32 -04:00
Evan Prodromou 97b1552c9a another whitespace SQL error
darcs-hash:20080722161752-84dde-aaf5762ef3d376f0e8f335ff8f7811e3162d33fb.gz
2008-07-22 12:17:52 -04:00
Evan Prodromou 2f73f8a5e2 whitespace in SQL
darcs-hash:20080722161712-84dde-58d69d8861ad6be471ab2403cd5d23942c27eac6.gz
2008-07-22 12:17:12 -04:00
Evan Prodromou 81e6d50c53 blow off DB_DataObject joins, write SQL from scratch
darcs-hash:20080722161549-84dde-fedeed101bdef172f4a7aabf2278f1a2277a6d88.gz
2008-07-22 12:15:49 -04:00
Evan Prodromou 64ed01f0af centralize and optimize with-friends query
darcs-hash:20080722160213-84dde-2e466b9cc4601a8cb7237770a7df17a2f9dcadb9.gz
2008-07-22 12:02:13 -04:00
Evan Prodromou 98af7402c7 update keys for incomingemail
darcs-hash:20080721085641-84dde-9b29902977f78714188ba5fe8c37b4d603c3c63b.gz
2008-07-21 04:56:41 -04:00
Evan Prodromou f538ab414b save changes to smsemail
darcs-hash:20080721044604-84dde-c3e920bd56992c4e6a77625767b4599bacc74434.gz
2008-07-21 00:46:04 -04:00
Evan Prodromou 0c0ac46f43 add flag for sms replies
darcs-hash:20080721040551-84dde-f6c76d806969ccaa772da31235baaf7d9b065c15.gz
2008-07-21 00:05:51 -04:00
Evan Prodromou 3345f54186 add sms email address to user
darcs-hash:20080721035919-84dde-e06f9094902522d2cd0ad71d65d565293f19db4a.gz
2008-07-20 23:59:19 -04:00
Evan Prodromou 009a8efaf1 $true not the same as true
darcs-hash:20080720233308-84dde-f9de49360dd366690bd6e3bb55cb5fe632dd7298.gz
2008-07-20 19:33:08 -04:00
Evan Prodromou d294c91d82 add autosubscribe
darcs-hash:20080720201620-84dde-f782e01bdf7f267b3b02e20e851aa7b643ed8590.gz
2008-07-20 16:16:20 -04:00
Evan Prodromou 48ac5b9e85 add autosubscribe flag to users
darcs-hash:20080720200530-84dde-dade3117bdf510c1880d35f27bd9352995725175.gz
2008-07-20 16:05:30 -04:00
Evan Prodromou 5fd0a788d5 start sms settings
darcs-hash:20080720193005-84dde-97e098996309550dc98b658923d84620e7715c69.gz
2008-07-20 15:30:05 -04:00
Evan Prodromou 594811350c email settings for post by email
darcs-hash:20080719202625-84dde-52b3d6710302f55e35ef57ea0aa4aff07cbeafaa.gz
2008-07-19 16:26:25 -04:00
Evan Prodromou 9a3f73a672 mailer daemon start
darcs-hash:20080717132533-84dde-4ada5d4a103d92b9767726e723b26246205b9cbd.gz
2008-07-17 09:25:33 -04:00
Evan Prodromou 86428cbddb rebuild classes based on DB change
darcs-hash:20080715222026-84dde-6ceebbb94455aec41907896ab65294ce3f79492f.gz
2008-07-15 18:20:26 -04:00
Evan Prodromou 61487d4cd0 move email settings to its own tab
darcs-hash:20080715221826-84dde-8a3692f95199818c11dbb0be159d07f1ab10cf6a.gz
2008-07-15 18:18:26 -04:00
Evan Prodromou 499afd8c22 replies from people you're not subscribed to over Jabber
darcs-hash:20080715195513-84dde-454419c971015be385d9c4c35f7acbee419031f9.gz
2008-07-15 15:55:13 -04:00
Mike Cochrane 4b656f47df Merge conflicts and kill a whole lot of trailing whitespace on lines.
darcs-hash:20080709224630-533db-b5399baef280133858dac9b89c2cd6a2aba9f861.gz
2008-07-09 18:46:30 -04:00
Evan Prodromou 335d5f2e89 add 'avatar' to blacklisted names
darcs-hash:20080711171113-84dde-56b61d305e207bdb7d1fa844356fbc41e5bd43b9.gz
2008-07-11 13:11:13 -04:00
Evan Prodromou 62747030ca add fancy urls for search
darcs-hash:20080709223144-84dde-10f7f9db7dc5ba200fdeea4d6c1f277e71c54c16.gz
2008-07-09 18:31:44 -04:00
Evan Prodromou 8c9d88e26f check for profile
darcs-hash:20080707062347-84dde-fb13c5548d962092877fc374cea3f81ec2cca43e.gz
2008-07-07 02:23:47 -04:00
Evan Prodromou 8d3ec9c920 twiddle a few bits to make replies work correctly
darcs-hash:20080707054358-84dde-916977a2af4f792e0dc9e02a9f5344ec60911319.gz
2008-07-07 01:43:58 -04:00