Hugo Sales
1be4b3d481
[EVENT][FilterNoteList] Use an in-out parameter, so multiple events can act on this
2021-12-09 21:39:00 +00:00
Eliseu Amaro
f547fd3bb9
[CONTROLLER][FeedController] Fix return value, from notes to notes_out
2021-12-09 19:06:18 +00:00
Hugo Sales
3b8a3e953d
[CONTROLLER][FeedController] Make post processing happen more automatically, reducing noise in individual controllers. Now it's enough to simply extends App\Core\Controller\FeedController, to implement a feed
2021-12-08 10:20:37 +00:00
Hugo Sales
4c0210fb00
[CORE][FeedController][CONTROLLER][Feeds] Refactor feed filtering into base class
2021-12-07 21:06:39 +00:00
Hugo Sales
9f445632b2
[PLUGIN][TagBasedFiltering] Expand to allow filtering by actor tags
2021-12-05 17:55:49 +00:00
Diogo Peralta Cordeiro
9512890264
[PLUGIN][ActivityPub] Implement Actor Update
...
Diverse minor bug fixes
2021-12-05 03:11:08 +00:00
Eliseu Amaro
4501b7e85e
[CONTROLLER][UserPanel] Re-organised all settings forms. Added email, password, language forms separated from account or personal account info
...
[CORE][Form] Better PHPDoc and used is_null() for checks
[ENTITY][LocalUser] Add setNicknameSanitisedAndCached
[UTIL][Exception] Better NicknameNotAllowedException default message
2021-12-03 03:32:43 +00:00
Diogo Peralta Cordeiro
b66873e289
[PLUGIN][StoreRemoteMedia] Do not save empty files
2021-12-03 01:16:57 +00:00
Diogo Peralta Cordeiro
eeaad19754
[Attachment] Move Controller and Entities to a Component
...
There's no problem in having the templates in the core
2021-12-02 15:14:07 +00:00
Diogo Peralta Cordeiro
d044039272
[FreeNetwork] Initial multi-protocol support
2021-12-02 14:23:21 +00:00
Hugo Sales
d4c77925d2
[CORE][DB][ENTITY][Actor] Make DB::dql return a chunked array if selecting multiple entities, remove partitioning from callsite
...
`DB::dql('select a, b, from a join b')` would previously return `[a,
b, a, b, ...]` (or even `[b, a, b, a, ...]`), and now will return
`[[a, a, ...], [b, b, ...]]`. The issue would be further compounded
when selecting even more entities, where the order would be
unpredictable
2021-12-01 19:47:42 +00:00
Hugo Sales
4f7e243bee
[CORE][DB] Don't do column renaming if a list of entities is specified
2021-12-01 19:47:41 +00:00
Diogo Peralta Cordeiro
424df54a1b
[ActivityPub] Add HTTP Signatures
2021-12-01 19:47:41 +00:00
Hugo Sales
3227018963
[CORE][DB] Allow specifying the entites to be retrieved, as when using renaming, tables in join would attempt to be selected
2021-11-29 22:42:50 +00:00
Hugo Sales
5c3d561a67
[COMPONENTS][Tag] Refactor Tag and add self tag stream
2021-11-29 22:42:50 +00:00
Hugo Sales
fc81f7301c
[CORE][DB][ENTITY][Actor] Add `DB::removeBy` and use it in `Actor->setSelfTags`
2021-11-29 22:42:50 +00:00
Hugo Sales
8f5b404941
[CACHE] Switch to 'empty' rather than 'is_null' is Cache::getHashMapKey, as it may return null or false
2021-11-29 22:42:49 +00:00
Eliseu Amaro
7145dba8af
[PLUGINS][Oomox] getEntity added.
...
[CORE][Cache] exists added.
2021-11-27 15:14:17 +00:00
Diogo Peralta Cordeiro
7b9d388a44
[NOTIFICATION] Implement Target Collector
2021-11-27 15:14:15 +00:00
Diogo Peralta Cordeiro
51994406da
[CORE][ENTITY] Properly port ProfileTag, ProfileTagSubscription and ProfileList as ActorTag, ActorTagSubscription and ActorCircle
2021-11-27 04:17:18 +00:00
Hugo Sales
cdc8886bb8
[CORE][DB] Rename parameters 'orderBy' to 'order_by'
2021-11-26 23:34:37 +00:00
Diogo Peralta Cordeiro
0ab8febab3
[CORE][DB] Document magic methods
2021-11-26 15:11:51 +00:00
Hugo Sales
edf1b30e89
[TOOLS][DOCS] Add missing doc blocks
2021-11-25 23:16:04 +00:00
Hugo Sales
b1262919da
[TOOLS] Fix (most) issues found by PHPStan
2021-11-25 23:08:30 +00:00
Hugo Sales
f837df5753
[CACHE] Add way of calculating hash map if key is not found
2021-11-25 20:37:53 +00:00
Eliseu Amaro
d8147cbd2d
[PLUGINS][AttachmentShowRelated] Fixed note template error. Fixed if statement.
...
[CORE][Controller] Commented CSP out.
2021-11-24 12:46:32 +00:00
Hugo Sales
3a5e52ee0d
[CORE][SECURITY] Move to the new authentication format, for Symfony 5.3
...
Keep using (deprecated) Guard
2021-11-24 12:46:26 +00:00
Hugo Sales
b4ce77320e
[TESTS] Fix remaining tests, back to 100% passed. Some minor semantic changes
2021-11-20 21:33:25 +00:00
Eliseu Amaro
8077bdb0b5
[CORE][Controller] CSP default-src changed to 'self' to allow internal redirects.
2021-11-17 01:29:36 +00:00
Eliseu Amaro
1d31bd651e
[CORE][Controller] Added Content-Security-Policy response header.
2021-11-17 00:49:23 +00:00
Hugo Sales
e6c0db9ee1
[CORE][Cache] Allow retrieving multiple keys from a hashmap
2021-11-15 19:25:52 +00:00
Hugo Sales
bf5ffe7d3d
[CACHE][TEST] Fix errors in cache implementation found by tests
2021-11-15 19:25:44 +00:00
Hugo Sales
dea9aa4dcf
[CORE][Router] Remove duplicate service for URL generation, as that is actually the same object
2021-11-11 12:38:09 +00:00
Hugo Sales
7d8819a3da
[DB][CONTROLLER][Network][ENTITY][Note] Fix Note::getAllNotes
2021-11-09 23:38:37 +00:00
Hugo Sales
1d84f1629e
[CORE][DB] Make DB::sql not error when selecting from tables with columns of the same name and remove the second enitites paramter, calculating it internally instead
2021-11-08 20:32:10 +00:00
Diogo Peralta Cordeiro
f98afd15ce
[ENTITY] Refactor Follow as Subscription
2021-11-08 16:14:23 +00:00
Hugo Sales
705bf815ab
[CACHE] Add partial implmentation for caching hashmaps (non-list arrays, i.e. array<string,string>). No non-redis-fallback yet
2021-11-08 16:08:03 +00:00
Hugo Sales
cd470cbf93
[CORE] Fix loading of settings from modules
2021-11-08 16:08:03 +00:00
Hugo Sales
1960f6944f
[CORE][DB] Fix error in regex that prevented selecting collumns that are named the same way a column is
2021-11-02 11:14:59 +00:00
Hugo Sales
e6c5312025
[CORE][GSFile] Add `check_is_supported_mimetype` option to `GSFile::storeFileAsAttachment`
2021-10-28 17:29:57 +01:00
Hugo Sales
c352e40518
[CORE][Controller] Allow plugins to override the Twig templates
2021-10-28 14:29:34 +01:00
Diogo Peralta Cordeiro
3cdaf6671a
[CORE][HTTPClient] Add some shortcut functions inspired by pre-v3
2021-10-27 04:22:18 +01:00
Diogo Peralta Cordeiro
3227e1f919
[CORE][Log] Document magic methods
2021-10-27 04:22:18 +01:00
Diogo Peralta Cordeiro
bccafd0d7b
[CORE][GSFile] Respect mimetype whitelist and extensions blacklist before saving files
2021-10-27 04:19:33 +01:00
Hugo Sales
299e893ca9
[TOOLS][PHPStan][DocCheck] Fix errors found by PHPStan and Doc Check
2021-10-27 04:19:31 +01:00
Hugo Sales
2694d83ae4
[TOOLS][CS-FIXER] Run new PHP CS Fixer config. Notably, adds strict_types
2021-10-27 04:19:30 +01:00
Diogo Peralta Cordeiro
028ea79fff
[CORE][Router] Properly act on Accept headers
2021-10-27 04:19:30 +01:00
Eliseu Amaro
99fd2f725b
[Core][Util] Hotfix: In App\Core\DB\DB persistWithSameId, casting the id to an int. In App\Util\HTML html, tag is now evaluated beforehand, making sure it's a string.
2021-10-27 04:19:30 +01:00
Diogo Peralta Cordeiro
8fdc52636f
[ActivityPub] Port RSA
2021-10-27 04:19:29 +01:00
Hugo Sales
9109c61af5
[TOOLS][CS-FIXER] Run new PHP CS Fixer config. Notably, adds strict_types
2021-10-27 04:19:28 +01:00
Diogo Peralta Cordeiro
99ab24ec23
[CORE][Controller] Allow routes without text/html response
...
Improve GET getters
2021-10-27 04:19:23 +01:00
Hugo Sales
2d8b220e92
[CORE][Controller] Make Controller abstract, `handle` an optional non static method and use `static::class` rather than `get_called_class`
2021-09-27 19:50:56 +01:00
Hugo Sales
af3531f1c7
[CORE][GSFile] Add type annotation to the `$encoders` used in attachment handling
2021-09-23 14:54:21 +01:00
Diogo Peralta Cordeiro
7beb5c2995
[GSFile] Fix sanitize configuration
2021-09-22 15:13:46 +01:00
Hugo Sales
879f54c772
[CACHE] Filter notes by scope in `pagedStream`
...
This currently does not return a fixed number of notes per page. Fixing this is left as an exercise to the reader
2021-09-21 16:37:51 +01:00
Hugo Sales
14c173df7a
[CACHE][COMPONENT][Tag] Add generic Cache::pagedStream and use it for the tag stream. Note that it doesn't respect scope yet
2021-09-21 15:35:07 +01:00
Hugo Sales
6715a036e9
[CACHE] Add way to fetch limit,offset values from a list
2021-09-21 11:04:26 +01:00
Hugo Sales
ce80065775
[DB] Add mechanism for specifying limit and offset in dql query
2021-09-21 11:04:26 +01:00
Hugo Sales
91fd7d1cfa
[CONFIG][CORE] Fix bug in overriding default config
2021-09-21 11:04:14 +01:00
Diogo Peralta Cordeiro
67d62cf37b
[TWIG] Remove kludge event TwigPopulateVars
2021-09-18 07:27:35 +01:00
Diogo Peralta Cordeiro
d6f31d102a
[CORE][ActivityStreamsTwo][ActivityPub] Set all routes
...
Allow global routes to act for every actor
Fix Favoured stream query
2021-09-18 05:12:15 +01:00
Hugo Sales
15a2a69274
[ROUTER] Add option `is_system_path`, to allow specifying that a route, such as `gsactor_view_nickname` should not be considered a system path, when checking for the collision of nicknames
2021-09-18 05:12:05 +01:00
Hugo Sales
e563c393f8
[ROUTER] Add mechanism for sorting the order in which core routes are loaded
2021-09-18 05:12:05 +01:00
Diogo Peralta Cordeiro
365edbaff0
[ActivityStreamsTwo] Initial Actor support
...
Various bug fixes
2021-09-15 10:26:53 +01:00
Hugo Sales
c69b28d894
[CORE] Fix `Undefined array key 0` in `DB::filterTableName`
2021-09-14 13:13:45 +01:00
Hugo Sales
b74d944ae3
[TOOLS][PHPStan] Raise PHPStan level to 3 and fix new errors
2021-09-14 13:13:45 +01:00
Hugo Sales
4e30e5aad9
[TOOLS] Fix all issues found by PHPStan level 2
2021-09-14 13:13:44 +01:00
Hugo Sales
add8f4a52f
[TOOLS] Fix all errors found by PHPStan level 1
2021-09-14 13:13:42 +01:00
Hugo Sales
eb833b62e2
[TOOLS] Fix all level 0 errors found by PHPStan and move constant definition to bootstrap file
2021-09-14 13:13:42 +01:00
Hugo Sales
f65e2b90f2
[CORE] Fix use of `Exception` class without import
2021-09-14 13:13:41 +01:00
Hugo Sales
e8ae0b74e0
[CORE][Controller] Switch order for content negotiation: allow events to take precedence. Bring back default JSON response
2021-09-14 13:13:41 +01:00
Hugo Sales
0a7fd9c460
[CORE][MODULES][NoteHandlerPlugin] Add missing import for `Event`
2021-09-14 13:13:40 +01:00
Hugo Sales
1d5fd1aefa
[CORE][Controller] Fix `Controller::__invoke` so it actually passes on the route parameters to the controller method. Add `Controller->string`, which gets a query parameter as a string value, or null if not set
2021-09-14 13:13:40 +01:00
Hugo Sales
330143e549
[ROUTER][DOCUMENTATION] Add `Router::isAbsolute`, add documentation to `Router::url` and `s/setRouter/serServices/
2021-09-14 13:13:39 +01:00
Hugo Sales
be27a10244
[EVENTS] Rename event `RouteInFormat` to `ControllerResponseInFormat`
2021-09-14 13:13:39 +01:00
Hugo Sales
983e0303a5
[ROUTER] Sort routes so that the one with a smaller list of Accept types matches first
...
This requires a copy, but gets cached, so it's the ideal place to do it.
Note that only routes that match the incoming Accept match anyway, so the order between those with different accept types is not relevant
2021-09-14 13:13:39 +01:00
Hugo Sales
45734d882c
[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:38 +01:00
Diogo Peralta Cordeiro
fd3b57dc24
[CORE][Controller] Make it possible for plugins to add different content-types to existing routes
2021-09-14 13:13:37 +01:00
Hugo Sales
626f50080b
[MODULES] Use snake_case for module config keys
2021-09-14 13:13:37 +01:00
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