Commit Graph

3284 Commits

Author SHA1 Message Date
Evan Prodromou
ac9fda4bc0 ProfileMiniListItem does same events as ProfileListItem 2010-04-01 15:53:17 -04:00
Brion Vibber
0841fa712e Ticket #1281: JID validation now more or less follows spec instead of calling e-mail validator
Basic splitting/validation code submitted via http://status.net/wiki/XMPP/JID_validation -- Copyright 2009 Patrick Georgi <patrick@georgi-clan.de> Licensed under ISC-L, which is compatible with everything else that keeps the copyright notice intact.

Added PEAR Net_IDNA package to extlib to handle IDN normalization (also used by Validate's email verifier if present).

* added test suite, supplemented my own test cases with JID validation and normalization test cases from libpurple
* follows XMPP rules for validation of name part
* fixes for normalization with non-ASCII names
* will do domain checks if $config['email']['check_domain'] is on, checking for an XMPP-server SRV record or any lookup. (We don't actually need to ping those direct though.)
* some more obscure stringprep validation rules aren't quite followed yet, but we err on the side of permissiveness.
* we still don't actually let you save your address with a resource on it, as we strip resources when looking up users who've sent us presence or message updates. I would recommend saving the outgoing resource as a separate field if/when we add that..?
2010-03-30 17:35:27 -07:00
Brion Vibber
0284e1315c Quick fixes for grouplistall:
* respect count instead of listing all groups
* respect page parameter
* don't spew notice on undefined $id
* don't spew notice on undefined $group->homepage_url (dropped the element since there's nothing to go in it)
2010-03-30 11:45:35 -07:00
Brion Vibber
ca897ef346 Quick fixes for grouplistall:
* respect count instead of listing all groups
* respect page parameter
* don't spew notice on undefined $id
* don't spew notice on undefined $group->homepage_url (dropped the element since there's nothing to go in it)
2010-03-30 11:10:29 -07:00
Brion Vibber
faa14b64ab Tweak to Eugene Crosser's patch to make transactions and acks configurable; disabling them gets basic message delivery working under MorbidQ, and may help with RabbitMQ etc.
I swapped the settings from negative to positive ($config['queue']['stomp_transactions'] = false rather than $config['queue']['stomp_no_transactions'] = true), gave them defaults (both on for best ActiveMQ experience), and added notes to the README about configuring them.
2010-03-29 15:46:41 -07:00
Eugene Crosser
bd1363c17a Make stomp queue manager work with basic servers
Signed-off-by: Eugene Crosser <crosser@average.org>
2010-03-29 15:31:43 -07:00
Brion Vibber
873b832827 Merge branch 'master' into testing
Conflicts:
	plugins/Blacklist/BlacklistPlugin.php
