Mikael Nordfeldth
5144c0cb78
Throw exception, don't return null in Conversation::create
2014-03-01 17:19:10 +01:00
Mikael Nordfeldth
5c505d8539
Conversation ID now gets set from initial notice.
...
This will work without much extra effort because there will always be
more notices (higher value) than conversations (so no collisions).
But please run upgrade.php to avoid having an autoincrement id on
conversation table.
Installations using code after 2014-03-01 will have identical
conversation IDs to the initial (conversation root) notice IDs. This
will not affect older installations, which will have very different
values.
2014-03-01 17:12:40 +01:00
Mikael Nordfeldth
fc047bd6e6
Minor code cleanup with group related actions (thanks brw12)
...
Originated from brw12 who noticed an incorrect variable name used in
an error message in actions/apigroupjoin.php:109
2014-03-01 12:01:17 +01:00
Mikael Nordfeldth
edee39790e
Use exceptions for Notice::getByUri
...
..jeez, a long time since I commited. Three in a row to get this right. Sorry :)
2014-01-12 22:46:50 +01:00
Mikael Nordfeldth
08dba7e21d
Notice::getByUri is of course static
2014-01-12 22:41:30 +01:00
Mikael Nordfeldth
15c95dc415
getByUri added to Notice for future use
2014-01-12 22:37:41 +01:00
Mikael Nordfeldth
73fe8a81b7
Slight cleanup in typing and syntax of File and File_* classes
2013-11-10 14:33:45 +01:00
Mikael Nordfeldth
729c6eef36
Inbox class a bit more consistent in argument order and type
2013-11-09 01:18:44 +01:00
Mikael Nordfeldth
3eac5e6026
Notice_inbox no longer used (and should've already been migrated for anyone using StatusNet 1.1.x)
2013-11-09 01:10:47 +01:00
Mikael Nordfeldth
1535ae5e3b
Call self:: instead of Memcached_DataObject
2013-11-04 17:38:40 +01:00
Mikael Nordfeldth
5e054bfdb3
Minor typing stuff and syntax fixes
2013-11-02 17:28:11 +01:00
Mikael Nordfeldth
a6f99e7296
Implement a User_group fetching function for Local_group
2013-11-02 17:27:50 +01:00
Mikael Nordfeldth
05b603b1da
Less raw SQL in User_group
2013-11-02 14:30:29 +01:00
Mikael Nordfeldth
d289ccb7f2
Minor PHP stylistic features and typing stuff
2013-11-02 13:05:08 +01:00
Mikael Nordfeldth
bd86519d50
Minor labeling things for StatusNet to GNU social migration
2013-11-01 14:04:40 +01:00
Mikael Nordfeldth
20bd0c1136
getStreamName will now return nick/fullname based on current user's preferred representation
2013-10-30 13:05:04 +01:00
Mikael Nordfeldth
09ef1fff69
NoticeListItem attentions showed double for User_group
...
...because they each have their own Profile now! Whiie!
2013-10-30 12:56:17 +01:00
Mikael Nordfeldth
71978a84fd
File oEmbed lookup failure is not as severe as LOG_ERR
2013-10-29 14:09:00 +01:00
Mikael Nordfeldth
9b6633698c
Group discovery from text functions polished
...
Also removed the entirely unused saveGroups function.
Now avoiding multiGet and using listFind in Profile->getGroups()
so we don't have to deal with ArrayWrapper.
2013-10-29 13:40:14 +01:00
Mikael Nordfeldth
2dfa0bfcee
function delete in dataobjects now don't break strict syntax
2013-10-29 10:20:57 +01:00
Mikael Nordfeldth
23a6b4595f
Reworked the ActivityContext->attention structure
...
Removing Evan's obscure attentionType solution and directly using the attention array
2013-10-28 22:21:14 +01:00
Mikael Nordfeldth
f99c4b7f07
More OOP-ish tests using instanceof
2013-10-28 22:18:00 +01:00
Mikael Nordfeldth
3ba6374b9d
Memcached_DataObject extensions got their update functions more consistent
2013-10-28 19:36:05 +01:00
Mikael Nordfeldth
9ea57e5cb2
getAcctUri function added with related exception
...
Used in ActivityObject for Atom Title generation.
New events:
* StartGetProfileAcctUri
* EndGetProfileAcctUri
2013-10-28 18:21:10 +01:00
Mikael Nordfeldth
a5d8707658
Use getParent instead of manual reply_to lookup
2013-10-28 17:28:10 +01:00
Mikael Nordfeldth
fcba540a14
Removed legacy OMB. Use OStatus for remote profiles.
2013-10-28 16:22:09 +01:00
Mikael Nordfeldth
340740266c
Notice class local cache fixes
2013-10-23 12:33:37 +02:00
Mikael Nordfeldth
a980f4ed33
Call memcache() as a static object (it's a static class)
2013-10-23 12:02:15 +02:00
Mikael Nordfeldth
f54584c126
Don't disconnect a DB_Error, instead log for better understanding.
2013-10-22 18:56:56 +02:00
Mikael Nordfeldth
e274f69634
Notice->getParent function fixes
...
NoResultException was the wrong choice in this case, because it was
not a DB_DataObject instance that performed the search, but a static
call to the Notice class.
2013-10-22 15:37:19 +02:00
Mikael Nordfeldth
355c37bc3f
Revert "Better ID for notice activity"
...
This reverts commit 8cc4660bd9
.
This seems like something Evan only did to make pump.io import notices easier,
or maybe he just wanted to get rid of the identi.ca URLs?
2013-10-21 23:25:35 +02:00
Mikael Nordfeldth
f4c0cff032
Only use ActivityVerb::SHARE (forwardId is deprecated)
...
StatusNet >= 1.0 support it.
2013-10-21 22:25:19 +02:00
Mikael Nordfeldth
3cab5b36c1
Replace common_good_random with common_random_hexstr
2013-10-21 13:20:30 +02:00
Mikael Nordfeldth
df5aa6f93a
Exception wasn't thrown. How does PHP handle daisychained calls, really?
2013-10-21 09:09:32 +02:00
Mikael Nordfeldth
9811783f19
Strict type check against false in User_group
2013-10-20 17:15:46 +02:00
Mikael Nordfeldth
e868ebfe77
WebFingerResource introduced, instead of strict Profile object
...
This is the beginning of getting notice URI info via WebFinger
*XrdActionLinks is renamed *WebFingerProfileLinks, check EVENTS.txt
in WebFinger plugin for new events.
2013-10-20 15:48:14 +02:00
Mikael Nordfeldth
2a5ba1f74b
Core and Default plugins separated, now loads on install
...
_flow_ reported on IRC that install.php had stopped working. This was
because default plugins had been put into two separate lists, and the
list with AuthCrypt was never loaded when performing an installation.
Core plugins cannot be disabled.
I also removed the Memcache autodetection thing since it should be
solved in a more elegant manner.
2013-10-19 14:38:15 +02:00
Mikael Nordfeldth
145fbf1130
Move nick updating of User entry to Profile->update()
...
Also, timezone and language in User table weren't indexes. So no need
to do them separately.
2013-10-17 16:38:42 +02:00
Mikael Nordfeldth
274b70784f
When updating a User_group nickname, correlate Local_group and Profile
...
...no need to make a separate call to Local_group's setNickname all the time,
or a bunch of redundant code for the Profile table.
Next up is User->update()...
2013-10-17 13:49:20 +02:00
Mikael Nordfeldth
6ed66d9c76
Local_group and User are now assumed to be in same namespace
2013-10-17 01:27:01 +02:00
Mikael Nordfeldth
38a69b5597
Better checks during User::register and improved Nickname checks
2013-10-16 14:58:06 +02:00
Mikael Nordfeldth
352bef2374
Add support (and upgrade path) for group profiles
2013-10-15 11:12:50 +02:00
Mikael Nordfeldth
202f6ad7a9
Removing legacy code and fixup_* for Status_network tags
2013-10-15 10:54:03 +02:00
Mikael Nordfeldth
8202e922aa
Do calls straight to the result of getProfile
2013-10-15 02:34:10 +02:00
Mikael Nordfeldth
4e8d7795d0
Moved favoriteNotices from User to Profile class
2013-10-15 02:15:58 +02:00
Mikael Nordfeldth
fdbb528e7a
getTaggedSub-stuff moved to Profile class
2013-10-15 02:00:27 +02:00
Mikael Nordfeldth
1dc051a9eb
We never accept a user without a Profile
2013-10-15 01:00:27 +02:00
Mikael Nordfeldth
f46d675a20
GNU social is with a minor s.
2013-10-15 00:20:36 +02:00
Mikael Nordfeldth
b903db059c
static:: call are less cluttery
2013-10-14 18:34:26 +02:00
Mikael Nordfeldth
a8bcdc905f
common_sql_now() is recommended before DB_DataObject_Cast::dateTime()
2013-10-14 13:42:27 +02:00
Mikael Nordfeldth
53face3340
MDB2 now works with UTF-8
2013-10-14 13:18:26 +02:00
Mikael Nordfeldth
390556d932
Remote Profile Action from ModPlus now more generic
2013-10-08 21:08:02 +02:00
Mikael Nordfeldth
fcf47f315b
Removed deprecated activity:subject
2013-10-08 15:06:19 +02:00
Mikael Nordfeldth
1d1951d4b0
common_sql_now() is recommended
2013-10-08 11:40:23 +02:00
Mikael Nordfeldth
9ddc40b6da
NoResultException returns the failed object
2013-10-08 00:21:24 +02:00
Mikael Nordfeldth
87370f0cb1
URL shortening can now be disabled for the 'maxurllength'
...
Also, URL shortening now consistently uses 'maxurllength'...
2013-10-06 22:35:49 +02:00
Mikael Nordfeldth
34a6624452
Qvitter API changes (thanks hannes2peer)
...
I implemented changes from quitter.se's new API that their front-end qvitter
uses, https://github.com/hannesmannerheim/qvitter/blob/master/api-changes-1.1.1/CHANGES
However I left out the URL shortening commens, since I believe whatever behaviour
they experienced that caused them to implement this was a bug (or many) and should
be fixed in their proper areas and that shortening should not be entirely left
out in API calls.
2013-10-06 21:51:50 +02:00
Mikael Nordfeldth
3000adb33d
pkeyGet unfortunately returns null (should throw NoResultException) on empty result
2013-10-06 20:04:09 +02:00
Mikael Nordfeldth
2770ef9718
listFind throws NoResultException on no results
2013-10-06 16:37:51 +02:00
Mikael Nordfeldth
fb94a16217
Moved Avatar retrieval into Avatar class
...
Backwards compatible functions are still in Profile class.
2013-10-06 15:55:06 +02:00
Mikael Nordfeldth
c3d46b81a8
Added Profile_prefs class for profile preferences
...
Profile_prefs aims to consolidate all the profile preferences into a
single table. Otherwise we end up with a bajillion *_prefs classes, like
User_urlshortener_prefs, or new fields in existing User/Profile classes,
like 'urlshorteningservice', 'homepage', 'phone_number', 'pet_name' etc.
Eventually we should migrate as many user-settable preferences as we can
into this system.
The data in Profile_prefs is organized by:
* profile_id Identify the current Profile.
* namespace Which plugin/section the preference is for.
* topic Preference name (like 'homepage')
* data Preference data (like 'https://gnu.org/ ')
The names 'topic' and 'data' are because 'key' and 'value' may be rather
ambigous when dealing with our DB_DataObject classes etc.
2013-10-06 14:07:00 +02:00
Mikael Nordfeldth
78f9629bf3
Moved shareLocation preference check to Profile class
2013-10-06 13:38:09 +02:00
Mikael Nordfeldth
64dbd93534
Some PHP strict warning fixes
2013-10-06 03:37:12 +02:00
Mikael Nordfeldth
ac819e5738
fillAvatars would avoid the *ProfileGetAvatar events
2013-10-06 03:01:43 +02:00
Mikael Nordfeldth
ba481d1e31
LOG_WARNING, not LOG_WARN
2013-10-06 01:33:10 +02:00
Mikael Nordfeldth
48da97f204
MediaFile code improvements, preparing to implement multi-attachments
...
Maybe in the future we can use this for anonymous file uploads too?
With some kind of anonymous/pseudonymous profile. That'd be neat.
2013-10-05 18:47:45 +02:00
Mikael Nordfeldth
e376905d93
Forgot to clean some debug logging
2013-10-05 14:33:02 +02:00
Mikael Nordfeldth
29de09a63d
getParent throws exception
...
Should we get another Exception for if there's no parent? I think so,
because it's not really the same context as 'no result'.
2013-10-05 12:30:14 +02:00
Mikael Nordfeldth
d1558a1d8b
Fix Avatar-unlink plus better logging in TwitterImport
2013-10-05 11:32:43 +02:00
Mikael Nordfeldth
597eb97bec
is_a() with 3 params only supported in 5.3.9 anyway
...
So I removed those safety-checks, because now we can assume it works.
2013-10-04 23:10:59 +02:00
Mikael Nordfeldth
fb4e9b234d
Twitter Import improvements. Still buggy?
...
Apparently mrvdb has problems with duplicate inserts and missing files when
unlinking. It could be due to coding, or it could be due to parallelizing.
2013-10-04 13:36:45 +02:00
Mikael Nordfeldth
cd6fa512ac
Twitter Import + avatar fixes (cleaning up + fixing)
...
...there was also a typo in OstatussubAction ($avatarUrl not defined)
2013-10-03 15:28:51 +02:00
Mikael Nordfeldth
39f43e415d
Do not name anything getOriginal (because DB_DataObject calls that)
...
Avatar->getOriginal has been renamed getUploaded
Notice->getOriginal has been renamed getParent
2013-10-02 15:01:11 +02:00
Mikael Nordfeldth
7979918ba9
Various minor Avatar fixes, but pretty necessary.
...
One typing thing. And a missed exception case.
Get src from displayUrl() instead of url for example.
2013-10-02 14:49:01 +02:00
Mikael Nordfeldth
b0dfc70a54
Properly unlink all old avatars when deleting/uploading a new
...
We're also now using $config['image']['jpegquality'] to determine the
quality setting for resized images.
To set Avatar max size, adjust $config['avatar']['maxsize']
The getAvatar call now throws exceptions too. Related changes applied.
Now let's move Profile->avatarUrl to the Avatar class!
2013-10-01 17:00:10 +02:00
Mikael Nordfeldth
cced063e47
Fixed regression in latest Avatar fixes
...
I thought typing would fix it, but there's a problem earlier in the
execution chain which will be fixed in the future.
2013-09-30 22:49:47 +02:00
Mikael Nordfeldth
24e0535001
Fix regression from WebFinger update for singleuser sites
2013-09-30 22:42:20 +02:00
Mikael Nordfeldth
a23c4aa236
Avatar resizing improvements and better code reuse
...
* getOriginal added to Avatar class
This is a static function that retrieves the original avatar in a leaner
way than Profile->getOriginalAvatar() did (see below).
This will throw an Exception if there was none to be found.
* getProfileAvatars added to Avatar class
This gets all Avatars from a profile and returns them in an array.
* newSize added to Avatar class
This will scale an original avatar or throw an Exception (originally from
Avatar::getOriginal) if one wasn't found.
* deleteFromProfile added to Avatar class
Deletes all avatars for a Profile. This makes the code much smarter when
removing all avatars from a user.
Previously only specific, hardcoded (through constants) sizes would be
deleted. If you ever changed lib/framework.php then many oddsized avatars
would remain with the old method.
* Migrated Profile class to new Avatar::getOriginal support
Profile class now uses Avatar::getOriginal through its own
$this->getOriginalAvatar and thus remains backwards compatible.
* Updating stock GNU Social to use Avatar::getOriginal
All places where core StatusNet code used the
$profile->getOriginalAvatar, it will now useAvatar::getOriginal with
proper error handling.
* Updated Profile class to use Avatar::newSize
When doing setOriginal, the scaling will be done with the new method
introduced in this merge.
This also edits the _fillAvatar function to avoid adding NULL values to
the array (which causes errors when attempting to access array entries as
objects). See issue #3478 at http://status.net/open-source/issues/3478
2013-09-30 22:23:03 +02:00
Mikael Nordfeldth
a0e107f17f
Implemented WebFinger and replaced our XRD with PEAR XML_XRD
...
New plugins:
* LRDD
LRDD implements client-side RFC6415 and RFC7033 resource descriptor
discovery procedures. I.e. LRDD, host-meta and WebFinger stuff.
OStatus and OpenID now depend on the LRDD plugin (XML_XRD).
* WebFinger
This plugin implements the server-side of RFC6415 and RFC7033. Note:
WebFinger technically doesn't handle XRD, but we serve both that and
JRD (JSON Resource Descriptor), depending on Accept header and one
ugly hack to check for old StatusNet installations.
WebFinger depends on LRDD.
We might make this even prettier by using Net_WebFinger, but it is not
currently RFC7033 compliant (no /.well-known/webfinger resource GETs).
Disabling the WebFinger plugin would effectively render your site non-
federated (which might be desired on a private site).
Disabling the LRDD plugin would make your site unable to do modern web
URI lookups (making life just a little bit harder).
2013-09-30 22:04:52 +02:00
Joshua Judson Rosen
8e53eb2b4c
Correct a logic-inverting typo in handling of replies to group-posts.
...
The typo causes a tautology, which makes replies to group-posts always (or almost-always) go to the group(s).
cf. http://status.net/open-source/issues/3638
2013-09-29 23:14:00 +02:00
Mikael Nordfeldth
80c6af0ffe
Uncaught exception when no subscribers/subscriptions in ProfileList
2013-09-26 00:47:56 +02:00
Mikael Nordfeldth
858d9cc3c4
maxNoticeLength test for url-shortening failed on maxContent==0
...
maxContent==0 implies that a notice text can be infinitely long, but
this value was directly transferred to maxNoticeLength, where 0 was
tested if it was longer than the notice length - which of course always
was false.
This commit fixes the problem for infinite length notices that always
got shortened.
2013-09-25 22:48:32 +02:00
Mikael Nordfeldth
9d3abc3600
$_PEAR now defined globally as new PEAR, so no static calls are made
2013-09-23 22:27:43 +02:00
Mikael Nordfeldth
50e611a1a9
Shouldn't define static classes as abstract.
...
New Exception class added (MethodNotImplementedException)
2013-09-21 18:53:18 +02:00
Mikael Nordfeldth
63306081bc
Subscription "get by" functions now don't use ArrayWrappers
...
They were getting in the way of some strict-typing stuff.
2013-09-21 18:38:14 +02:00
Mikael Nordfeldth
39f21d63af
New Managed_DataObject retrieval: listFind
...
This will return a proper DB_DataObject instance (as the desired class)
and not an array, or ArrayWrapper.
2013-09-21 18:18:03 +02:00
Mikael Nordfeldth
93e878d7ca
Make better use of Subscription class
...
removed lib/subs.php as it was essentially only a wrapper for Subscription
2013-09-19 17:29:05 +02:00
Mikael Nordfeldth
a35344eb00
instanceof instead of is_a is faster (thanks quix0r)
2013-09-19 16:40:16 +02:00
Mikael Nordfeldth
c906ab11b0
8 chars was too little, 32 should be enough.
2013-09-18 01:21:53 +02:00
Mikael Nordfeldth
8140c4ff90
Bad call to joinAdd in Profile.php
2013-09-16 22:36:44 +02:00
Mikael Nordfeldth
83b852312a
Events on user registrations now strictly typed
2013-09-14 18:37:05 +02:00
Mikael Nordfeldth
99312c8cc2
Declaring some more static functions properly
...
As a bonus I added type declaration on Profile_block::exists and
Subscription::exists respectively.
2013-09-09 23:28:20 +02:00
Mikael Nordfeldth
747fe9d59b
Tidying up getUser calls to profiles and some events
...
getUser calls are much more strict, and one place where this was found was
in the (un)subscribe start/end event handlers, which resulted in making the
Subscription class a bit stricter, regarding ::start and ::cancel at least.
Several minor fixes in many files were made due to this.
This does NOT touch the Foreign_link function, which should also have a more
strict getUser call. That is a future project.
2013-09-09 23:03:34 +02:00
Mikael Nordfeldth
e5e3aeb4e6
newmessage (and Message class) fixed for FormAction
...
Also added a needLogin function to the Action class, which will do
redirect to login page with proper returnto setting.
2013-09-02 11:05:30 +02:00
Mikael Nordfeldth
79e3acf0f0
Moved multiGet into Managed_DataObject
2013-08-29 10:38:11 +02:00
Mikael Nordfeldth
b3e61ce7d0
Stronger typing, require array where param array
2013-08-29 10:27:39 +02:00
Mikael Nordfeldth
fac7371179
pivotGet moved into Managed_DataObject
2013-08-29 10:13:07 +02:00
Mikael Nordfeldth
40fe10e002
Woops, forgot auto_increment (comes with 'serial')
...
There are still some classes not ported (like Yammer import)
2013-08-21 15:02:44 +02:00
Mikael Nordfeldth
3a7261f70a
IMPORTANT: Making prev. Memcached_DataObject working again with schemaDef
...
Lots of the Memcached_DataObject classes stopped working when upgraded to
Managed_DataObject because they lacked schemaDef().
I have _hopefully_ made it so that all the references to the table uses
each class' schemaDef, rather than the more manual ColumnDef stuff. Not
all plugins have been tested thoroughly yet.
NOTE: This is applied with getKV calls instead of staticGet, as it was
important for PHP Strict Standards compliance to avoid calling the non-
static functions statically. (unfortunately DB and DB_DataObject still do
this within themselves...)
2013-08-21 09:48:42 +02:00
Mikael Nordfeldth
b1465a7559
We can now do late static binding (PHP >= 5.3)
2013-08-20 09:43:51 +02:00
Mikael Nordfeldth
0785cc2469
Don't use DB_DataObject::factory (statically at least)
...
Not all instances of this has been fixed, but at least the ones
in the base class of Memcached_DataObject.
Avatar fix (in classes/Profile.php) requires a pkeyGet function
in the Avatar class (or as in this tree, the parent class of
Managed_DataObject)
2013-08-19 11:40:35 +02:00
Mikael Nordfeldth
97ce71e55d
Managed_DataObject now has listGet for all classes
2013-08-18 21:02:33 +02:00
Mikael Nordfeldth
3ce5631b3c
Memcached_DataObject::multicache is now properly defined static
2013-08-18 16:21:30 +02:00
Mikael Nordfeldth
861e838add
pkeyGet is now static and more similar to getKV
...
Memcached_DataObject now defines
* pkeyGetClass to avoid collision with Managed_DataObject pkeyGet
* getClassKV to avoid collision with Managed_DataObject getKV
2013-08-18 15:42:51 +02:00
Mikael Nordfeldth
2a4dc77a63
The overloaded DB_DataObject function staticGet is now called getKV
...
I used this hacky sed-command (run it from your GNU Social root, or change the first grep's path to where it actually lies) to do a rough fix on all ::staticGet calls and rename them to ::getKV
sed -i -s -e '/DataObject::staticGet/I!s/::staticGet/::getKV/Ig' $(grep -R ::staticGet `pwd`/* | grep -v -e '^extlib' | grep -v DataObject:: |grep -v "function staticGet"|cut -d: -f1 |sort |uniq)
If you're applying this, remember to change the Managed_DataObject and Memcached_DataObject function definitions of staticGet to getKV!
This might of course take some getting used to, or modification fo StatusNet plugins, but the result is that all the static calls (to staticGet) are now properly made without breaking PHP Strict Standards. Standards are there to be followed (and they caused some very bad confusion when used with get_called_class)
Reasonably any plugin or code that tests for the definition of 'GNUSOCIAL' or similar will take this change into consideration.
2013-08-18 13:13:56 +02:00
Mikael Nordfeldth
e95f77d34c
Updating all Memcached_DataObject extended classes to Managed_DataObject
...
In some brief tests, this causes no problems.
In this state however, you would need to modify DB_DataObject to have a static declaration of staticget (and probably pkeyGet). The next commit will change the staticGet overload to a unique function name (like getKV for getKeyValue), which means we can properly call the function by PHP Strict Standards.
2013-08-18 12:32:32 +02:00
Mikael Nordfeldth
1a9a8ea730
staticGet for sub-Managed_DataObject classes now calls parent
...
The parent class for our database objects, Managed_DataObject, has a
dynamically assigned class in staticGet which objects get put into,
leaving us with less code to do the same thing.
We will probably have to move away from the DB_DataObject 'staticGet'
call as it is nowadays deprecated.
2013-08-12 19:46:44 +02:00
Mikael Nordfeldth
d115cddfb7
Managed_DataObject gets dynamic class detection for staticGet
...
Compatibility: get_called_class is implemented in PHP >= 5.3.0
2013-08-12 19:12:13 +02:00
Mikael Nordfeldth
3394efca60
staticGet is a static function
...
We always call staticGet statically, so we define it statically. Next
step is to remove a bunch of definitions of 'staticGet' from classes
that can instead fall back to a parent class in Managed_DataObject.
The ampersand is removed as we're returning a class anyway, which does
not need a reference (and when we return false, it means nothing).
2013-08-12 19:08:11 +02:00
Mikael Nordfeldth
794163c31f
Default to NOT ask for current location for new users
...
It may be a bad experience for new users to immediately when trying
out the service be asked for their geographical position. Instead,
let them opt-in for this behaviour.
2013-08-12 14:40:55 +02:00
Mikael Nordfeldth
bd60ab2e05
fix typo on provider_url
2013-08-12 13:01:47 +02:00
Mikael Nordfeldth
56cfd2bf22
comparing a url scheme should be done case insensitively
2013-08-12 12:52:50 +02:00
Mikael Nordfeldth
f433f7ce77
if parameters are not 0, null then limit will be PROFILES_PER_PAGE
...
If you look at classes/User_group.php on line 412 in the current code, you can see that a call to $profile->getGroups() is made. This implies getGroups($offset=0, $limit=PROFILES_PER_PAGE) only giving a limited amount of groups.
This means only the first 20 groups in an ascending numerical order by locally stored User_group->id will be addressable with the bangtag syntax.
I solved this by making the getGroups() call to the same one made in Profile->isMember(), i.e. $profile->getGroups(0, null);
2013-08-12 12:50:23 +02:00
Evan Prodromou
3fc1d245a1
Merge 1.1.x into master
2013-07-16 10:57:06 -07:00
Joshua Wise
89ba820246
Escape argument to prevent SQL injection attack in
...
User::getTaggedSubscriptions()
This change escapes the $tag argument to prevent a SQL injection
attack in User::getTaggedSubscriptions(). The parameter was not
escaped higher up the stack, so this vulnerability could be exploited.
2013-07-16 10:47:29 -07:00
Joshua Wise
4a30da924a
Escape argument to User::getTaggedSubscribers() to preven SQL injection
...
This change escapes the argument to User::getTaggedSubscribers() to
prevent SQL injection attacks.
Both code paths up the stack fail to escape this parameter, so this is
a potential SQL injection attack.
2013-07-16 10:43:56 -07:00
Joshua Wise
e54cb6958a
Escape query parameters in Profile_tag::getTagged()
...
This patch escapes query parameters in Profile_tag::getTagged(). This
is an extra security step; since these parameters come out of the
database, it's unlikely that they would have dangerous data in them.
2013-07-16 10:35:44 -07:00
Joshua Wise
5b118b3781
Escape SQL parameter in Profile_tag::moveTag()
...
This change adds additional escapes for arguments to
Profile_tag::moveTag(). The arguments are canonicalized in the API and
Web UI paths higher up the stack, but this change makes sure that no
other paths can introduce SQL injection errors.
2013-07-16 10:27:30 -07:00
Joshua Wise
c5a710e081
Escape $tag passed to Profile::getTaggedSubscribers()
...
This patch escapes the $tag parameter in
Profile::getTaggedSubscribers(). The parameter is not escaped either
in actions/subscriptions.php or in actions/apiuserfollowers.php. So
there is a potential for SQL injection here.
2013-07-16 10:14:38 -07:00
Joshua Wise
3fb2c06cba
Potential SQL injection in Local_group::setNickname()
...
This change escapes a parameter in Local_group::setNickname(). Review
of the code paths that call this function sanitize the parameter
higher up the stack, but it's escaped here to prevent mistakes later.
Note that nickname parameters are normally alphanum strings, so
there's not much danger in double-escaping them.
2013-07-16 10:11:26 -07:00
Joshua Wise
783e400d94
Potential SQL injection in Local_group::setNickname()
...
This change escapes a parameter in Local_group::setNickname(). Review
of the code paths that call this function sanitize the parameter
higher up the stack, but it's escaped here to prevent mistakes later.
Note that nickname parameters are normally alphanum strings, so
there's not much danger in double-escaping them.
2013-07-16 10:09:16 -07:00
Evan Prodromou
e502bba259
Slightly more robust group-membership conversion
2013-06-30 12:07:55 -04:00
Evan Prodromou
8cc4660bd9
Better ID for notice activity
2013-06-15 12:07:52 -04:00
Evan Prodromou
7a5bd495c5
Better ID for notice activity
2013-06-15 12:07:34 -04:00
Evan Prodromou
bb0cf686df
Pass null to Profile::profileInfo()
2013-06-08 21:12:29 -04:00
Evan Prodromou
806f7d439a
Bad variable in Message::asActivity()
2013-06-08 21:07:51 -04:00
Evan Prodromou
f189d0b438
Bad variable in Message::asActivity()
2013-06-08 21:04:51 -04:00
Evan Prodromou
96d7b68c50
Store direct messages as an activity
2013-06-08 17:54:27 -04:00
Evan Prodromou
9fd2c3e1c9
Store direct messages as an activity
2013-06-08 17:45:49 -04:00
Evan Prodromou
14a111189d
Merge remote-tracking branch 'origin/master'
2013-06-08 14:57:20 -04:00
Evan Prodromou
2252a9ffaf
Throw exception if subscription is invalid
2013-06-08 14:56:57 -04:00
Evan Prodromou
08eca420ca
Add generator to JSON output
2013-06-07 11:35:06 -04:00
Evan Prodromou
fe2c0a9687
Add generator to JSON output
2013-06-07 11:34:54 -04:00
Evan Prodromou
25823f6e5b
Some better context for notices as arrays
2013-06-07 03:11:33 -04:00
Evan Prodromou
6164940e8c
Some better context for notices as arrays
2013-06-07 03:11:23 -04:00
Evan Prodromou
7229533b0f
Use real attachments for JSON output
2013-06-05 09:39:43 -04:00
Evan Prodromou
772383e84b
Use real attachments for JSON output
2013-06-05 09:39:13 -04:00
Evan Prodromou
15d466ebe6
Don't add content as title for notes
2013-06-04 19:53:07 -04:00
Evan Prodromou
736bc9cc96
Don't add content as title for notes
2013-06-04 19:52:38 -04:00
Evan Prodromou
b493f3839c
Use better type, title for service
2013-06-04 16:31:17 -04:00
Evan Prodromou
08c72a00e8
Use better type, title for service
2013-06-04 16:30:40 -04:00
Evan Prodromou
04f6e4ce7b
Better registrationActivity
2013-06-04 15:21:33 -04:00
Evan Prodromou
d81b257290
Better registrationActivity
2013-06-04 15:20:00 -04:00
Evan Prodromou
fa1a1851db
Add an ID to registered service
2013-06-03 09:11:29 -04:00
Evan Prodromou
9f94ed81ee
Add an ID to registered service
2013-06-03 08:55:00 -04:00
Evan Prodromou
7ad5ed1db9
Merge branch 'master' of gitorious.org:statusnet/mainline
2013-06-02 15:24:57 -04:00
Evan Prodromou
49d265faa0
Add a registration activity to the end of every backup
2013-06-02 14:41:41 -04:00
Evan Prodromou
cbb5586ab7
Add a registration activity to the end of every backup
2013-06-02 14:38:00 -04:00
Evan Prodromou
ea8151688e
Throw an exception converting fave to activity for non-existent notice or profile
2013-05-24 09:27:21 -04:00
Evan Prodromou
b359854150
Throw an exception converting fave to activity for non-existent notice or profile
2013-05-24 09:26:58 -04:00
Evan Prodromou
c5ef1e661e
By default Notice::asActivity has a null argument
2013-04-14 12:02:52 -04:00
Evan Prodromou
6f424eb80f
If there's an exception in notice distribution, continue
2012-11-25 10:39:49 -05:00
Evan Prodromou
1c3c269ab4
cache key for member_ids
2012-07-04 14:39:26 -04:00
Evan Prodromou
69fb79caae
Cache IDs rather than profile objects
2012-07-04 14:38:06 -04:00
Evan Prodromou
642b1044cc
Better user group member queries
2012-07-04 14:12:11 -04:00
Evan Prodromou
acf52a3041
Hide stuff if there's an exception getting the profile
2012-05-04 23:37:12 -04:00
Evan Prodromou
5f2b62927c
let author see own spam
2012-04-23 21:25:53 -04:00
Evan Prodromou
4746016dd5
Don't convert deleted notices into repeats in Notice::asActivity()
2012-04-23 19:15:12 -04:00
Evan Prodromou
04ad0838be
Add spam-training, spam-reviewing rights
...
Replaced the check for a moderator role in certain spam-training and
-reviewing points. Make sure modhelpers can check, too.
2012-03-25 13:18:16 -04:00
Evan Prodromou
3e46a9b164
Make blocks work for non-subscription deliveries
2012-03-23 12:55:51 -04:00
Evan Prodromou
3b09465fc4
flush anonymous scope when a profile is silenced
2012-03-22 11:37:59 -04:00
Evan Prodromou
d98a4be24e
Merge branch '1.0.x'
2012-03-21 16:40:51 -04:00
Evan Prodromou
1c625bd040
show correct conversation notice count
2012-03-21 16:40:42 -04:00
Evan Prodromou
8706d8d351
double-check profile
2012-03-21 13:05:15 -04:00
Evan Prodromou
ad1649e4ba
Pass profile down to spam-hiding function
2012-03-21 13:02:45 -04:00
Evan Prodromou
d942072a6c
Optionally hide spam from timelines
...
For sites with a lot of spam, this will hide that spam from timelines for everyone but moderators.
2012-03-21 10:26:00 -04:00
Evan Prodromou
d2d75823a4
Use this for scope check
2012-03-20 21:13:35 -04:00
Evan Prodromou
b65db93d29
New events for overriding scope checks
2012-03-20 16:39:43 -04:00
Evan Prodromou
b4da5f3785
Merge branch 'master' into 1.0.x
...
Conflicts:
plugins/Blacklist/BlacklistPlugin.php
2012-03-08 06:08:11 -06:00
Evan Prodromou
3117c38044
Revert "when silencing, blow scope for not-logged-in users"
...
This reverts commit 04f71a42d3
.
2011-12-31 09:35:22 -08:00
Evan Prodromou
70f9d41c4c
Revert "Hide posts by silenced users"
...
This reverts commit d22fc7423c
.
2011-12-31 09:34:42 -08:00
Evan Prodromou
04f71a42d3
when silencing, blow scope for not-logged-in users
2011-12-31 09:15:32 -08:00
Evan Prodromou
d22fc7423c
Hide posts by silenced users
2011-12-31 08:56:54 -08:00
Siebrand Mazeland
2624afbcd4
Crazy gettext way to support two plurals in one string.
2011-12-28 12:44:42 +01:00
Siebrand Mazeland
eb124c5a67
Add missing space between two sentences.
2011-12-28 12:35:03 +01:00
Michele macno Azzolari
ad2fd9abd4
Fix whitescreen on recoverpassword with unknown user
2011-12-02 15:48:29 -05:00
Evan Prodromou
499e7d7c41
Squashed commit of the following:
...
commit 74c5e4cce42ae601c07b447e100f097c15ebf9d2
Author: Evan Prodromou <evan@status.net>
Date: Thu Oct 20 12:48:52 2011 -0400
Add back in some optimization indices lost in schema conversion
commit ef5c2acfcd123b25910a1c8bb4ae01a3f9608e5e
Author: Evan Prodromou <evan@status.net>
Date: Thu Oct 20 12:29:57 2011 -0400
restore some of the lost optimized indices on notice table
2011-10-20 12:50:39 -04:00
Evan Prodromou
22fead1b46
Squashed commit of the following:
...
commit fb1dfa9e98ded23fb5bdebae6465424a8cb8acd6
Author: Evan Prodromou <evan@status.net>
Date: Thu Oct 20 10:40:07 2011 -0400
Use popular notice stream for favorited page
commit e1d409ff738e39061ad35589d546ce9bed456975
Author: Evan Prodromou <evan@status.net>
Date: Thu Oct 20 10:32:23 2011 -0400
Use a caching stream for popular notice section
Instead of a big cached query, we now use a caching notice stream for
the popular notice section. It uses a single-table query at the
bottom, then scopes the notices and filters for silenced users. This
should be much nicer to our database servers.
Also clears the popular cache when someone favors or disfavors
something. A nice optimization would be to save the last weights and
re-calculate them at invalidation time, adding the new notice (or not)
depending on its own score. That will have to wait for another day,
though.
commit e9b7ab4c26c95e755adaff53c3957dcfca31c16b
Author: Evan Prodromou <evan@status.net>
Date: Thu Oct 20 10:31:14 2011 -0400
Let CachingNoticeStream users skip the ';last' optimization
2011-10-20 10:40:39 -04:00
Brion Vibber
69e95bb9c8
Merge branch 'compound-keys-fix' into 1.0.x
2011-09-30 11:55:36 -07:00
Evan Prodromou
e3c010a870
try to check whether file exists over and over and over
2011-09-30 13:03:42 -04:00
Evan Prodromou
cd3bc8f4ef
correct groups from Profile::getGroups()
2011-09-30 11:38:06 -04:00
Zach Copley
ba4bda9beb
Fix display of group admin avatars
2011-09-30 00:57:54 +00:00
Brion Vibber
1d15037d6a
Further fixes to Managed_DataObject::_allCacheKeys(): now uses self::multicacheKey() to generate the (possibly compound) keys, which makes it match the order of the keys used when calling pkeyGet().
...
This should resolve the issues darkip was reporting with user_im_prefs entries returning null immediately after insertion (seen with memcached off, so it was happening even with the built-in in-process cache in the Cache base class).
What was happening was that the initial pkeyGet() would end up saving a negative cache entry under the form with the fields sorted in the key, as via multicacheKey():
'statusnet:blaguette:user_im_prefs:screenname,transport:brionv,sms' => 'N;'
then we'd do an insert() on the new entry, saving cache entries for the non-sorted key names returned by _allCacheKeys():
'statusnet:blaguette:user_im_prefs:transport,screenname:sms,brionv' => 'O...'
'statusnet:blaguette:user_im_prefs:user_id,transport:1234,sms' => 'O...'
but the next query via pkeyGet() still saw the negative lookup cache from before, and came back with null.
Now, _allCacheKeys() sorts the fields in the keys by using the same key-builder function, and queries pick up the same thing you just inserted. :)
2011-09-29 15:21:52 -07:00
Evan Prodromou
699a90f11c
Show Event attendees in mini-list
2011-09-29 15:12:30 -04:00
Brion Vibber
69765a0550
Fix for caching with compound keys: add Managed_DataObject::_allCacheKeys() to override the one in Memcached_DataObject.
...
Memcached_DataObject doesn't quite fully understand unique indexes, and can't properly build cache keys for compound unique or primary keys.
Managed_DataObject has more information in its schema data, so we can build a proper list.
2011-09-28 18:32:43 -07:00
Evan Prodromou
c70c7db1c5
Remove unique key on file_thumbnail.url
...
We're getting "DB error: already exists" on thumbnails coming from
embed.ly. We don't need this to be unique, so let's avoid that.
2011-09-28 15:48:20 -04:00
Evan Prodromou
9143d4f384
Merge branch '1.0.x' into testing
2011-09-27 11:33:13 -04:00
Evan Prodromou
5ccae1313c
Query errors in Profile_tag
2011-09-27 11:32:05 -04:00
Evan Prodromou
88c00facc8
fix getOtherTags() to not use joinAdd()
2011-09-27 10:51:02 -04:00
Evan Prodromou
707f90d012
missed an AND
2011-09-27 10:47:13 -04:00
Evan Prodromou
ce044c40fb
rewrite Profile_tag::getTagsArray() so it doesn't use joinAdd()
2011-09-27 09:42:34 -04:00
Zach Copley
ec53e68cf2
Merge branch 'testing' of gitorious.org:statusnet/mainline into testing
2011-09-27 04:33:00 +00:00
Zach Copley
3b28f226c7
Facebook bridge back in business with new JS-SDK and OAuth 2.0 flow.
...
Might be better to rewrite the login mechanism to use server side flow
now that Facebook provides it.
2011-09-27 04:09:47 +00:00
Evan Prodromou
8c710ad2c1
Merge commit 'refs/merge-requests/158' of git://gitorious.org/statusnet/mainline into merge-requests/158
...
Conflicts:
classes/Profile_list.php
lib/peopletagnoticestream.php
2011-09-26 17:11:49 -04:00
Evan Prodromou
ea1a11a087
site-wide option to enable old-school settings
2011-09-24 09:46:13 -04:00
Evan Prodromou
ddc121c085
New table for all old-school UI prefs
2011-09-24 07:12:34 -04:00
Evan Prodromou
02a30cf47c
start using stream mode prefs instead of separate parameter
2011-09-23 17:50:38 -04:00
Evan Prodromou
8fa816c324
don't use potentially bad Profile values
2011-09-22 16:29:31 -04:00
Evan Prodromou
a28a6d2f72
fixup bad class constant in Notice
2011-09-19 16:11:43 -04:00
Evan Prodromou
2c1911bfae
Short-circuit bugs by defining Profile::getProfile()
2011-09-18 19:29:23 -04:00
Evan Prodromou
48625da04b
Automatically add or drop fulltext indexes
2011-09-18 18:28:44 -04:00
Zach Copley
3bf3b6686c
Remove fulltext indexes from notice and profile tables. The default
...
for fulltext search is 'like' (MySQLLikeSearch) which doesn't require
them.
2011-09-18 14:17:41 -07:00
Evan Prodromou
8f78743198
correct the URI-generation for group memberships
2011-09-12 13:36:12 -04:00
Evan Prodromou
a740556e3f
is_int() -> \!is_null()
2011-09-08 13:05:17 -04:00
Evan Prodromou
5680eb74d0
default scope value is null, determined by site/private
2011-09-08 12:38:11 -04:00
Evan Prodromou
3056b109a2
Quietly skip trying to load config if there's an error in DB
2011-09-08 12:01:06 -04:00
Evan Prodromou
9948523c33
Merge branch 'master' into testing
2011-09-08 09:03:33 -04:00
Zach Copley
e59b30c14b
Fix E_NOTICE from attempt to access undefined array key
2011-09-07 21:45:49 -07:00
Siebrand Mazeland
23eb49a017
Update translator documentation and i18n.
2011-08-30 11:43:27 +02:00
Siebrand Mazeland
5a37d0bdc6
Add translator documentation.
2011-08-30 11:04:54 +02:00
Siebrand Mazeland
c4fd560b32
Fix i18n issues
...
Remove trailing whitespace and convert leading tabs to spaces
2011-08-30 11:03:26 +02:00
Evan Prodromou
a2ea31bc80
Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x
2011-08-27 18:22:03 -04:00
Evan Prodromou
51764be5a1
For fave count, don't use distinct
2011-08-27 18:21:44 -04:00
Zach Copley
e26d3b0ede
Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x
...
* '1.0.x' of gitorious.org:statusnet/mainline:
Issue #546 : enable case-insensitive searching in MySQL
remove more groupnav
remove group nav
shorter title for tag cloud section on groups
remove group nav
move pending queue to sidebar
Move group logo edit from object nav to block actions
Show blocked users from group in section
2011-08-27 14:27:15 -07:00
Dan Scott
db9ac1a531
Issue #546 : enable case-insensitive searching in MySQL
...
MySQL needs the collation utf8_general_ci to support case-insensitive
searching. lib/mysqlschema.php already supports a 'collate' attribute on
a per-column basis, so we just need to take advantage of that attribute
on the columns we want to search and Bob (and BOB, and bOB) is your
uncle.
Signed-off-by: Dan Scott <dan@coffeecode.net>
2011-08-27 16:36:58 -04:00
Evan Prodromou
804c343a9f
move pending queue to sidebar
2011-08-27 16:05:58 -04:00
Evan Prodromou
330af9991f
Show blocked users from group in section
2011-08-27 15:46:05 -04:00
Zach Copley
32fa6dd7a2
Fix logging level in log msg
2011-08-27 12:42:09 -07:00
Evan Prodromou
f81c1f7554
use an array of profiles rather than a looping cursor for profile lists
2011-08-27 12:53:15 -04:00
Evan Prodromou
4f86e05d03
wrap use of repeated element in existence check
2011-08-27 10:02:11 -04:00
Evan Prodromou
34a0525b67
Profile uses joinAdd() with explicit arguments
2011-08-26 11:48:40 -04:00
Evan Prodromou
a47c372ac4
explicit join for subscribers to a profile list
2011-08-26 11:39:06 -04:00
Evan Prodromou
b83af83b82
return links for foreign keys
2011-08-26 11:37:45 -04:00
Evan Prodromou
968cef0fc6
strtolower() the class name in cache keys for listGet()
2011-08-24 17:30:17 -04:00
Zach Copley
307a75e3a7
Fix deprecated call-time pass by references
2011-08-23 09:52:48 -07:00
Zach Copley
1507c32454
Fix warnings - function arguments should expect values instead of references
2011-08-23 09:49:32 -07:00
Evan Prodromou
b73eaa44de
emit fewer notices for group joins
2011-08-23 11:49:45 -04:00
Evan Prodromou
5c3bc19968
Re-add lost verb column for Notice
2011-08-23 11:42:18 -04:00
Evan Prodromou
be4d9082f9
Merge branch '1.0.x' into activity
2011-08-23 00:41:03 -04:00
Evan Prodromou
2ea17b0749
use references for Notice::_setFaves() and Notice::_setRepeats()
2011-08-23 00:40:54 -04:00
Evan Prodromou
c712eefe14
Merge branch '1.0.x' into activity
2011-08-23 00:17:39 -04:00
Evan Prodromou
ce5b44158e
Get primary key for default value in Memcached_DataObject::staticGet()
2011-08-23 00:14:20 -04:00
Evan Prodromou
01c2c31c1e
Merge branch '1.0.x' into activity
...
Conflicts:
db/core.php
2011-08-22 18:13:02 -04:00
Evan Prodromou
feb9030fb9
Remove sequenceKey() since we now use Managed_DataObject
2011-08-22 18:05:37 -04:00
Evan Prodromou
7c6399a51a
Remove now-unused statusnet.ini
2011-08-22 18:03:05 -04:00
Evan Prodromou
6ed88dee94
forgot Group_member::schemaDef()
2011-08-22 18:02:29 -04:00
Evan Prodromou
9ca3c3d1c3
move core schema to class files
2011-08-22 17:52:02 -04:00
Evan Prodromou
34d0e1088d
add URI members to social activity classes
2011-08-22 16:36:23 -04:00
Evan Prodromou
48bb784400
add a verb column to the notice table
2011-08-22 16:02:14 -04:00
Evan Prodromou
2f1751568a
pre-fill repeats of notices
2011-08-22 12:39:37 -04:00
Evan Prodromou
d3399e93e8
use listGet() for ConversationNoticeStream
2011-08-22 12:25:04 -04:00
Evan Prodromou
0a17e7cf9f
Merge remote-tracking branch 'gitorious/1.0.x' into 1.0.x
...
Conflicts:
classes/Memcached_DataObject.php
2011-08-22 11:25:13 -04:00
Siebrand Mazeland
73806460ce
Add translator documentation.
...
Fix incorrect i18n.
Whitespace updates.
2011-08-19 17:38:43 +02:00
Evan Prodromou
ac268773bf
Pass correct notice id to Memcached_DataObject::listGet() in getFaves()
2011-08-08 12:01:39 -04:00
Evan Prodromou
f405ffa507
Corrected pkeys for listGet()
2011-08-08 12:01:15 -04:00
Evan Prodromou
ed31052d26
Store pkeys in cache for listGet()
...
I was storing the full objects in the cache for the listGet()
function. I've changed it to store only pkeys, and use pivotGet() to
get all the corresponding values.
This also required changing pivotGet() so it can get objects with
multi-column pkeys, which complicated the whole thing quite a bit. But
it seems to work OK.
2011-08-08 10:22:20 -04:00
Evan Prodromou
16042387a0
pre-fill the addressees of notices in a list
2011-08-03 00:59:09 -04:00
Evan Prodromou
ba6235a446
Get faves in Notice and pre-fill
2011-08-03 00:04:18 -04:00
Evan Prodromou
dfbdd481fa
Pre-fill Notice attachments
2011-08-02 23:12:21 -04:00
Evan Prodromou
9a84907d17
Remove unused File::getAttachments()
2011-08-02 23:11:41 -04:00
Evan Prodromou
d918ee95f4
pre-fetch groups for notices
2011-08-02 18:13:56 -04:00
Evan Prodromou
447ae92eca
only do a db call if need to fetch some in listGet()
2011-08-02 18:12:46 -04:00
Evan Prodromou
435c08a753
add listGet() method
2011-08-02 17:20:51 -04:00
Evan Prodromou
5081c56ea4
remove some debugging stuff in Profile::fillAvatars()
2011-08-02 13:14:11 -04:00
Evan Prodromou
af49545e95
reduce the number of calls to get profile groups
2011-08-02 12:14:55 -04:00
Evan Prodromou
06e2422517
pre-fill avatars for Profiles in a notice list
2011-08-02 11:54:27 -04:00
Evan Prodromou
e05f423bea
properly cache nulls for pivotGet()
2011-08-02 11:54:10 -04:00
Evan Prodromou
14fe22e430
define Reply::pkeyGet()
2011-08-02 11:15:20 -04:00
Evan Prodromou
02880f5a8c
use pkeyGet() instead of getReplies() checking addressee scope
2011-08-02 11:09:30 -04:00
Evan Prodromou
9a78d70441
remove debugging statement in Memcached_DataObject::multiGet()
2011-08-02 10:58:25 -04:00
Evan Prodromou
72ed297214
New method Memcached_DataObject::pivotGet()
...
This method lets you get all the objects with a given variable key and
another set of "fixed" keys. A good example is getting all the avatars
for a notice list; the avatar size stays the same, but the IDs change.
Since it's very similar to multiGet(), I refactored that function to
use pivotGet().
And, yes, I realize these are kind of hard to follow.
2011-08-02 10:46:29 -04:00
Evan Prodromou
200e18cd71
reduce the number of queries required to get a notice's groups
2011-08-01 16:59:43 -04:00
Evan Prodromou
a3ef80941e
use multiGet() for a profile's groups
2011-08-01 15:18:29 -04:00
Evan Prodromou
874f1db389
Pre-fill profiles in notice streams
2011-08-01 14:51:59 -04:00
Evan Prodromou
d17a30ada4
reverse order of defaults and options in Notice::saveNew()
2011-07-20 11:53:47 -04:00
Evan Prodromou
e07620a0aa
change array add to array merge
2011-07-20 11:42:17 -04:00
Evan Prodromou
d277f343ca
Encode repeats as share activities
2011-07-18 17:06:03 -04:00
Evan Prodromou
98064e6336
Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x
2011-07-15 17:46:19 -04:00
Zach Copley
6f0bd73e6c
Squashed commit of the following:
...
Move OMB to a plugin
commit 75d21f00246bcc56d7f854936be1e28395e079a2
Merge: cea0199 d594d07
Author: Zach Copley <zach@status.net>
Date: Fri Jul 15 11:16:54 2011 -0700
Merge branch 'kill-omb2' of gitorious.org:~zcopley/statusnet/zcopleys-clone into kill-omb2
* 'kill-omb2' of gitorious.org:~zcopley/statusnet/zcopleys-clone:
Fix paths
Oops, I left out the ability to authorize a token in ApiStatusNetOAuthDataStore
Some odds and ends
Remove omb stuff from queuemanager defaults
Add check to make sure we're not untagging an OMB profile to OMB plugin
Move some more subscription stuff and peopletag checks to OMB plugin
Move some OMB-specific unsubscribe stuff to OMB plugin
Finish removing libomb from core extlibs
Fix more conflicts
Fix queuing/queuehandling
Move some stuff around; fix references
Fix conflicts
Move OMB-specific files to OMB plugin
Move some stuff around; fix references
Add OMB plugin README and rm references to OMB in mail StatusNet README
Update paths
Fix define
Basic plugin finished
Move OMB-specific files to OMB plugin
Remove OMB stuff from router
commit cea019967f343042ebaea14b7bbb0d54289bcc1a
Author: Zach Copley <zach@status.net>
Date: Wed Jul 13 14:38:40 2011 -0700
Fix paths
commit d412aa3c0ea0e21e65a72a16c7b9edd64ff373e1
Author: Zach Copley <zach@status.net>
Date: Tue Jul 12 18:17:06 2011 -0700
Oops, I left out the ability to authorize a token in ApiStatusNetOAuthDataStore
commit b459c9f10ac283d6e774ef13f3293fc8a6948143
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 19:02:08 2011 -0700
Some odds and ends
commit 895cfbfce58ffb3a05beebf48a90c549e00f1cce
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 19:01:23 2011 -0700
Remove omb stuff from queuemanager defaults
commit b41b9e994f291ff83afb2460d9b37aee8ec1ec2b
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 18:46:44 2011 -0700
Add check to make sure we're not untagging an OMB profile to OMB plugin
commit 94374d26ddd428dac8e4cd4541fd56db748c248b
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 18:34:20 2011 -0700
Move some more subscription stuff and peopletag checks to OMB plugin
commit b91043b7820d5cd8b0ba4e9ee2a9d03c99248f11
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 16:37:25 2011 -0700
Move some OMB-specific unsubscribe stuff to OMB plugin
commit d9430fe52975d9497b4a0d3d54da35b222e207ad
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 15:26:30 2011 -0700
Finish removing libomb from core extlibs
commit bb6257eb85cc7ba392e91468c01503f51faeb989
Author: Zach Copley <zach@status.net>
Date: Wed Jul 13 12:47:32 2011 -0700
Fix more conflicts
commit 3c760d0a4b4a083ae5fca2530d22aad5f4a9fdae
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:49:22 2011 -0700
Fix queuing/queuehandling
commit ed635fa0c20e150673709c04ecc7f285d12e0ce2
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:29:35 2011 -0700
Move some stuff around; fix references
commit cbc553a147941cad16e205a6b66ab4b32a5e3d3d
Author: Zach Copley <zach@status.net>
Date: Wed Jul 13 12:46:05 2011 -0700
Fix conflicts
commit 5d77c81f75b57f5d5357d6b46d503650a4b3225d
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 19:10:38 2011 -0700
Move OMB-specific files to OMB plugin
commit 2ed051dbce0ce9b44723b14922026849c39ed603
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:29:35 2011 -0700
Move some stuff around; fix references
commit 8809b5e35b1aacb67d70ae3e55a43003b6f591b7
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:28:59 2011 -0700
Add OMB plugin README and rm references to OMB in mail StatusNet README
commit 35ced4067c1915baca0b3e184f9533a91a951d2d
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 23:50:09 2011 -0700
Update paths
commit 0ee5bafbce95fc9b8db98c1e828d33d26d08bc73
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 23:38:03 2011 -0700
Fix define
commit e309dd22ffb9087d7fcf9180ede4f531dbd88c3c
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 23:30:43 2011 -0700
Basic plugin finished
commit 00f1e930f27e080b04d1e82952f7886c84e01d97
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 19:10:38 2011 -0700
Move OMB-specific files to OMB plugin
commit 39dcd031a79b49da0b4fe25f1594d2e406b5eb65
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 19:10:01 2011 -0700
Remove OMB stuff from router
commit d594d071be1ec42518dd5465db61e01e7e8ec036
Author: Zach Copley <zach@status.net>
Date: Wed Jul 13 14:38:40 2011 -0700
Fix paths
commit 48c1064b4b50e89cf51d2cab388f708f60601247
Author: Zach Copley <zach@status.net>
Date: Tue Jul 12 18:17:06 2011 -0700
Oops, I left out the ability to authorize a token in ApiStatusNetOAuthDataStore
commit 1e1168978f38c31dbf0206b3493b2b6dcbe61589
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 19:02:08 2011 -0700
Some odds and ends
commit ac43af2b497d8b9286c49a9469a1dff950e41650
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 19:01:23 2011 -0700
Remove omb stuff from queuemanager defaults
commit 2471af2f8800515a3db544b3a186a18f3e8a43af
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 18:46:44 2011 -0700
Add check to make sure we're not untagging an OMB profile to OMB plugin
commit df974646459ac6d5d97a40d008f1aab66f998226
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 18:34:20 2011 -0700
Move some more subscription stuff and peopletag checks to OMB plugin
commit 8a1427b759e791c14a7a7a22128ba05f0b4b6d12
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 16:37:25 2011 -0700
Move some OMB-specific unsubscribe stuff to OMB plugin
commit bd24220dbb5170af22ea0dea8a3062e6d1aeb6a2
Author: Zach Copley <zach@status.net>
Date: Wed Jul 6 15:26:30 2011 -0700
Finish removing libomb from core extlibs
commit 4c3c6f1fabb0f2c92635ccc5e8f38db2293f5456
Author: Zach Copley <zach@status.net>
Date: Wed Jul 13 12:47:32 2011 -0700
Fix more conflicts
commit db44deefd731a412685c5669c4c6fa69833de922
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:49:22 2011 -0700
Fix queuing/queuehandling
commit ea2d84d2f3d518950d3aa1956ddc8f3a25ca55f3
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:29:35 2011 -0700
Move some stuff around; fix references
commit 8ac3e010444b41bd9a78766f5e37e49dff023b45
Author: Zach Copley <zach@status.net>
Date: Wed Jul 13 12:46:05 2011 -0700
Fix conflicts
commit 0aad6e10e3637b3189a87b42c24c1d6de1b346bc
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 19:10:38 2011 -0700
Move OMB-specific files to OMB plugin
commit d982d7076c5cb28c7b8e4b1dde8d07d7e58e278f
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:29:35 2011 -0700
Move some stuff around; fix references
commit 4b9d39c93562ff4c45c37c940013e8b78197dec1
Author: Zach Copley <zach@status.net>
Date: Tue Jul 5 15:28:59 2011 -0700
Add OMB plugin README and rm references to OMB in mail StatusNet README
commit dab0fb6647a85e6835298496d7127a398b6b9293
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 23:50:09 2011 -0700
Update paths
commit 2cb73dac8ad971f1545dcf6ba57746c777e232ef
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 23:38:03 2011 -0700
Fix define
commit 6f226b18a059f175b1bdd3abcb8cb95eedc22ee7
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 23:30:43 2011 -0700
Basic plugin finished
commit 7be304beaa0f39755c3978e0b852fde768950da4
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 19:10:38 2011 -0700
Move OMB-specific files to OMB plugin
commit 5b30da01cfa2802d6e7a4a4a4f39b8043c54f472
Author: Zach Copley <zach@status.net>
Date: Thu Jun 30 19:10:01 2011 -0700
Remove OMB stuff from router
2011-07-15 12:13:57 -07:00
Evan Prodromou
ae340ec345
explicitly skip nulls in Memcached_DataObject::multiGet()
2011-07-14 14:41:30 -04:00
Evan Prodromou
e48ca92914
Don't get crud for Notice::repeatStream()
2011-07-14 12:53:18 -04:00
Evan Prodromou
42b11f862a
add Notice::multiGet() method
2011-07-14 12:02:58 -04:00
Evan Prodromou
75b280b4bb
add Memcached_DataObject::multiGet() method
2011-07-14 12:02:44 -04:00
Evan Prodromou
5c963cb3b7
Memcached_DataObject::pkeyGet() accepts null values
2011-07-11 12:40:28 -04:00
Shashi Gowda
efb7d28d83
Fix problems in joinAdd with xampp
...
Xampp ships with a different version of DB_DataObject PEAR package that
cannot do joins using objects correctly. This patch fixes the problem
2011-07-09 06:26:46 +05:30
Evan Prodromou
89816551e6
use memcached for Profile_list::staticGet()
2011-07-04 15:37:06 -04:00
Evan Prodromou
7e9c17bd15
make the default scope depend on site/private
2011-07-01 21:50:04 -04:00
Evan Prodromou
b6df936454
Better handling for combined memcache identifiers
2011-06-10 19:13:33 -04:00
Evan Prodromou
3dbfa97979
hide errors when deleting cached status_network_tag keys
2011-06-10 18:57:17 -04:00
Evan Prodromou
08cf6827a9
try to make it so Status_network_tag can go fingerpoken in Status_network's static vars
2011-06-10 18:12:51 -04:00
Evan Prodromou
c227045975
Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x
2011-06-10 16:50:33 -04:00
Evan Prodromou
331d8a99ba
Merge branch 'statusnetworkapi' into 1.0.x
2011-06-10 16:50:15 -04:00
Zach Copley
36d619480a
Rip out user, group and site design customization code
...
Squashed commit of the following:
commit 0bcfb6535115ec0a11669420f8689aeedc417bc8
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 15:51:47 2011 -0400
Remove design-related stuff from the API
commit 88da010256fbcaee1ff01d9507ea47d3225f2825
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 15:40:16 2011 -0400
Mop up misc design related code
commit 11958b064745b797b4c9f9f4b7e8f65e4c82ce83
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 15:21:00 2011 -0400
Remove Design DB_DataObject class and references to it in schema
commit f8540594728ce6ba4697eb21657ccb897a9fc127
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 13:15:54 2011 -0400
Remove design-related actions and widgets
commit ddf7b4d425b88b58956b8be06047d2a3e0560bd2
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 13:10:57 2011 -0400
Remove navigation / routing to design settings actions
commit e3f280f8780d99168edf37ef766956f281e9c5da
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 13:03:09 2011 -0400
CurrentUserDesignAction -> Action
commit 6780b1a07e1375a7fa0fd48c8bf3109d9a12e33e
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 12:54:22 2011 -0400
* GroupDesignAction -> GroupAction (new base class for group actions)
commit 2136377e895db274709a1d486f377f13946ccfd6
Author: Zach Copley <zach@status.net>
Date: Thu Jun 9 12:36:40 2011 -0400
OwnerDesignAction -> Action
2011-06-09 16:20:19 -04:00
Evan Prodromou
1b0bafc6cc
Move recoverpassword functionality to User
2011-06-07 11:22:19 -04:00
Zach Copley
8b9a5f550b
Update design settings CSS output
2011-06-06 13:18:56 -07:00
Zach Copley
606875f1c9
Change modified to use timestamp type instead of datetime
2011-06-02 11:20:08 -07:00
Evan Prodromou
9a11003c08
add oauth_token_association to core.php so it gets set up correctly
2011-06-02 10:04:00 -04:00
Evan Prodromou
c85eeb868e
note converted user id on registration
2011-05-23 17:25:00 -04:00
Evan Prodromou
b0b8d36439
registered_user_id can be null
2011-05-23 17:23:54 -04:00
Evan Prodromou
cb283be071
Add registered_user_id column to invitation
...
It's valuable for us to know which, if any, invitations have been converted.
2011-05-23 16:40:48 -04:00
Evan Prodromou
c97048d01b
merge 0.9.x into 1.0.x
2011-05-04 14:59:39 -07:00
Evan Prodromou
7ed3b9cf3f
Status_network::setupDB() sets up related tables too
2011-04-28 15:29:36 -07:00
Evan Prodromou
1b6ff2f22a
Class to store unavailable status network names
2011-04-28 15:29:13 -07:00
Evan Prodromou
79c01bec4e
lookup a statusnetwork by tag
2011-04-26 15:31:25 -04:00
Evan Prodromou
4fa7f147b0
Make tag-per-group optional, default false
2011-04-20 16:19:07 -04:00
Evan Prodromou
c39207b0f8
reply to notice marks the author of notice for reply
2011-04-20 12:05:24 -04:00
Evan Prodromou
73f4762a55
Don't serialize protected attrs
2011-04-18 18:23:06 -04:00
Evan Prodromou
21c16b2e92
don't show display URL if avatar filename is missing
2011-04-18 16:59:17 -04:00
Evan Prodromou
b9eee437dd
Merge branch '1.0.x' into emailregistration
2011-04-17 17:48:15 -04:00
Evan Prodromou
ceef84b6d1
utility functions for Confirm_address
2011-04-17 17:46:32 -04:00
Siebrand Mazeland
4ab995dd1e
Complete "people tag" to "list" in UI messages.
...
Update translator documentation accordingly.
Probably a few cases left where "tag[ged[" has to be replaced by "list[ed]".
2011-04-17 20:08:03 +02:00
Evan Prodromou
5135043b84
utility method to get reply profiles for a notice
2011-04-16 15:17:03 -04:00
Shashi Gowda
b78e5de474
Profile::getOwnedTags -> Profile::getLists, first argument is the current user, or the user accessing the lists.
2011-04-16 00:52:58 +05:30
Evan Prodromou
41dc9ca497
Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x
...
Conflicts:
classes/Profile.php
2011-04-14 18:28:03 -04:00
Zach Copley
70c8de4354
Remove bogus parameters from function declaration (was throwing a warning)
2011-04-14 15:07:54 -07:00
Evan Prodromou
9208c94b29
don't show private lists; correct link in header
2011-04-14 17:27:26 -04:00
Evan Prodromou
90e6eab68e
show user's lists in sidebar
2011-04-14 16:57:50 -04:00
Shashi Gowda
82f90ad756
Profile_list::blowNoticeStreamCache
2011-04-14 19:49:42 +00:00
Shashi Gowda
22f6151a10
Annihilate profile_tag_inbox.
2011-04-14 19:45:31 +00:00
Evan Prodromou
3550afb5f0
Cache rollup stuff in the cache, not in the DB
2011-04-14 14:01:10 -04:00
Evan Prodromou
a0b4282cbf
hook for getting profile avatars
2011-04-14 11:33:10 -04:00
Evan Prodromou
4331b8b4f1
make search results privacy-aware
2011-04-11 18:59:58 -04:00
Evan Prodromou
61f62241da
Get conversation root visible to this user in threadednoticelist
2011-04-11 11:19:11 -04:00
Evan Prodromou
f9a91a2809
Utility Profile::current() to get current user's profile
2011-04-11 11:16:30 -04:00
Evan Prodromou
7c62835900
cache the scope for null profile
2011-04-10 19:19:10 -04:00
Evan Prodromou
91e5a72609
remember to blow cache when creating a new group
2011-04-10 19:17:44 -04:00
Evan Prodromou
543567e6d5
Fix a null value in profile untag
2011-04-10 19:01:20 -04:00
Evan Prodromou
4742a2a87f
Fix clone of null value
2011-04-10 18:40:28 -04:00
Siebrand Mazeland
f0d762f196
Update/add translator documentation.
...
L10n/i18n updates.
Superfluous whitespace removed.
Add FIXME for a few i18n issues I couldn't solve this quickly.
Takes care of documentation for all core code added in merge of "people tags" feature (Commit:e75c9988ebe33822e493ac225859bc593ff9b855).
2011-04-10 19:59:55 +02:00
Shashi Gowda
fc21e5c76b
Fix type conversion warnings caused when calling getUser / getProfile for the second time
2011-04-09 22:16:52 +05:30
Shashi Gowda
f47027abbe
Merge remote-tracking branch 'mainline/1.0.x' into people_tags_rebase
...
Conflicts:
lib/profileblock.php
theme/default/css/display.css
2011-04-09 21:57:45 +05:30
Shashi Gowda
4d61760154
Merge remote-tracking branch 'mainline/1.0.x' into people_tags_rebase
2011-04-08 17:16:20 +05:30
Evan Prodromou
731bdab804
Use pkeyGet() instead of idStream() for fave caching
2011-04-07 16:57:16 -04:00
Evan Prodromou
adf4d96013
store oft-requested stuff in the data object
2011-04-07 16:55:32 -04:00
Evan Prodromou
3e4016b388
do a short-term cache of notice scope
2011-04-07 16:24:56 -04:00
Evan Prodromou
84d848f78c
correctly return values
2011-04-07 15:27:40 -04:00
Evan Prodromou
5dfb8e2bc4
Use InboxNoticeStream class for inbox
...
Move the code for inbox fetching to the InboxNoticeStream class.
2011-04-07 14:54:42 -04:00
Shashi Gowda
ad86eb78d3
Merge remote-tracking branch 'mainline/1.0.x' into people_tags_rebase
...
Conflicts:
js/util.min.js
lib/default.php
2011-04-07 23:13:45 +05:30
Evan Prodromou
5b9319d081
profiles were getting overwritten in Notice::asActivity()
2011-04-07 10:52:28 -04:00
Evan Prodromou
8a0f67b773
Uninitialized value for attachments
2011-04-07 10:25:53 -04:00
Evan Prodromou
f9dc2fc0ab
cache getReplies() values
2011-04-06 23:46:51 -04:00
Evan Prodromou
419ae3f18d
Cache results for attachments
2011-04-06 23:33:35 -04:00
Evan Prodromou
d3d0ec5ebe
cache tags per notice
2011-04-06 23:25:24 -04:00
Evan Prodromou
59d0e2f373
cache the notice count for threaded view
2011-04-06 23:17:17 -04:00
Evan Prodromou
fa8592f50b
Make Login_token use caching staticGet()
2011-04-06 22:51:46 -04:00
Evan Prodromou
b8fdf6636f
make Group_block use caching staticGet()
2011-04-06 22:49:09 -04:00
Evan Prodromou
2a124c1397
make User_group use caching staticGet()
2011-04-06 22:48:33 -04:00
Evan Prodromou
44c64816a5
cache groups per notice
2011-04-06 22:47:17 -04:00
Evan Prodromou
29243cd21a
make Profile::isMember() and Profile::isAdmin() use caching pkeyGet()
2011-04-06 18:12:25 -04:00
Evan Prodromou
b85c4923a2
Remove unused and non-standard USER_AGENT constant from File_redirection
2011-04-06 10:25:59 -04:00
Shashi Gowda
14aef781ad
Use the cool and new NoticeStream for people tag timeline
2011-04-06 11:25:50 +05:30
Evan Prodromou
b3e7dd70e2
don't put bogus groups into the groups array
2011-04-05 18:27:01 -04:00
Evan Prodromou
efd2c68de9
cache groups per user
2011-04-05 17:20:17 -04:00
Shashi Gowda
ced00cf0bd
Merge remote-tracking branch 'mainline/1.0.x' into people_tags_rebase
2011-04-05 10:28:05 +05:30
Evan Prodromou
797cd9ccd4
fix scope for replies to group-private notices
2011-04-04 22:34:47 -04:00
Evan Prodromou
eaa70d337d
force the reply to a notice to have the same scope
2011-04-04 18:13:28 -04:00
Evan Prodromou
660f1cd6b8
Force group scope on notices sent to a private-only group
...
For groups that require a private scope, we force every notice to be limited to group scope.
Changed the group-discovery code so we only get groups once -- regardless if they were provided or not.
2011-04-04 17:33:42 -04:00
Evan Prodromou
b41c62a27c
single flag for private groups
2011-04-04 16:58:52 -04:00
Evan Prodromou
82a357947d
add force_scope flag to User_group
2011-04-04 16:24:43 -04:00
Shashi Gowda
57198a7464
Merge remote-tracking branch 'mainline/1.0.x' into people_tags_rebase
...
Conflicts:
actions/tagother.php
lib/subscriberspeopleselftagcloudsection.php
lib/subscriptionspeopleselftagcloudsection.php
2011-04-04 13:26:27 +05:30