Commit Graph

230 Commits

Author SHA1 Message Date
Diogo Peralta Cordeiro
c8cf8c3f13
[FILE][TemporaryFile] Fix various issues now that we also have Symfony's file abstractions 2021-09-14 13:13:03 +01:00
Hugo Sales
74f477489b
[TESTS] Raise test coverage for App\Controller\Network to 100% and fixup related code 2021-09-14 13:13:02 +01:00
Hugo Sales
d31c3b1784
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:13:01 +01:00
Hugo Sales
bd249b508b
[ENTITY] Add 'normalized_nickname' to GSActor, the result of Nickname::normalize, so we can make sure we don't have very similar nicknames duplicated 2021-09-14 13:12:59 +01:00
Hugo Sales
3fab198c04
[ENTITY] Add uniqueness constraint to Attachment::file_hash 2021-09-14 13:12:58 +01:00
Hugo Sales
2b83a4b627
[UTILS][TemporaryFile] Change way TemporaryFile takes arguments and it's internal implementation 2021-09-14 13:12:58 +01:00
Diogo Peralta Cordeiro
8f43c8b405
[AUTOGENERATED] Update auto generated code 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro
4fcccb1d1c
[CORE][ImageEncoder] Add width and height back in attachment entity and allow for differently sized thumbs
The strategy adopted involves predicting the thumb size as we did in v2 before having vips resize
2021-09-14 13:12:56 +01:00
Hugo Sales
38cf8f8efe
[ENTITY] Change foreign key definition to new format for cover and profile_color tables 2021-09-14 13:12:56 +01:00
Hugo Sales
7509913fcf
[ENTITY] Add field size to attachments, used for quota calculations 2021-09-14 13:12:54 +01:00
Hugo Sales
e9b2b18093
[Avatar] Implement avatar deletion 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro
88e5cec8fc
[ENTITY][GSActor] Fix getAvatarUrl method 2021-09-14 13:12:53 +01:00
Hugo Sales
30107de079
[Embed] Fix plugin. Only attempt to show an image, if we have one 2021-09-14 13:12:52 +01:00
Hugo Sales
a7ef2babe6
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:12:52 +01:00
Hugo Sales
9a7f1358c2
[ENTITY] Add utils to Attachment and AttachmentThumbnail to get the corresponding URL and html representation parameters 2021-09-14 13:12:51 +01:00
Hugo Sales
e6c6e7afd7
[AVATAR] Fix JS cropping script and save square image, in case other themes need it 2021-09-14 13:12:22 +01:00
Hugo Sales
d2bb5bba14
[ImageEncoder] Move DB::persist call to AttachmentThumbnail 2021-09-14 13:12:22 +01:00
Diogo Peralta Cordeiro
0eaccc32fe
[ATTACHMENTS] Further refactoring
Some key points:
- Components and Plugins shouldn't extend Module directly
- Avatars should be fetched via GSActor ID, not by nickname as that isn't unique
- Avatar now is a separate Component
- Common file utilities are now to be placed in Core\GSFile, this will
  handle storage and trigger validation
