Commit Graph

379 Commits

Author SHA1 Message Date
Hugo Sales b7e4f79ccc
[CORE][Cache] Add Cache::incr which increments a value at , atomically, in the case of Redis 2022-01-04 18:58:32 +00:00
Hugo Sales a8a8cc4046
[COMPONENT][Posting] Plumb in reply_to and redirecto to GET from 2022-01-03 21:20:26 +00:00
Hugo Sales f5fc7b6cd1
[CORE][Controller] Add facility for either returning null or throwing, from Controller->{int,string,bool} 2022-01-03 18:02:33 +00:00
Hugo Sales 27276ba379
[CONFIG] Rename streams/notes_per_page to feeds/entries_per_page 2022-01-03 02:18:44 +00:00
Diogo Peralta Cordeiro 5fa8056899
[COMPONENT][Collection] Refactoring: Further work in abstracting collections 2022-01-03 02:18:43 +00:00
Eliseu Amaro 28424402ec
[CONTROLLER][CollectionController] Refactored methods names and form
titles
[PLUGINS][AttachmentCollections] Renamed respective Controller to
differentiate it between The Controller and itself, renamed templates
and removed unnecessary HTML from templates
2022-01-02 23:50:15 +00:00
Diogo Peralta Cordeiro f42e91d2bc
[CORE][Controller] Allow plugins to override redirect responses 2022-01-02 23:50:14 +00:00
Diogo Peralta Cordeiro 362fc6c7dd
[CORE][Controller] Set some safe default headers for every response 2022-01-02 23:50:14 +00:00
Diogo Peralta Cordeiro d27e8610d6
[CORE][DB] DB:removeBy Accept class name instead of table. 2022-01-02 23:50:14 +00:00
Hugo Sales acc84d757c
[CORE][Controller] Make Controller->{int,bool,string} functions return null if the GET parameter doesn't exist 2022-01-01 20:03:40 +00:00
Hugo Sales b7872ba4ee
[CORE][Controller][FeedController] Use controller instance for filtering, making FeedControler->postProcess function non-static 2021-12-31 21:03:17 +00:00
Hugo Sales 0ae24f6088
[CORE][Controller][FeedController] Use controller instance for filtering, making FeedControler->postProcess function non-static 2021-12-30 18:28:57 +00:00
Phablulo Joel 85e31c684d [MODULES][Collection] Fixing mistakes 2021-12-30 12:16:29 -03:00
Phablulo Joel d7f70d288d [MODULES][Collection] Abstracting Collections 2021-12-29 21:56:45 -03:00
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