Commit Graph

365 Commits

Author SHA1 Message Date
Hugo Sales 76440961ca
[CORE][DB] Add option to findOneBy to return null rather than throw 2021-12-27 20:37:16 +00:00
Hugo Sales b84315c95b
[TOOLS] Fix errors reported by PHPStan at level 4 2021-12-27 17:35:33 +00:00
Diogo Peralta Cordeiro c4dacd7626
[COMPONENT][Attachment] Vinculate note information with attachment controllers
Various minor bug fixes
2021-12-27 04:56:00 +00:00
Diogo Peralta Cordeiro a1d9909379
[CORE][VisibilityScope] Use enum type instead of Bitmap 2021-12-26 19:16:56 +00:00
Hugo Sales ec28f23025
[TOOLS] Run CS-fixer on all files 2021-12-26 19:16:15 +00:00
Diogo Peralta Cordeiro 5e42723624
[ENTITY][Note] Include reply_to's targets in child's 2021-12-26 19:16:14 +00:00
Diogo Peralta Cordeiro 3e13765f62
[CORE][SCOPE] Implement basic visibility in feeds 2021-12-26 16:48:34 +00:00
Hugo Sales 1e6bc5b6ab
[CORE][Form] Fix Form::handle and report back any errors 2021-12-24 02:46:42 +00:00
Diogo Peralta Cordeiro 7d8cce3b27
[COMPONENT][Feed] Correct queries and introduce new feeds
Refactor feeds and search to use a common query builder
2021-12-24 00:44:39 +00:00
Phablulo Joel d04b68a3ce
[PLUGIN][MediaFeed] Add Media plugin which filters a feed by notes containing media 2021-12-22 11:13:06 +00:00
Phablulo Joel dd5d46c556 [CORE] Add option to filter notes even when there's no actor 2021-12-21 14:33:19 -03:00
Diogo Peralta Cordeiro 8b5286c383
[COMPONENT][Notification] Do not re-render content just to grab attentions
Other minor improvements and bug fixes
2021-12-21 16:05:24 +00:00
Hugo Sales 027adc97b2
[CONTROLLER][ActorController] Make ActorController extend the FeedController, so notes get filtered 2021-12-21 12:45:15 +00:00
Hugo Sales 7f65b23074
[DB] Allow mentioning 'note' in a DQL query (in quotes), in order to be able to search in the activity table (previously would be replaced by the class name) 2021-12-21 12:44:34 +00:00
Hugo Sales d6d5926b6e
[TOOLS][DOC] Add missing documentation, as flagged by doc-check 2021-12-21 12:24:23 +00:00
Hugo Sales da8c41e094
[TOOLS] Fix errors found by PHPStan 2021-12-21 12:17:51 +00:00
Hugo Sales 87aa9360a3
[CORE][ActorController] Refactor actor related controllers (Actor, Subscribers, Subscriptions) to remove duplicated code 2021-12-21 12:10:08 +00:00
Eliseu Amaro 622057ba0d
[CONTROLLER][Feeds] Added should_format field on returned array
FeedController will only handle FormatNoteList if the should_format field is true.

This change was made to make the replies route feed possible, this route is added by the Conversation component. Since a reply isn't a conversation root, if the FeedController handled the FormatNoteList event, this feed wouldn't have any notes to display.
2021-12-20 15:39:23 +00:00
Diogo Peralta Cordeiro 23f94ac961
[CORE][Controller] Define html format as default 2021-12-20 13:32:49 +00:00
Hugo Sales a81ac673ac
[CORE][ENTITY] Rename 'Entity::getWithPK' to 'Entity::getByPK' 2021-12-19 19:04:01 +00:00
Hugo Sales 5dca5568b7
[CORE][Cache] Fix wrong return type in Cache::delete 2021-12-16 11:01:23 +00:00
Hugo Sales 24291a268a
[CORE][Cache][DOCS] Add documentation to complex private function 'Cache::redisMaybeRecompute' 2021-12-16 10:47:01 +00:00
Hugo Sales 6d8679d86b
[CORE] Fix resetting the config to the default values 2021-12-13 15:49:52 +00:00
Hugo Sales 3ba7e1804b
[CORE][Cache] Add fast path for redis cache interactions 2021-12-13 15:49:52 +00:00
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