- Some bug fixes
2021-09-14 13:11:51 +01:00
Hugo Sales
cdef6858ce
[ENTITY] Cache AttachmentThumbnail query result 2021-09-14 13:11:51 +01:00
Hugo Sales
65999bd183
[Poll] Move tables from core to plugin 2021-09-14 13:11:51 +01:00
Hugo Sales
716ca063d5
[ImageThumbnail] Finish image thumbnailing functionality 2021-09-14 13:11:51 +01:00
Hugo Sales
4358656c55
[ImageThumbnail] Implement image resizing with Intervention/Image 2021-09-14 13:11:50 +01:00
Hugo Sales
5579f4fa5d
[MEDIA] Rename File to Attachment 2021-09-14 13:11:50 +01:00
Hugo Sales
c44443b52c
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:11:50 +01:00
Diogo Peralta Cordeiro
e7ed325ac6
[MEDIA] Refactor File as Attachment 2021-09-14 13:11:49 +01:00
Diogo Peralta Cordeiro
ccf3aa990a
[MODULES] Introduce the concept of abstract modules to V3
Introduce placeholder for abstract upload and thumb modules
Temporarily supress some bugs
2021-09-14 13:11:45 +01:00
Hugo Sales
ea802621aa
[ENTITY] Remove extraneous File_thumbnail.php file 2021-09-14 13:10:55 +01:00
Hugo Sales
faa362e2e2
[DB] Remove unique constraint from GSActor.nickname and fix register and related functionality 2021-09-14 13:10:23 +01:00
Hugo Sales
78548365da
[WEB] Fix translations and small inconsistency when opening on web 2021-09-14 13:10:23 +01:00
Hugo Sales
2174f288d1
[DB] Fix Doctrine errors due to lack of column uniqueness
So, Doctrine doesn't like that `GSActorTag.tag` is not unique, even
though composite key `[tagger, tag]` is. `tag` can't unique, but
doctrine doesn't understand this. This seems like a Doctrine bug that
should be investigated. For now we'll just not mark it as a foreign
key
2021-09-14 13:10:20 +01:00
Hugo Sales
c894a4faa4
[DB] Make Note.source reference NoteSource.code, the primary key 2021-09-14 13:10:20 +01:00
up201706832
f9443f1e87
[AUTH][REMEMBER-ME] Changed name of column in rememberme_token database table to fix bug 2021-09-14 13:10:19 +01:00
Daniel
afae038cff
[ProfileColor] Added Profile Color entity, color form and db store/load to color settings controler 2021-09-14 13:10:19 +01:00
João Brandão
5516a77b33
[UI][TIMELINES] Refactored query for public stream 2021-09-14 13:10:19 +01:00
Angelo D. Moura
0c5941f515
[Directory] Almost finishied creating the /actors stream - problems with the css files 2021-09-14 13:10:17 +01:00
Daniel
fdc2bc39d0
[Cover] Input restrictions, Code cleanup 2021-09-14 13:10:17 +01:00
Daniel
aeec9149fc
[Cover] Cover route, cover now renders 2021-09-14 13:10:16 +01:00
Daniel
1cfe64cc25
[Cover] Added Cover Entity, updated form handler
Basically the same as the avatar
2021-09-14 13:10:16 +01:00
Daniel
7a299162e1
[Poll] Polls now have an associated note, poll templates, start_show_styles event, started css 2021-09-14 13:10:13 +01:00
Daniel
50ec306243
[Poll] Added file headers 2021-09-14 13:10:12 +01:00
Daniel
ffb4b9df23
[Poll] Added modified param for Poll/Poll response, added PollTest 2021-09-14 13:10:12 +01:00
Daniel
f34fb9c7b9
[Poll] Added variable num of options
not sure if it is the right way to do it
2021-09-14 13:10:12 +01:00
Daniel
cdbf7da8be
[Poll] Added templates, response counting 2021-09-14 13:10:12 +01:00
Daniel
27a0c43f7b
[Poll] Store poll response to DB 2021-09-14 13:10:12 +01:00
Daniel
3725818e4f
[Poll] Added New Route, RespondPoll, Poll Response, PollResponseForm 2021-09-14 13:10:12 +01:00
Daniel
dbb55362c8
[Poll] Fixed ShowPoll route, moved Poll Entity, created NewPollForm
Entity was temporarily moved to src/Entity in order to load from DB, since it is yet no possible to do that from Plugin
2021-09-14 13:10:12 +01:00
Hugo Sales
279cfcd058
[PLUGIN][Favourite] Move favourite table definition to inside the plugin, as it is now supported 2021-09-14 13:06:57 +01:00
Hugo Sales
1d42c7a835
[DB][NoteLocation] Add missing multiplicity to column 2021-09-14 13:06:57 +01:00
Hugo Sales
4e4d4dfdc5
[DB] Fix typo in table definitions and fix name of GSActorCircle table 2021-09-14 13:06:57 +01:00
Hugo Sales
481027b09b
[AUTOGENERATED][DB][File][GroupJoinQueue] Update autogenerated code and add select fields as specified in the previous commit 2021-09-14 13:06:57 +01:00
Hugo Sales
1712782cc5
[DB] Change foreign key specification to new format 2021-09-14 13:06:57 +01:00
Hugo Sales
e2e53d9a2a
[AUTOGENERATED] Update auto generated code in entities 2021-09-14 13:06:56 +01:00
Hugo Sales
460712e15e
[GIT] Change my email to the new one in all files and bump copyright year 2021-09-14 13:06:56 +01:00
Hugo Sales
eefdf74658
Ensure group table name is quoted, as it's a reserved word in postgreSQL 2021-09-14 13:06:56 +01:00
Hugo Sales
e8feb2ae84
[DOCUMENTATION][REFACTOR] Add documentation to all flagged function and do some small cleanup 2021-09-14 13:06:55 +01:00
Hugo Sales
1949e0b987
[EVENT] Rename event names to camel case to make finding handlers easier 2021-09-14 13:06:55 +01:00
Hugo Sales
dd40255c4a
[CONFIG][DB] Remove config from the database, put it in yaml, so it can be baked into the container 2021-09-14 13:06:53 +01:00
Hugo Sales
a6c24393b5
[NOTE] Add isVisibleTo 2021-09-14 13:06:53 +01:00
Hugo Sales
0e332b718e
[SECURITY] Fix getRoles 2021-09-14 13:06:52 +01:00
Hugo Sales
420b4767b2
[UI][NOTE] Add reply to in UI 2021-09-14 13:06:51 +01:00
Hugo Sales
7af424b64a
[DB] Add rendered collumn to note table, so we can preserve microtags from other services 2021-09-14 13:06:50 +01:00
Hugo Sales
460cbbd4c9
[DB] Fix local_user table to use a numeric id, since the username is editable 2021-09-14 13:06:50 +01:00
Hugo Sales
3b86a46625
[DB] Rename notice to activity in notification table 2021-09-14 13:06:49 +01:00
Hugo Sales
51a398f27a
[UI] Subtract self follow from total user follows 2021-09-14 13:06:49 +01:00
Hugo Sales
6e11143b79
[DB][NOTE] Update scope 2021-09-14 13:06:49 +01:00
Hugo Sales
adc843c1d6
[DB] Add Activity table, to store all known activity 2021-09-14 13:06:48 +01:00
rainydaysavings
b6fb0255da
[DB] Temporarily add favourite entity in core, as plugins don't support them yet 2021-09-14 13:06:47 +01:00
Hugo Sales
0b50905ac8
[NOTE][UI] Add note replying and UI displaying 2021-09-14 13:06:45 +01:00
Hugo Sales
f2ab77c3a9
[DB][MEDIA] Small database structure changes 2021-09-14 13:05:58 +01:00
Hugo Sales
9649bec01e
[MEDIA][CACHE] Cache avatar queries and delete stale values; small refactoring 2021-09-14 13:05:57 +01:00
Hugo Sales
e3c5d7e5dc
[UI][MEDIA] Add actor avatar in feed timeline 2021-09-14 13:05:57 +01:00
Hugo Sales
de22f18abf
[SECURITY] Fix error in user registering where password wasn't hashed 2021-09-14 13:05:57 +01:00
Hugo Sales
be83d3532e
[DB][FOLLOW] Change Follow table 2021-09-14 13:05:56 +01:00
Hugo Sales
65a129aac6
[UI][CACHE][DB] Add follow counts to left panel, caching the results; change follow table 2021-09-14 13:05:56 +01:00
Hugo Sales
c8e8f1f057
[ENTITY] Add Entity base class to all entities 2021-09-14 13:05:56 +01:00
Hugo Sales
d548dc9284
[MODULE][Left][UI][TAGS] Add Left module which handles fetching tags and followers, fix self tags 2021-09-14 13:05:56 +01:00
Hugo Sales
31ccb2d07b
[DB][File] Remove timestamp, add actor_id 2021-09-14 13:05:55 +01:00
Hugo Sales
2e9c340684
[DB][AVATAR] Remove extraneous slash 2021-09-14 13:05:55 +01:00
Hugo Sales
eb138ebdae
[STREAM][NetworkPublic] Add skeleton of public timeline and posting 2021-09-14 13:05:54 +01:00
Hugo Sales
51a1a1180e
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:54 +01:00
Hugo Sales
1111ee95f1
[CORE] Data Representation and Modelling refactor 2021-09-14 13:05:53 +01:00
Hugo Sales
9781d43f08
[LocalUser] Fix missing extend 2021-09-14 13:05:52 +01:00
Alexei Sorokin
eb12ac5ef1
[DATABASE] Enable fulltext search by default
Also rename fulltext indices to more fitting names

