Commit graph

1467 commits

Author SHA1 Message Date
Thomas Willingham
d9ac9df172 Update dir fallbacks. 2014-11-25 01:31:33 +00:00
friendica
1c249a5b06 some poller optimisations and a fix for undefined (empty) dbtype which shows up as a mysql error that 'rand' isn't found. 2014-11-16 15:51:42 -08:00
RedMatrix
71237860c9 Merge pull request #691 from dawnbreak/master
Changed two strange looking places in boot.php.
2014-11-14 12:22:25 +11:00
Klaus Weidenbach
e8b77fbdff Fixed a variable conflict in mod/xchan.php.
A variable $rr inside the foreachs was used twice.
Add translation to mod/xchan.php.
2014-11-14 00:45:25 +01:00
Klaus Weidenbach
e4859d4bd7 Changed two strange looking places in boot.php.
There have been two places that looked wrong, but I don't know how I can test
them. So please review and test if I am not wrong.
2014-11-13 22:40:06 +01:00
Habeas Codice
ac27db22c1 Merge remote-tracking branch 'upstream/master'
Conflicts:
	boot.php
	include/dba/dba_driver.php
	include/diaspora.php
	include/follow.php
	include/session.php
	include/zot.php
	mod/photos.php
	mod/ping.php
2014-11-13 13:06:31 -08:00
Habeas Codice
1a5a5c7edb PostgreSQL support initial commit
There were 11 main types of changes:
- UPDATE's and DELETE's sometimes had LIMIT 1 at the end of them. This is not only non-compliant but
it would certainly not do what whoever wrote it thought it would. It is likely this mistake was just
copied from Friendica. All of these instances, the LIMIT 1 was simply removed.
- Bitwise operations (and even some non-zero int checks) erroneously rely on MySQL implicit
integer-boolean conversion in the WHERE clauses. This is non-compliant (and bad programming practice
to boot). Proper explicit boolean conversions were added. New queries should use proper conventions.
- MySQL has a different operator for bitwise XOR than postgres. Rather than add yet another dba_
func, I converted them to "& ~" ("AND NOT") when turning off, and "|" ("OR") when turning on. There
were no true toggles (XOR). New queries should refrain from using XOR when not necessary.
- There are several fields which the schema has marked as NOT NULL, but the inserts don't specify
them. The reason this works is because mysql totally ignores the constraint and adds an empty text
default automatically. Again, non-compliant, obviously. In these cases a default of empty text was
added.
- Several statements rely on a non-standard MySQL feature
(http://dev.mysql.com/doc/refman/5.5/en/group-by-handling.html). These queries can all be rewritten
to be standards compliant. Interestingly enough, the newly rewritten standards compliant queries run
a zillion times faster, even on MySQL.
- A couple of function/operator name translations were needed (RAND/RANDOM, GROUP_CONCAT/STRING_AGG,
UTC_NOW, REGEXP/~, ^/#) -- assist functions added in the dba_
- INTERVALs: postgres requires quotes around the value, mysql requires that there are not quotes
around the value -- assist functions added in the dba_
- NULL_DATE's -- Postgres does not allow the invalid date '0000-00-00 00:00:00' (there is no such
thing as year 0 or month 0 or day 0). We use '0001-01-01 00:00:00' for postgres. Conversions are
handled in Zot/item packets automagically by quoting all dates with dbescdate().
- char(##) specifications in the schema creates fields with blank spaces that aren't trimmed in the
code. MySQL apparently treats char(##) as varchar(##), again, non-compliant. Since postgres works
better with text fields anyway, this ball of bugs was simply side-stepped by using 'text' datatype
for all text fields in the postgres schema. varchar was used in a couple of places where it actually
seemed appropriate (size constraint), but without rigorously vetting that all of the PHP code
actually validates data, new bugs might come out from under the rug.
- postgres doesn't store nul bytes and a few other non-printables in text fields, even when quoted.
bytea fields were used when storing binary data (photo.data, attach.data). A new dbescbin() function
was added to handle this transparently.
- postgres does not support LIMIT #,# syntax. All databases support LIMIT # OFFSET # syntax.
Statements were updated to be standard.

These changes require corresponding changes in the coding standards. Please review those before
adding any code going forward.

Still on my TODO list:
- remove quotes from non-reserved identifiers and make reserved identifiers use dba func for quoting
- Rewrite search queries for better results (both MySQL and Postgres)
2014-11-13 12:21:58 -08:00
Klaus Weidenbach
fc2bf4c29b Some Doxygen documentation.
Add some more Doxygen formating for boot.php and dba_driver.php.
Cleaning a bit up, too.
2014-11-13 00:00:50 +01:00
friendica
b5af667985 slow progress on sys publishing, making sure all the data we need is in the places we need it but validate it anyway 2014-11-11 19:29:30 -08:00
friendica
6209465233 add public forum identification to libzot. No attempt is made to identify other types of forums or weird custom channel permissions. If the channel is auto-accept and taggable, it's a public forum. 2014-11-10 15:21:04 -08:00
friendica
f077badcb6 include self in load_contact_links so you don't get a connect menu entry for yourself 2014-11-06 23:50:54 -08:00
friendica
1fbd1a79c7 Provide a way to mark photos as adult and hide them from the default album view. Still need a button or setting to enable "unsafe viewing". This has no effect anywhere but in the album views. They can still be viewed by flipping through the individual photos with 'prev' and 'next'. We probably need a comprehensive strategy for how to deal with n-s-f-w photos in albums so consider this a band-aid which requires additional work and integration with other facilities which access these photos. It is entirely optional. 2014-11-06 17:27:28 -08:00
friendica
d5d6158973 ok heads up - potentially destabilising change. I've tried to sort out all the default connection permissions for those who don't have a predefined (or therefore have a "custom") permissions role. Unfortunately this includes most people that were using this software more than a month ago. The real changes are that the SELF address book entry no longer holds "auto-permissions" but instead holds your "default permissions" (if you have a pre-defined role, the defaults will be pulled from the role table).
The auto permissions have moved to a pconfig (uid.system.autoperms). A DB update will move these settings into their new homes.

What used to be the "Auto-permissions settings" page is now the "default permissions settings" page and a checkbox therein decides whether or not to apply the permissions automatically. A link to this page will only be shown when you have the "custom" role selected.

With luck nobody will notice anything wrong. But at least for the next few days, please review permissions that have been assigned to new connections (either automatically or manually) and make sure they make sense (e.g. they aren't "nothing"). You still need to take action when seeing a message "permissions have changed but not yet submitted" as we always let you review and perhaps adjust the settings _before_ a connection is established (unless you have autoperms turned on).
2014-11-04 17:11:02 -08:00
friendica
ba7f1bb8ee configurable visual alerts/notifications 2014-11-04 15:24:24 -08:00
Thomas Willingham
53292cfe86 Pixelbit restored. Going forwards, we probably want to add a check
that a directory is returning something in find_upstream_directory()
since this was spotted by a new install who thought *they* were
broken.
2014-11-02 19:51:22 +00:00
Thomas Willingham
c33efc2b00 Remove pixelbits from directory fallback - blocked public searches provide
no results.
2014-11-02 15:31:04 +00:00
friendica
cb15c73dae move all theme initialisation to one place - just after calling module_init. Revert if there are serious issues, but please note the issues in as much detail as possible so we can work through them. 2014-10-20 16:47:58 -07:00
friendica
7bbe700f3f mark signature forgeries 2014-10-16 16:19:19 -07:00
friendica
2db7d88e28 this is the reason Diaspora forum tagging was broken 2014-10-14 18:02:34 -07:00
friendica
f8468b4c3a allow custom role permissions and fix site timezone. 2014-09-29 23:36:41 -07:00
friendica
f203d2a3b0 diaspora private mail seems to work now - but there's an obfuscation leak via the conversation structure that needs to be dealt with. 2014-09-23 20:36:10 -07:00
Thomas Willingham
fc93ee89a9 If a short ping causes lots of issues, and anyone who has been here
a while tends to have a longer ping, we should probably have a longer
ping
2014-09-18 18:09:54 +01:00
friendica
6c0133be1f change platform name to redmatrix (lowercase, one word) for use in meta tags and stuff, move yet another oauth1 library to library instead of having it in plugins where we'll end up with a white screen if we re-use it in another plugin; which I plan to do. 2014-09-15 22:23:07 -07:00
friendica
ea8a01791e allow the site to designate an admin channel that's visible to the outside world (via siteinfo/json). Otherwise we'll use the default channel of any accounts that have the account admin role. 2014-09-14 22:43:56 -07:00
marijus
e8901b2ffe remove this hub from fallback servers 2014-09-13 19:45:26 +02:00
friendica
3a10956b20 correct item author for feeds with multiple or different authors 2014-09-11 17:27:49 -07:00
friendica
c6d07feff5 This is long overdue - use a symblic constant NULL_DATE instead of the easily mis-typed sequence '0000-00-00 00:00:00' 2014-09-08 20:35:15 -07:00
friendica
9d03f63511 set the default items-per-page for the entire app to 60 2014-09-07 20:05:38 -07:00
friendica
844087bc71 implement service class for feed polling frequenecy, fixed a service class bug, moved service class stuff from plugin to account.php where it belongs and load that by default instead of on demand 2014-09-03 19:07:14 -07:00
friendica
e8ef515b61 store diaspora meta info in the item table. It has to go there or it will kill us with complex joins. We can phase out the sign table once this all checks out. 2014-09-03 05:09:43 -07:00
friendica
2a37d99958 get out the sunnies 2014-08-31 22:15:00 -07:00
friendica
53b5cf7f50 Ability to close comments at a certain date/time - needed for loom.io emulation (and many other uses) 2014-08-28 16:56:13 -07:00
friendica
eb27bea794 mind numbing drudgery continued... 2014-08-27 19:15:34 -07:00
friendica
e179dca446 place to store multiple choice and select items for extensible profiles 2014-08-26 22:37:04 -07:00
friendica
8c6067b411 more hard work 2014-08-26 20:51:59 -07:00
friendica
9196c9eef0 We really can't do this without a hubloc. I was hoping we could, but notifier is setup to take hublocs, not xchans. 2014-08-22 21:37:08 -07:00
friendica
af45b34ee0 verified that chatroom expire is working, so doing away with the second function to do the same thing.
If you have a problem with chatroom expiration, check that it was created with cr_expire set to 120 (minutes). Chatrooms created during the first couple of days of the chat feature didn't have this. You can set the DB value manually.
2014-08-20 20:49:03 -07:00
friendica
4a76925787 some more work on realms 2014-08-17 19:06:56 -07:00
friendica
20bdcb037f provide backend storage and declaration of directory realm 2014-08-16 16:10:35 -07:00
marijus
bc85f7d6e3 provide an expert option to opt out from user zoom on mobile devices 2014-08-13 15:32:15 +02:00
friendica
7044975520 item table upgrade for storing post visibility 2014-08-06 17:00:25 -07:00
friendica
85032a1fa3 db tables for extensible profile fields 2014-08-02 14:56:17 -07:00
friendica
35ed18967a block channel removal for 48 hours after changing the account password, since the password is required to remove a channel. Somebody looking at an open session on somebody else's computer can simply change the password and then proceed to maliciously remove the channel. This change gives the owner 2 days to discover that something is wrong and recover his/her password and potentially save their channel from getting erased by the vandal. This is most likely to happen if a relationship has gone bad, or something incriminating was found in your private messages when you left your computer briefly unattended. 2014-07-29 20:13:01 -07:00
Paolo Tacconi
87f5544f1f Chatroom lines are deleted after MAX_CHATROOM_HOURS or the chat becomes slow to load 2014-07-29 09:06:04 +02:00
friendica
b19176169c provide a specific permission for liking profiles (reuse the obsolete bookmark permission), also remove the unused 'unconnected contacts' view for now. 2014-07-17 20:54:30 -07:00
friendica
3a31ddea2b provide os_mkdir to workaround permission issues with php mkdir 2014-07-16 01:07:00 -07:00
friendica
0435a08f3b fix rename_system_url() for the case of somebody who has no local xchan_url (was cloned from elsewhere and is not primary) 2014-07-15 17:11:43 -07:00
friendica
c74fd78993 move smarty compiled files to store/[data]/smarty3 - which puts all writeable areas of the server except the config file and logs under the "store" directory. We'll do logs at a future time. 2014-07-10 21:34:52 -07:00
friendica
fa706c8e86 finish implementing email verification. Currently it only applies if REGISTER_OPEN is in effect. 2014-07-09 21:10:56 -07:00
friendica
ee6fd1d6e5 minor optimisation 2014-07-01 21:24:43 -07:00