2010-03-29 15:14:25 -07:00
Brion Vibber
a8d92dad5e Renamed HTTPResponse class to StatusNet_HTTPResponse to avoid conflict with PECL HTTP extension.
The class isn't referenced by name by any other code I can see so this should have no side effects.
2010-03-29 15:07:15 -07:00
Brion Vibber
d44e5ac935 Add $config['db']['annotate_queries'] option to include caller ID comments into queries. Comment can then be seen in process list, slow query logs on the server, aiding in tracking down unexpected slow queries.
SELECT /* queuedaemon.php Ostatus_profile->processPost */ * FROM notice WHERE ( notice.uri = 'http://stormcloud.local/mublog2/notice/479' )
INSERT /* POST Notice::saveNew */ INTO notice (profile_id , content ....
2010-03-29 13:14:11 -07:00
Evan Prodromou
ddc71b6637 update README and version number 2010-03-28 11:39:56 -04:00
Evan Prodromou
29566c5d4b move check for bad IDs from activityobject to activity and make simpler 2010-03-27 22:44:10 -04:00
Zach Copley
60009227f7 Return an http auth error, when a client sends in an invalid auth user, even when http auth is not required. 2010-03-26 19:58:59 +00:00
Zach Copley
379df1ce3e Return an http auth error, when a client sends in an invalid auth user, even when http auth is not required. 2010-03-26 18:51:01 +00:00
Brion Vibber
511a164c99 Merge branch 'master' of git@gitorious.org:statusnet/mainline 2010-03-25 14:32:28 -07:00
Brion Vibber
e174a7211d Restore lost addition of inline HTML attachment display. 2010-03-25 14:31:22 -07:00
Evan Prodromou
46655eb3ca version number and codename 2010-03-25 17:25:26 -04:00
Sarven Capadisli
5e79ef58e4 Using hCard label instead of location. Matches userprofile. 2010-03-25 22:20:14 +01:00
Sarven Capadisli
2b3a2e6b6d Updated tag list output in subscriptions list. Matches userprofile. 2010-03-25 22:20:06 +01:00
Sarven Capadisli
41c8048efd Moved print inside base stylesheet using media rules. One less HTTP GET. 2010-03-25 22:19:50 +01:00
Brion Vibber
c11064a539 Updated 'more' anchor for attachments to do an XHR GET
Conflicts:

	lib/attachmentlist.php
	plugins/OStatus/classes/Ostatus_profile.php

Merge tried to delete things that it seems it shouldn't, very confusing order. Hope rest of the cherry-picking isn't a problem.
2010-03-25 14:15:54 -07:00
Sarven Capadisli
3c5586d4bd Using rel=external instead of class=external for jOverlay title link 2010-03-25 21:33:38 +01:00
Sarven Capadisli
53bed00f90 Added rel=external to geo location link 2010-03-25 21:33:26 +01:00
Sarven Capadisli
321093886f Assigned an identifier for the representative user and group profile 2010-03-25 21:32:28 +01:00
Evan Prodromou
920acf8d96 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-03-25 13:50:49 -04:00
Brion Vibber
a954fd65ba Fix for API group methods, caused failure or output corruption when pulling up local groups by name in api/statusnet/groups/is_member.json/xml 2010-03-24 13:36:57 -07:00
Brion Vibber
7277b59734 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-23 12:13:32 -07:00
Brion Vibber
44caa3a93f Consistently send Profiles into Fave::addNew() 2010-03-23 11:08:30 -07:00
Brion Vibber
80b16c8499 Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override.
This was being triggered by welcomebot messages created at account creation time, then propagated through replies.
2010-03-23 09:56:05 -07:00
Evan Prodromou
dd115fcb08 change router to allow hooking path connections 2010-03-23 12:33:41 -04:00
Zach Copley
b8e97ac709 Some initial media parsing
- Activity now returns a list of activity objects
- Processing of photo objects
2010-03-22 18:55:17 -07:00
Brion Vibber
4168b9cec1 Log backtraces for non-ClientException exceptions caught at the top-level handler. 2010-03-22 11:33:56 -07:00
Brion Vibber
5697e4edb0 Replace the "give up and dump object" attachment view fallback with a client-side redirect to the target URL, which will at least be useful. 2010-03-22 10:51:01 -07:00
Brion Vibber
7aee7670c7 Replace the "give up and dump object" attachment view fallback with a client-side redirect to the target URL, which will at least be useful. 2010-03-22 10:35:54 -07:00
Brion Vibber
fcb614d0eb Pull <atom:author> info as well as <activity:actor> when we have an old-style ActivityStreams feed. This fixes subscription setup for Cliqset feeds, which currently have a bogus activity:actor/atom:id but a good atom:author/atom:uri 2010-03-21 16:25:12 -07:00
Evan Prodromou
97bd7e22da correct creation of avatar links for RSS and Posterous elements 2010-03-20 17:18:24 -05:00
Evan Prodromou
11a86d046e move atom category to its own file, too 2010-03-20 16:55:36 -05:00
Evan Prodromou
323ff31fbd special-case Posterous author element for activity actor 2010-03-20 16:53:30 -05:00
Evan Prodromou
99454be38c Move activity classes to their own files
Moved the various classes used by the Activity class to their own
files. There were >10 classes in the same file, with around 1500 lines
in the file. Just too big.

This change makes autoloading work for these classes, so also removed
the hard require in lib/common.php.
2010-03-20 16:06:22 -05:00
Evan Prodromou
2fc0f0433e allow html content in summary and clean it out of title 2010-03-20 09:30:28 -05:00
Evan Prodromou
65c8dc313c rename $rss to $channel to prevent misunderstanding
RSS feeds have the format
<rss><channel><item/><item/><item/></channel></rss>. The element named
$rss was actually the <channel> element, so I renamed the variable so
I wouldn't hurt my head.
2010-03-20 07:19:54 -05:00
Evan Prodromou
022c13418d make deriving a subject from an RSS channel work 2010-03-19 15:49:38 -05:00
Evan Prodromou
1292230e38 move ActivityObject constructors from Activity to ActivityObject 2010-03-19 15:41:48 -05:00
Evan Prodromou
13b1acdd08 only search elements for links 2010-03-19 15:28:25 -05:00
Evan Prodromou
05e3768e6a Parse RSS items as activities
First steps to parsing RSS items as activities. RSS feeds don't seem
to have enough data to make good remote profiles, but this may work
with some "hints".
2010-03-19 09:48:39 -05:00
Brion Vibber
1301877dfe OStatus discover fixes:
* 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-18 17:08:19 -07:00
Craig Andrews
26ba430ae8 Remove xpm support (no one really uses it, and IMAGETYPE_XPM is undefined, causing warnings)
Remove erroneous call to unlink in the constructor
2010-03-18 15:39:06 -07:00
Brion Vibber
1de7badd78 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-18 10:55:20 -07:00
Evan Prodromou
0a1b10114b new exception class for when a user has no profile 2010-03-18 08:32:17 -05:00
Brion Vibber
22f827134c Workaround for HTTP authentication in the API when running PHP as CGI/FastCGI. Example rewrite lines added as comments in htaccess.sample, API tweaked to accept alternate environment var form. 2010-03-17 11:04:41 -07:00
Brion Vibber
f62b8a80cf Pull back for now on switch of PEAR error mode to exceptions; seems to trigger out exceptions at various times we don't want them.
For instance this was throwing an exception for DB_DataObject::staticGet when there's no match... definitely not what we want when all our code expects to get a nice null.
Example of this causing trouble: http://gitorious.org/statusnet/mainline/merge_requests/131

Revert "Don't attempt to retrieve the current user from the DB while processing a DB error"

This reverts commit 68347691b0.

Revert "Use PHP exceptions for PEAR error handling."

This reverts commit d8212977ce.
2010-03-16 16:32:25 -07:00
Zach Copley
b994d529f4 Throw an exception if we receive a document instead of a feed's root element 2010-03-15 19:06:06 -07:00
Brion Vibber
441e52718e Background deletion of user accounts. Notices are deleted in chunks, then 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-15 16:08:00 -07:00
Zach Copley
40cde2f710 Initial Twitpic-like media upload endpoint /api/statusnet/media/upload 2010-03-15 22:16:33 +00:00
Brion Vibber
c9232d8f26 Ticket #2242: fix reading of inline XHTML content in Atom feeds for OStatus input.
Lookup of the <div> needed to check for the XHTML namespace.
2010-03-15 20:21:55 +00:00
James Walker
c4f89b06f1 give preference to rel="photo" (per latest ActivityStreams spec), but still support rel="avatar" for compat 2010-03-14 12:57:24 -04:00
James Walker
a9dabbe77e * wrong param order to in_array
* in getContent() if "type" isn't set, assume text (per atom spec)
2010-03-13 10:37:08 -05:00
Brion Vibber
9e9ab23e1f Fixes for updating indices, charset/collation and engine type on plugin-created tables.
Under MySQL, new tables will be created as InnoDB with UTF-8 (utf8/utf8_bin) same as core tables.
Existing plugin tables will have table engine and default charset/collation updated, and string columns will have charset updated, at checkschema time.

Switched from 'DESCRIBE' to INFORMATION_SCHEMA for pulling column information in order to get charset. A second hit to INFORMATION_SCHEMA is also needed to get table properties.

Indices were only being created at table creation time, which ain't so hot. Now also adding/dropping indices when they change.

Fixed up some schema defs in OStatus plugin that were a bit flaky, causing extra alter tables to be run.

TODO: Generalize this infrastructure a bit more up to base schema & pg schema classes.
2010-03-12 13:16:32 -08:00
Brion Vibber
f72eb17304 Merge commit 'origin/testing' into 0.9.x 2010-03-12 09:41:49 -08:00
Brion Vibber
f3066c80d3 Merge commit 'origin/0.9.x' into 0.9.x 2010-03-12 09:41:45 -08:00
Zach Copley
3dc84dd02d Output enclosing geo elements and GeoRSS xmlns in XML timelines 2010-03-12 05:39:36 +00:00
Zach Copley
13556e7ba9 Add Atom self link to tag timeline 2010-03-12 04:08:31 +00:00
Brion Vibber
b1d90a835f Don't switch people from the Memcache to Memcached plugin without their knowledge when using back-compatibility $config['memcached']['enabled']. Performance characteristics for Memcached version on large-scale sites not tested yet.
New installations should be using addPlugin explicitly.
2010-03-11 18:10:41 -08:00
Brion Vibber
fe7b063b85 Remove stray whitespace at file start that snuck into last update 2010-03-11 18:07:00 -08:00
Craig Andrews
2179aae758 fubared a715271f84 - this is the fix 2010-03-11 21:02:41 -05:00
Zach Copley
e1537d8387 More generalized method for calculating Atom rel="self" links 2010-03-12 01:40:52 +00:00
Craig Andrews
a715271f84 reuse Subscription::cancel instead of reimplementing it.
I didn't know this method existed before... pretty neat.
2010-03-11 20:40:25 -05:00
Craig Andrews
d6e0640251 move image type checking to constructor, so checking will be done in all cases
check if the relevant image handling function exists when deciding if the image type is supported
2010-03-11 20:12:32 -05:00
Zach Copley
78f0d6bbd2 Scrub all atom output with common_xml_safe_str() 2010-03-12 01:12:30 +00:00
Zach Copley
b12c344930 Generator tag should have 'uri' attr not 'url' 2010-03-11 23:44:50 +00:00
Zach Copley
7e1a1506f5 Output self link in rss2 feeds, if available 2010-03-11 23:28:41 +00:00
Zach Copley
023f258b63 - Output georss xmlns in rss element
- Only output geopoint in rss if one is set
2010-03-11 23:05:56 +00:00
Sarven Capadisli
ded26ae8f5 Fixes the indenting bug for geo anchor. Also mention in trac ticket 2235 2010-03-11 16:40:16 -05:00
Brion Vibber
c6f09306b1 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-10 17:04:51 -08:00
Brion Vibber
5cd020bf29 Workaround intermittent bugs with HEAD requests by disabling keepalive in HTTPClient.
I think this is a bug in Youtube's web server (sending chunked encoding of an empty body with a HEAD response, leaving the connection out of sync when it doesn't attempt to read a body) but the HTTP_Request2 library may need to be adjusted to watch out for that.
2010-03-10 15:13:16 -08:00
Brion Vibber
6d73fc1d54 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-10 11:57:38 -08:00
Brion Vibber
54ff17010b Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-10 11:56:51 -08:00
Brion Vibber
532e486a93 Detect when queuedaemon/xmppdaemon parent processes die and kill the child processes.
Keeps stray daemon subprocesses from floating around when we kill the parents via a signal!