Imported from v2/f84dbb369f01a1d4a9bc362d01cdd100cdc79313
2021-09-14 13:05:51 +01:00
Hugo Sales
4128a5403d
[MEDIA][EXCEPTIONS] Fix errors and deprecations 2021-09-14 13:05:51 +01:00
Hugo Sales
699f25a397
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:51 +01:00
Hugo Sales
bd8f4bd277
[AVATAR] Fixed avatar upload, added avatar inline download and updated template and base controller 2021-09-14 13:05:51 +01:00
Hugo Sales
4d99bfb9fd
[DB][FILE][AVATAR] Handle deleting files, change file and avatar tables 2021-09-14 13:05:50 +01:00
Hugo Sales
c7dbae8067
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:49 +01:00
Hugo Sales
fe3a3978af
[UI][CONTROLLER] Work on tabbed notification settings panel 2021-09-14 13:05:46 +01:00
Hugo Sales
71db1870db
[SECURITY] Ensure ARGON2 constants are defined, or throw exception 2021-09-14 13:05:46 +01:00
Hugo Sales
6fc120571d
[DATABASE] Remove DATABASE::flush from Profile::setSelfTags 2021-09-14 13:05:45 +01:00
Hugo Sales
59eba851f7
[DATABASE][TOOLS] Update local_user to return the proper PhoneNumber type 2021-09-14 13:05:45 +01:00
Hugo Sales
db32a5fcfc
[DATABASE][TOOLS] Update local_user, SchemaDefDriver and bin/generate_entity_fields to use the phone_number type (which maps to a varchar 35 and does validation) 2021-09-14 13:05:44 +01:00
Hugo Sales
207eeb39ca
[SELFTAGS] Add Profile::{set,get}SelfTags 2021-09-14 13:05:43 +01:00
Alexei Sorokin
66c38d777a
[SECURITY] Update way passwords are checked and update 2021-09-14 13:05:43 +01:00
Hugo Sales
91af1be470
[AUTOGENERATED] Update all entity fields 2021-09-14 13:05:42 +01:00
Hugo Sales
5b578b9519
[DATABASE] Fix typos in user_notification_prefs 2021-09-14 13:05:42 +01:00
Hugo Sales
6e6c7ede1e
[DATABASE] Fix typo in profile table and add a constructor 2021-09-14 13:05:41 +01:00
Hugo Sales
a85fc2d0bd
[DATABASE] Update LocalUser table to not have a numerical id, add is_email_verified and fix getProfile accordingly 2021-09-14 13:05:41 +01:00
Hugo Sales
2796ac5228
[NOTIFICATION][DATABASE] Update user notification prefs table, implementation of Notification and define a base class for notification transport 2021-09-14 13:05:40 +01:00
Hugo Sales
0eba267a73
[LOGIN] Implement password checking and related systems 2021-09-14 13:05:40 +01:00
Hugo Sales
5a74354703
[DATABASE] Add role collumn to profile table 2021-09-14 13:05:39 +01:00
Hugo Sales
3313897671
[UI][SESSION] Add login and logout pages 2021-09-14 13:05:39 +01:00
Hugo Sales
f246667fe5
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:38 +01:00
Hugo Sales
7c8ab40e3a
[DATABASE] Rename user table to local_user, since doctrine shits itself otherwise ._. 2021-09-14 13:05:38 +01:00
Hugo Sales
0ac1d563de
[DATABASE] Re-import the local_group table, as it'll be used as per the new group semantics 2021-09-14 13:05:37 +01:00
Hugo Sales
9c483e6e79
[DATABASE] Delete queue_item table, as queueing will be handled by messenger 2021-09-14 13:05:33 +01:00
Hugo Sales
97b583aee7
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:29 +01:00
Hugo Sales
5eae3dc351
[CORE][DATABASE] Replace zero dates with CURRENT_TIMESTAMP and add defaults to all 'created' or 'modified'
This commit is a port from v2's 9a515b9234 ([SCHEMA] Improve timestamp storage) to v3.

