Hugo Sales
033c4db914
[MODULES] Add function to defer module initialization and cleanup to plugin and component. Add example in Avatar component
...
Forward onInitializeModule to onInitializePlugin if the component is a plugin
2021-09-14 13:13:37 +01:00
Hugo Sales
bda839be7b
[MODULES] Add InitiializeModule and CleanupModule events, similar to v2
2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro
1ee8df1494
[DOCS][Developer] Elaborate on implementing and configuring a module
2021-09-14 13:13:37 +01:00
Hugo Sales
c71a4b06ef
[CONFIG] Make it possible to write module configuration in a config.{php,yml,yaml,xml} file and set each value as properties in the module object
2021-09-14 13:13:36 +01:00
Hugo Sales
3587b8dc1d
[CONFIG] Refactor configuration loading
2021-09-14 13:13:36 +01:00
Diogo Peralta Cordeiro
bc1fb007aa
[Core][GSFile] Improve the way EncoderPlugins participate in the file sanitization process
2021-09-14 13:13:34 +01:00
Hugo Sales
26bf78360b
[ROUTER][UTIL] Allow specifying the Accept format for a route
2021-09-14 13:13:34 +01:00
Hugo Sales
811caaadf9
[MODULES][PLUGINS] Move noteActionHandle utility to NoteHandlerPlugin which plugins which handle actions on notes should extend
2021-09-14 13:13:34 +01:00
Hugo Sales
6af1383e07
[UTIL][Form] Disallow using very generic form names, as they can collide with other forms in the same page
2021-09-14 13:13:33 +01:00
Hugo Sales
ebee70621b
[FORM] Fix bug where options were passed in the data parameter
2021-09-14 13:13:30 +01:00
Hugo Sales
2351e7c6d1
[CORE][GSFile] Use pathinfo rather than regular expressions and don't attempt to persist an already persisted entity
2021-09-14 13:13:28 +01:00
Hugo Sales
aef61e4c73
[TESTS] Add coverage ignore flags to trivial methods
2021-09-14 13:13:28 +01:00
Hugo Sales
fe86735b8b
[DB][DOCUMENTATION] Explain limit: 2 in findOneBy
2021-09-14 13:13:28 +01:00
Hugo Sales
c3db2f60d2
[UTIL][EXCEPTIONS] Introduce NotStoredLocallyException
2021-09-14 13:13:28 +01:00
Hugo Sales
6445a616a8
[ENTITY][Attachment] Raise mimetype max length to 64 characters and ensure we don't attempt to store more than that
2021-09-14 13:13:28 +01:00
Hugo Sales
74d1874991
[DOCUMENTATION][Entity] Improve documentation on Entity::getWithPK, explaining the ways it can be used
2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro
b4a03b814f
[CORE][GSFile] ensureFilenameWithProperExtension: extension isn't an I/O param
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro
968e3431e1
[Attachment] Sometimes we can't provide download of original file
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro
4cc4523632
[Posting] Re-add original file to attachment on upload, if it was previously removed
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro
508f1f8796
[MODULES] Add module configuration
2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro
de8a2f579c
[CORE][Event] Fix bug on handler Log
2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro
4ecdeac6a3
[CORE][Entity] Compare with object properties when creating/updating, instead of class
2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro
f5175cc59d
[ATTACHMENTS] Always store in the same location
2021-09-14 13:13:24 +01:00
Diogo Peralta Cordeiro
3f61537140
[ENTITY] Split Attachment in various new entities
...
Remove Attachment Scope
Fixed some minor bugs
Scope will be implemented later in v3. It doesn't make sense to have
the scope handling being per attachment. Different actors can post
the same attachment with different scopes. The attachment controller
will assume the highest level of scope applied to the attachment and
the rest will be handled at the note level.
Motivation:
* Remove title from attachment, as it's part of the relation between attachment and note.
* Remove actor from attachment, many actors may publish the same attachment.
* Remove is_local from attachment, as it's part of the relation between attachment and note.
* Remove remote_url from attachment, different urls can return the same attachment.
Addition:
* Attachment now has a lives attribute, it's a reference counter with a nicer name
* GSActorToAttachment
* GSActorToRemoteURL
* RemoteURL
* RemoteURLToNote
* RemoteURLToAttachment
* AttachmentToNote now has a title attribute
2021-09-14 13:13:24 +01:00
Hugo Sales
6728dd40b0
[ENTITY] Add JsonSerializable interface to Entity base class and implement it for the Note class
2021-09-14 13:13:24 +01:00
Hugo Sales
2851b899b8
[TESTS] Add test annotations to core classes
2021-09-14 13:13:23 +01:00
Hugo Sales
21a5bbe639
[CORE][Controller] Fix JSON response and add test annotations
2021-09-14 13:13:23 +01:00
Hugo Sales
38a331220f
[CORE][Log] Add Log::unexpected_exception utility which logs and throws a ServerException
2021-09-14 13:13:23 +01:00
Hugo Sales
085e880631
[CORE][Entity] Fix implementation of createOrUpdate so it doesn't throw NotFoundException if trying to create an object
...
This was previously done because we wanted to notify the callee that
and entity existed but not with the provided contents. With the change
of return value, with a bool $is_update, this is no longer a problem.
2021-09-14 13:13:22 +01:00
Eliseu Amaro
1647c5391f
[Favourite][TWIG][CSS] Favourite now works.
2021-09-14 13:13:22 +01:00
Diogo Peralta Cordeiro
fb6aa78ae8
[CORE][GSFile] Allow storing files under /file
2021-09-14 13:13:20 +01:00
Hugo Sales
2dd3511149
[CORE][DB] Specify desired case in array_change_case, for clarity
2021-09-14 13:13:19 +01:00
Hugo Sales
647e4c03b3
[CORE][GSFile] Ensure files are stored inside the configured storage folder, with a relative filename in the database
2021-09-14 13:13:19 +01:00
Hugo Sales
51f8f004b3
[CORE][CONTROLLER] Add TODO to Controller base class as to where our custom exception pages would be implemented
2021-09-14 13:13:18 +01:00
Hugo Sales
0b80727769
[CORE][ENTITY] Allow create'ing will null values
2021-09-14 13:13:18 +01:00
Hugo Sales
dc2b9f940e
[CORE][GSFile] Assert that the destination folder where to store the attachment is inside the INSTALLDIR and store the filepath in the database
2021-09-14 13:13:18 +01:00
Hugo Sales
88dd9e542f
[CORE][GSFile] Change actor_id paramenter of validateAndStoreFileAsAttachment to optional and reorder them and their usages
2021-09-14 13:13:17 +01:00
Hugo Sales
ccd5ebf8e4
[CORE] Add passowrd reset and forgot password functionality
2021-09-14 13:13:17 +01:00
Hugo Sales
769fff2448
[CORE][SECURITY][EMAIL] Move email confirmation functionality to it's own static wrapper, in preparation for adding password reset functionality
2021-09-14 13:13:17 +01:00
Hugo Sales
32ca61e214
[TESTS][Queue] Add @codeCoverageIgnore to select queueing functions
2021-09-14 13:13:16 +01:00
Hugo Sales
41e4e2de0e
[TESTS][Router] Add tests for Router and use named paramenters, as we can since PHP8
2021-09-14 13:13:16 +01:00
Hugo Sales
e6d20bd30d
[CORE][Controller][TESTS] Fix issue that arrises in tests where the Accept header is not specified
2021-09-14 13:13:16 +01:00
Hugo Sales
2f69579ddb
[TESTS][DOCUMENTATION][Module] Add documentation and exclude method from testing in Module base class
2021-09-14 13:13:15 +01:00
Hugo Sales
7a2574eafb
[CORE][TemporaryFile] Add option to specify attempts and better handle when reaching the attemp limit without being able to create a file
2021-09-14 13:13:15 +01:00
Hugo Sales
f5fb4ed3c3
[TESTS] Add tests for GSFile
2021-09-14 13:13:15 +01:00
Hugo Sales
af5526d720
[DB] Refactor findOneBy method
2021-09-14 13:13:15 +01:00
Hugo Sales
de5650e98e
[TESTS] Exclude class Security from testing, as it's a simple wrapper
2021-09-14 13:13:14 +01:00
Hugo Sales
d609dafdbc
[TESTS] Raise test coverage for ModuleManager to 100%
2021-09-14 13:13:14 +01:00
Hugo Sales
bd321f05a7
[TESTS] Exclude HTTPClient from testing, as it's a simple wrapper and we don't want to be performing HTTP requests in tests, for speed and reliability
2021-09-14 13:13:14 +01:00
Hugo Sales
2ee99e5176
[TESTS] Raise test coverage for Form to 100%
2021-09-14 13:13:14 +01:00