Accomplished by opening a bidirectional pipe in the parent process; the children close out the writer end and keep the reader in their open sockets list. When the parent dies, the children see that the socket's been closed out and can perform an orderly shutdown.
2010-03-10 11:54:00 -08:00
Zach Copley
55e8473a7a A blank username should never be allowed. 2010-03-10 09:57:00 -08:00
Brion Vibber
ddb656fcd2 Merge branch 'testing' into 0.9.x
Conflicts:
	actions/apistatusnetconfig.php
2010-03-10 09:55:14 -08:00
Brion Vibber
58fcb5ac6f Merge branch 'master' into testing 2010-03-10 09:53:55 -08:00
Brion Vibber
8ee8b89dd8 Ticket #2221: fix for missing whitespace between messages in en-gb.
The final whitespace should be dropped from the source messages after we've stabilized; trailing space is pretty unreliable to keep through translation tools and should be avoided. Use separator strings outside the messages!
2010-03-10 09:36:00 -08:00
Brenda Wallace
49f1b1e8b2 removed a stay bit of debug 2010-03-10 22:03:36 +13:00
Brenda Wallace
75e2be3b71 map the mysql-ish column types to ones postgres likes 2010-03-10 22:02:56 +13:00
Brenda Wallace
7398353c44 primary keys and unique indexes working in postgres 2010-03-10 21:54:30 +13:00
Brenda Wallace
c4ee2b20be throw an error that looks like mysql errors.. :-S 2010-03-10 21:25:44 +13:00
Zach Copley
7f2253759c A blank username should never be allowed. 2010-03-10 03:39:05 +00:00
Brion Vibber
6ea7e1c06e Merge branch 'testing' into 0.9.x 2010-03-09 14:20:50 -08:00
Brion Vibber
971f1f64f1 Added scripts/command.php, can be used to run commands such as subscription on behalf of users.
This includes whatever support for extended command parsing plugins may have added.