As explained by Alexei Sorokin:

Avoid the use of deprecated MariaDATABASE "zero dates" globally. If they're present
as attribute defaults somewhere, they will be replaced with NULL implicitly.
The existing "zero dates" in MariaDATABASE storage will be left intact and this
should not present any issues.

The "timestamp" type in table definitions now corresponds to DATETIME in
MariaDATABASE with "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", which
should be close enough to the original behaviour for compatibility purposes.
It is now the recommended type for "modified" attributes, because of the
update trigger on MariaDATABASE. But there is no such trigger implemented on
PostgreSQL as of this moment.
2021-09-14 13:05:29 +01:00
Hugo Sales
25aeac80a3
[CORE][DATABASE] Restructure the database 2021-09-14 13:05:29 +01:00
Hugo Sales
7c18f10bd2
[TOOLS] Fixed all licence blocks, to use the same, foldable, format 2021-09-14 13:05:26 +01:00
Hugo Sales
a794c28e75
[DATABASE] Change the way defaults are loaded, bulk insert, reload everything in debug mode, only on http requests (not command line) 2021-09-14 13:05:25 +01:00
Hugo Sales
f628665589
[FORMATTING] Cherry-pick of Diogo's 763ac735c0758624ebd5957993dc0676b865927a 2021-09-14 13:05:24 +01:00
Diogo Cordeiro
cb7518a750
[DOCUMENTATION][TOOL] Small bug fixes and docblock elaboration 2021-09-14 13:05:24 +01:00
Hugo Sales
fe73001c36
[DATABASE] Changed the type of the 'id' field of the ProfileList table from serial to int, as doctrine complains otherwise 2021-09-14 13:04:39 +01:00
Hugo Sales
1f35af7169
[DATABASE][AUTOCODE] Update autocode to use \DateTimeInterface instead of DateTime 2021-09-14 13:04:38 +01:00
Hugo Sales
eee803d2e9
[DATABASE] Add missing table names 2021-09-14 13:04:38 +01:00
Hugo Sales
6193062590
[DATABASE][AUTOCODE] Autogenerated fields, setters and getters for each entity 2021-09-14 13:04:38 +01:00
Hugo Sales
7e47846b80
[TOOLS] Change autocode tag to allow editor folding 2021-09-14 13:04:38 +01:00
Hugo Sales
f1e72255f1
[DATABASE] Removed calls to common_config 2021-09-14 13:04:37 +01:00
Hugo Sales
03a8c80c4f
[FORMATTING] Changed license block format to allow folding 2021-09-14 13:04:37 +01:00
Hugo Sales
8d41944f90
[DATABASE] Extracted schemaDef method from old files and refactored onto new files 2021-09-14 13:04:37 +01:00
Hugo Sales
24c8fefe58
[CORE][DATABASE] Import old classes folder into src/Entity 2021-09-14 13:04:37 +01:00
Hugo Sales
8fd54efe8d
[DATABASE] Remove testing entity 2021-09-14 13:04:37 +01:00
Hugo Sales
596009c924
[DOCUMENTATION] Document All The Things! 2021-09-14 13:04:33 +01:00
Hugo Sales
23b47b2aeb
[CS-FIXER] Updated cs-fixer rules and added a temporary exception to the src/Entity folder (awaiting pr merge) 2021-09-14 13:01:34 +01:00
Hugo Sales
e3c0669b37
[DOCTRINE][SCRIPT] Created a script to generate the class fields and accessors from the schema definition 2021-09-14 13:01:34 +01:00
Hugo Sales
2c9a732256
[CORE][DOCTRINE] Implement SchemaDefDriver, which transforms the old syntax from to doctrine's metadata 2021-09-14 13:01:34 +01:00
Hugo Sales
cc72373e3d
[DOCTRINE][SCHEMADEF] Create a new metadata driver to allow us to continue using static schemaDef functions
This has the benefit of requiring fewer code changes, as well as providing a better isolation
between GNU social and symfony, useful in case the framework needs to be changed
2021-09-14 13:01:34 +01:00
Hugo Sales
4b31c1f48f
[V3] Big Bang
Beginning anew, this time with a modern framework: symfony
2021-09-14 13:01:33 +01:00