Commit graph

136 commits

Author SHA1 Message Date
friendica
51848c6190 working through the xchan table to remove bitfields, mostly complete except for updating the updater 2015-01-20 19:33:19 -08:00
friendica
ee3eee425c that should take care of the bitfields in hubloc 2015-01-20 16:13:18 -08:00
Stefan Parviainen
93735df2c7 Allow tags in mail, many profile fields, and admin info 2015-01-13 17:54:40 +01:00
Christian Vogeley
f0c7612bcd Merge remote-tracking branch 'upstream/master'
Conflicts:
	doc/html/classRedmatrix_1_1Import_1_1Import-members.html
	doc/html/classRedmatrix_1_1Import_1_1Import.js
2015-01-11 16:22:59 +01:00
Christian Vogeley
43f143a211 Fix for issue #763 Error creating new channel within the limits of the
subscription plan
2015-01-11 16:12:36 +01:00
Stefan Parviainen
2444a3f9d9 Don't show links to edit alternate profiles if multi_profiles is disabled 2014-12-30 21:33:20 +01:00
Stefan Parviainen
62dabecf97 Show tags in other channels profile field to make it easier to navigate to the channels 2014-12-07 16:19:22 +01:00
Habeas Codice
e3b0b5ed52 implicit boolean, formatting 2014-11-20 04:55:01 -08: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
friendica
d432f4ccd5 issue #683 - don't linkify homepage field without validating 2014-11-10 19:20:23 -08:00
friendica
3b22e2f5f5 some minor cleanup of unreported (and as yet undiscovered) issues with permissions toggling. No smoking guns and no obvious issues discovered here. Repeated and tried to duplicate zottell's issue as described without seeing any obvious problems. 2014-11-05 16:21:03 -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
9cc76cb33d several unrelated things - auto_follow wasn't working for new accounts, error returned in private mention to a collection, and added auto-completion to photo tags; though it only matches people so the hover text is now wrong. Also made the photo edit form XHTML (XML) compliant. 2014-10-27 19:23:40 -07:00
friendica
ed7712cfbf private forum issues 2014-10-21 16:33:35 -07:00
friendica
2db7d88e28 this is the reason Diaspora forum tagging was broken 2014-10-14 18:02:34 -07:00
friendica
bca4d540e0 disable email notifications when bulk importing content. 2014-10-08 15:15:20 -07:00
Jeroen
ae9b0c0e1b Changed default avatars to PNG as agreed with Mike here: https://redmatrix.nl/channel/jeroenpraat/?f=&mid=83603d8f0876c040efafce87755fcd252dbe8da4a75d82fdb230519e3c8dcb72@redmatrix.nl. Added a few new. You can set it like this: util/config system default_profile_photo red_avatar 2014-10-05 18:32:28 +00:00
Thomas Willingham
557894bc01 That's a string, not an integer 2014-10-03 15:16:05 +01:00
Thomas Willingham
09e0b4e2a1 Set timezone when creating a channel. 2014-10-03 00:57:07 +01:00
friendica
16b94f1dc0 issues with diaspora comment signatures on relayed comments that are relayed through a redmatrix site (parent post is redmatrix) and involve a private post. 2014-10-02 02:43:07 -07:00
friendica
baa0b0f393 only auto-follow the site recommendations if creating the first channel for an account. 2014-10-01 15:40:19 -07:00
friendica
467c6c72f0 ability to pre-populate connections for new channels. e.g. "MySpace Tom" 2014-10-01 14:48:08 -07:00
habeascodice
73ebdff083 Merge remote branch 'upstream/master' 2014-09-28 19:31:19 -07:00
habeascodice
c0b59ae36a Typo in regex causes runtime error 2014-09-28 19:30:47 -07:00
friendica
fa019791fa some background work for import/export of things and liked things/profiles 2014-09-27 00:14:35 -07:00
friendica
d8c03526ed optionally include wall items (posts) in import/export 2014-09-25 20:21:23 -07:00
friendica
c6062d7872 usability tweaks 2014-09-17 21:52:30 -07:00
friendica
51d9f0d97a channel permission roles 2014-09-17 21:16:15 -07:00
friendica
4014093572 implement permission roles - the backend should be done except for maybe a couple of small tweaks. Now we just need to define the rest of the roles and create a chooser for them. Adam started on this some time back but I don't know where that has gone. 2014-09-17 17:59:46 -07:00
friendica
a1b66f56f0 use the more portable encoded_item format for exported items - but with added attributes so we can use it as a reasonably complete item backup. The encoded_item format gives us extended author and owner information in case we need to probe them to bring the entry back. It also contains taxonomy entries. Importing and/or recovering will best be accomplished in chunks. It could take some time and some memory to chew through this. 2014-09-16 03:33:48 -07:00
friendica
5f9c326ad7 channel export with items 2014-09-15 21:31:32 -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
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
e524835463 the rest of the diaspora local discovery stuff 2014-08-21 20:31:55 -07:00
friendica
1d6f494936 some work on extended profile fields 2014-08-13 22:22:52 -07:00
friendica
00fc23bf4e issue #551 provide import/export of profiles (if this feature is enabled) 2014-08-04 16:48:40 -07:00
friendica
44ee18b810 Let site admin choose what profile fields to support. 2014-08-02 23:28:51 -07:00
friendica
2721d58a1c correct the permissions on profile page 2014-07-17 22:07:23 -07:00
friendica
1accf82bd1 clean up more code duplication 2014-07-14 21:21:24 -07:00
friendica
06b7aea1a0 visage tracking opt-in/opt-out 2014-07-03 17:26:42 -07:00
friendica
0cfcb02311 ability to like things 2014-06-23 05:19:28 -07:00
friendica
c4c1c37bd3 profile likes 2014-06-22 22:16:26 -07:00
friendica
a39a1584bd allow birthdays with just a year (no month or day). 2014-05-01 18:40:00 -07:00
friendica
506ae56385 Better handling of restricted /channel and /profile permissions. We will show the name, profile photo and a 'connect' button if appropriate on these pages regardless of permissions. A blank page makes it difficult for folks to figure out how to connect and if it is their real life friend 'x' or not. It also matches our overall policy (adopted from Facebook's lessons learned) that the channel name and default profile photo are always visible and can't really be blocked without messing up the usability of the entire network. This also makes sure that a connect button can be found somewhere besides the directory - where the entry could be blocked; and avoid somebody having to figure out the webbie and find the link to "follow" (another related issue). 2014-04-14 16:45:16 -07:00
Thomas Willingham
163c83a9e5 Ooops, replaced too many 2014-04-12 00:11:43 +01:00
Thomas Willingham
a82b1fe590 Revert to prepare_text, use bbcode only for with 2014-04-12 00:08:50 +01:00
Thomas Willingham
4582b8dd64 Bring BBCode to profiles 2014-04-11 14:54:07 +01:00
friendica
4901ef8faf provide the ability for rpost to post as another of your channels. This does not yet work, so the functionality has not been enabled. 2014-04-05 02:32:07 -07:00
Thomas Willingham
f4dd8657cb Let admins set a default expire days value. 2014-04-01 19:36:56 +01:00