Example:
  ./scripts/command.php -nbrionv sub update@status.net
2010-03-09 13:41:05 -08:00
Brion Vibber
8bf1b54abd Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-09 13:07:52 -08:00
Brion Vibber
32532c7c42 Merge branch 'commands' into testing 2010-03-09 13:05:51 -08:00
Brion Vibber
80a17387bf Command input processing now has centralized places for looking up notice, user/profile, and group arguments.
OStatus plugin overrides these to allow using webfinger (user@example.com), profile URL (http://example.com/user) and bare profile URL (example.com/user) as arguments.
2010-03-09 13:03:32 -08:00
Brion Vibber
6c4ade4251 Merge branch 'testing' into 0.9.x 2010-03-09 11:27:53 -08:00
Brion Vibber
4caf0d2e73 Merge commit 'origin/master' into testing 2010-03-09 11:27:30 -08:00
Brion Vibber
60e0f04261 Ticket #2210: adjust locale setup fallback to try more locales on the system if en_US isn't available. We just need *something* other than C or POSIX to let gettext initialize itself, apparently...
Gets Spanish, French, Russian etc UI localization working on Debian Lenny fresh installation set up in Spanish (so es_ES.UTF-8 is available but en_US.UTF-8 isn't).
2010-03-09 17:38:16 +01:00
Craig Andrews
689e2e112b make common_copy_args() work when the post/get request includes arrays (form elements with names ending in [] having multiple values) 2010-03-08 21:43:34 -05:00
Craig Andrews
51a245f18c Added Memcached plugin (using pecl/memcached versus pecl/memcache) 2010-03-08 17:17:37 -05:00
Brion Vibber
42463e160d Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-08 13:37:45 -08:00
Brion Vibber
217ad420ac Fix ticket #2208: regression in XMPP sending when server != host
The upstream class sets $this->basejid with host unconditionally, which wasn't previously an issue as the fulljid would always be filled in by the server at connect time before sending messages. With the new queued messaging, we need to make sure we've filled out $this->fulljid correctly without making a connection.
Now using $server if provided to build $this->basejid and $this->fulljid in the queued XMPP proxy class, so queued messages are sent correctly.
2010-03-08 12:19:06 -08:00
Brion Vibber
a77efb2447 XMPP cleanup: fix outgoing XMPP when queuing is disabled; fix notice for first access to undefined member variable 2010-03-08 10:32:40 -08:00
Evan Prodromou
5f7aa6f2e3 make API realm configurable 2010-03-08 12:36:03 -05:00