Hugo Sales
dd33720957
[TWIG] Add 'dd' and 'die' functions to twig
2021-12-10 12:06:47 +00:00
Hugo Sales
33fba0d970
[COMPONENT][Language][ENTITY][ActorLanguage] Refactor cache keys in ActorLanguage. Add ActorLangauge::getActorRelatedLanguagesIds and use it in note filtering in the Language component
2021-12-10 10:19:23 +00:00
Diogo Peralta Cordeiro
60d31e097e
[COMPONENT][Notification] Support empty array of targets
2021-12-10 04:05:34 +00:00
Diogo Peralta Cordeiro
b89f57ce93
[ENTITY][Note] Language can be null
2021-12-10 04:05:34 +00:00
Diogo Peralta Cordeiro
dcc37b055d
[COMPONENT][Link] Remove relation to note when note is removed
...
Moved entity NoteToLink to the component
2021-12-10 04:04:56 +00:00
Diogo Peralta Cordeiro
5f167517ad
[ENTITY][Note] Add deleter
2021-12-10 02:46:25 +00:00
Hugo Sales
b1585f0ef2
[ENTITY][Actor][ActorTag] Ensure only one copy of each tag is inserted
2021-12-09 22:23:17 +00:00
Hugo Sales
ab9dd1db77
[CACHE][ENTITY][Actor] Refactor Actor so that all cache keys are kept in one cacheKeys function, so that we can more easily be certain there are no mismatches in cache keys between gets and deletes
2021-12-09 21:59:49 +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
c137a484af
[ENTITY][ActorTag] Fix url in actor tag
2021-12-09 16:34:07 +00:00
Eliseu Amaro
774e32f834
[PLUGINS][TreeNotes] Working, however feed is still not formatted
...
[ENTITY][Note] Fix for getReplies()
2021-12-09 00:15:47 +00:00
Diogo Peralta Cordeiro
480a42cca5
[PLUGIN][ActivityPub] Introduce ActivitypubObject. Beware, inside the plugin, an Object can never be an Activity.
...
Many bug fixes and other major changes (interface changed, see EVENTS.md)
2021-12-08 23:24:23 +00:00
Eliseu Amaro
b1227d36f1
[CARDS][Note] In conversation time ago information added
2021-12-08 22:48:04 +00:00
Hugo Sales
d52a043705
[TWIG] Restructure user settings template, making it much easier to use and extend
2021-12-08 19:57:35 +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
c131e47176
[COMPONENT][Tag] Remove wrong canonicalization of tags in tag feed controller. Fix display of original tags
2021-12-07 20:10:59 +00:00
Hugo Sales
c093eb9089
[TWIG] Update instanceof filter to be able to check for native types
2021-12-07 19:52:27 +00:00
Diogo Peralta Cordeiro
63bf93d7f3
[CORE][Entity][Note] Language can be null
2021-12-05 21:03:13 +00:00
Hugo Sales
2a161c9c66
[PLUGIN][TagBasedFiltering] Block actor tags, but don't block notes from the current actor
2021-12-05 19:18:57 +00:00
Hugo Sales
259e07b259
[ENTITY][ActorTag][ActorTagBlock] Add 'use_canonical' column
2021-12-05 17:55:49 +00:00
Hugo Sales
9f445632b2
[PLUGIN][TagBasedFiltering] Expand to allow filtering by actor tags
2021-12-05 17:55:49 +00:00
Hugo Sales
e29e1cc87c
[ENTITY] Rename 'getFrom' to 'getBy'
2021-12-05 17:55:46 +00:00
Hugo Sales
4f669d4e01
[ENTITY][NoteTag][Language] Add convinience cache getters
2021-12-05 17:54:58 +00:00
Hugo Sales
a47a01abee
[ENTITY][ActorTagBlock][NoteTagBlock] Add ActorTagBlock and NoteTagBlock
2021-12-05 17:54:58 +00:00
Hugo Sales
8a495bd714
[CONTROLLER][Feeds][EVENT] Refactor and add 'FilterNoteList' event
2021-12-05 17:54:58 +00:00
Hugo Sales
314859b775
[ENTITY][NoteTag] Add 'use_canonical' column, which indicates whether the user wanted to canonicalize the tag or not (for themselves, the canonical field is still filled, for blocks)
2021-12-05 17:54:58 +00:00
Hugo Sales
1457aa8220
[UI][PLUGIN][DeleteNote][EVENT] Add 'AddExtraNoteActions' event, which can be leveraged to add extra actions on each note, but which are normally collapsed
2021-12-05 17:54:58 +00:00
Hugo Sales
969df371dd
[COMPONENT][Avatar] Small refactor
2021-12-05 17:54:58 +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
70ed04a7db
[COMPONENT][Link] Fix some minor issues with empty headed links, typo in event handler's name, and refactor entity to inside component
2021-12-03 00:46:52 +00:00
Eliseu Amaro
6ce78141a8
[CONTROLLER][UserPanel] Actor nickname cache is updated
2021-12-02 22:21:47 +00:00
Eliseu Amaro
2967b544f5
[CONTROLLER][UserPanel] Nickname now normalized
2021-12-02 20:49:10 +00:00
Eliseu Amaro
863cfbdedc
[CONTROLLER] Old password input type set to password
...
[CONTROLLER] Notification form fields requirement set to false
2021-12-02 19:32:39 +00:00
Hugo Sales
772ec6efcf
[UI] Set html img width and height attributes for avatar
2021-12-02 19:13:33 +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
Eliseu Amaro
37ef8cddfa
[ENTITY][Note] Add getLanguageLocale() and getNoteLanguageShortDisplay()
...
[CARDS][Note] Render note's language short display
[PLUGINS] Bring back titles to Reply, Repeat and Favourite actions
2021-12-02 15:05:49 +00:00
Diogo Peralta Cordeiro
d044039272
[FreeNetwork] Initial multi-protocol support
2021-12-02 14:23:21 +00:00
Diogo Peralta Cordeiro
30f3e2c462
[FEEDS][Home] Fix bug nickname is not unique, but it is for local users
2021-12-02 11:12:03 +00:00
Eliseu Amaro
eeb42ef8ea
[CONTROLLER][Actor] Provide template with all notes by actor
...
[ENTITY][Note] Add getAllNotesByActor
[TWIG] Actor profile page now renders all notes by the actor
2021-12-01 21:41:41 +00:00
Eliseu Amaro
5d8bd6c74a
[TWIG][Note] Add single note view
2021-12-01 21:07:14 +00:00
Hugo Sales
d58483a6ca
[TOOLS] Cleanup PHPStan warnings
2021-12-01 19:47:43 +00:00
Hugo Sales
0b57b20d38
[UI][PLUGIN][Reply][Favourite][ENTITY][Feed] Remove replies and favourite links from navigation/view.html.twig and add them to the feeds section
2021-12-01 19:47:43 +00:00
Hugo Sales
73981030fa
[CONTROLLER][COMPONENT][Left] Move edit feeds controller to the Left component
2021-12-01 19:47:43 +00:00
Hugo Sales
475bb1a033
[UTIL][EXCEPTION][BugFoundException] Use only the relative path, for convenience and to avoid potentially leaking the sysadmin's user
2021-12-01 19:47:42 +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
6c7f69dd94
[ENTITY][Actor] Partition the results of the joint query into a separate list of ActorsCircles and ActorTags, as desired
2021-12-01 19:47:42 +00:00
Hugo Sales
a3e5f7646c
[CONTROLLER][UserPanel] Use only the ActorTags in the settings
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
Diogo Peralta Cordeiro
123544fa50
[ActivityPub] Port Postman
2021-12-01 19:47:40 +00:00
Diogo Peralta Cordeiro
df3fbbc9e7
[ActivityPub] Add ActivityToType
...
Minor bug fixes
2021-12-01 19:47:39 +00:00
Eliseu Amaro
f92c00c7aa
[CONTROLLER][Feeds] Add block prefixes to distinguish form groups
...
[TWIG] Divide form into various groupings for clearer representation
2021-11-29 23:12:09 +00:00
Hugo Sales
98568b6f53
[ENTITY][Actor][ActorTag] Make Actor->getSelfTags and Actor->getOtherTags return [ActorCircle[], ActorTag[]], rather than ActorCrircle alone
2021-11-29 23:12:07 +00:00
Hugo Sales
3477ad5efc
[PLUGINS][RelatedTags] Add related tags plugin and needed infrastructure. Initial work on pinned content
2021-11-29 22:42:51 +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
6680772e47
[UI][I18N][UTIL][FormFields][Language][COMPONENTS][Posting][PLUGINS][Reply] Factor out translation from FormFields::language
and remove help text in cases from Posting and Reply
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
66ff3c594d
[UTIL][Formatting] Fix wrong event name
2021-11-29 22:42:49 +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
Hugo Sales
f986f59424
[ENTITY][ActorTag] Add 'canonical' field to actor_tag
2021-11-29 22:42:49 +00:00
Diogo Peralta Cordeiro
56526c9ba6
[ActivityPub][Inbox] Restore Create Note Functionality
...
Minor bug fixes
2021-11-29 22:42:46 +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
11d2cfb9ed
[UI][FEEDS][ENTITY][Feed] Add way to customize the feeds that are displayed in the left panel. The user can add, delete, reoder and rename them
2021-11-26 23:35:10 +00:00
Hugo Sales
cdc8886bb8
[CORE][DB] Rename parameters 'orderBy' to 'order_by'
2021-11-26 23:34:37 +00:00
Hugo Sales
42f40f9ebe
[CORE][CONTROLLER][Network] Refactor term 'network' into 'feeds'
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
Eliseu Amaro
180ae15647
[PLUGINS][Oomox] User theme CSS file is served. Settings page needs polish, and option to revert changes.
2021-11-26 14:45:28 +00:00
Eliseu Amaro
7fa2418e54
[PLUGINS][Oomox] Theme colours WIP.
2021-11-26 14:45:28 +00:00
Hugo Sales
6cd7be6abc
[UI][CONTROLLER][ENTITY][DOCS] Refactor term 'timeline' into 'feed'
2021-11-26 13:05:23 +00:00
Hugo Sales
283820a4a5
[UI][ENTITY][Language] Use list rather than hashmap so actor language ordering is preserved
2021-11-26 12:30:21 +00:00
Hugo Sales
04e6b2fb53
[ENTITY][Language] Properly handle context actor language
2021-11-26 12:29:27 +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
98b719dca3
[COMPONENTS][Tag] Split tag into words and stem each
2021-11-25 20:37:53 +00:00
Hugo Sales
2d057024b9
[TAGS][ENTITY][Note] Properly store the note language, pass it along when rendering content. Add mechanism for stemming tags, with fallback to simply slug-ifying them
2021-11-25 20:37:53 +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
Hugo Sales
c1779dc12d
[UI] Don't display short language form in user panel language selection
2021-11-25 20:37:53 +00:00
Hugo Sales
0194b6b14c
[TESTS] Fix tests by adding missing is_local columns and by login in the admin user in the admin panel test
2021-11-25 20:37:52 +00:00
Hugo Sales
d9544c6edb
[CORE][SECURITY] Move to the new authentication format, for Symfony 5.3
2021-11-25 20:37:45 +00:00
Diogo Peralta Cordeiro
05758c999f
[ENTITY][Actor] fix typo in findRelativeActors query
2021-11-25 02:07:12 +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
Eliseu Amaro
8edaabbabf
[TWIG][Settings] WIP Refactoring of user panel. Now using macros to diminish repeated code.
...
[CONTROLLER][UserPanel] Replaced form names. More readable.
2021-11-24 12:46:31 +00:00
Hugo Sales
30f4131f5d
[TESTS] Add missing 'is_local' to actors in data fixtures
2021-11-24 12:46:31 +00:00
Hugo Sales
206856e1ba
[FORM][FormFields] Add way of specifying attributes for password fields (namely form autocomplete=new-password)
2021-11-24 12:46:31 +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
Hugo Sales
c68d7ae406
[CONTROLLER][UserPanel] Make function names camelCase
2021-11-20 21:33:25 +00:00
Hugo Sales
7e4a971fac
[ENTITY][LocalUser][CACHE] Remove bad keys from getByNickname cache key
2021-11-20 21:33:25 +00:00
Hugo Sales
0e104a9701
[UTIL][HTML][TESTS] Fix test and implementation and expand HTML generation utilities
2021-11-20 21:33:25 +00:00
Hugo Sales
fe755f7c42
[UTIL][FormFields] Accomodate use of FormFields::repeated_password without a 'required' option
2021-11-20 21:33:23 +00:00
Eliseu Amaro
0aa43783e8
[PLUGIN][Repeat] Repeat now repeats attachments as it should.
...
[COMPONENTS][Posting] Now accepts attachments already processed.
[ENTITY][Note] Added getAttachmentsWithTitle().
2021-11-17 17:14:15 +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
Diogo Peralta Cordeiro
f07dce4604
[UTIL][Form] Fix bug with repeated_password
2021-11-16 23:27:29 +00:00
Diogo Peralta Cordeiro
89d36a68e5
[ENTITY][Actor] Add is_local, it's common to depend, and this makes it much faster, with a low space cost
2021-11-16 23:26:20 +00:00
Hugo Sales
b8b19abed2
[ENTITY][AttachmentThumbnail] Do not attempt to check if a file exists if the path is null
2021-11-15 19:25:52 +00:00
Hugo Sales
5cafc80d01
[UTIL][FormFields] Refactor duplicated language choice form entry logic
2021-11-15 19:25:52 +00:00
Hugo Sales
e6c0db9ee1
[CORE][Cache] Allow retrieving multiple keys from a hashmap
2021-11-15 19:25:52 +00:00
Hugo Sales
587d701d11
[CONTROLLER][Network] Temporarily remove replies from streams, following planned changes to the Reply plugin
2021-11-15 19:25:52 +00:00
Hugo Sales
774eb49af4
[UI][CONTROLLER][UserPanel][ENTITY][ActorLanguage][Language][Actor] Add interface to allow user to select thier preferred languages and to order them. Rename ActorLanguage::order to ordering
2021-11-15 19:25:52 +00:00
Hugo Sales
d5e6fd603d
[CONTROLLER][UserPanel] Fix 'could not convert IntergetType to string' error
2021-11-15 19:25:51 +00:00
Hugo Sales
1abd28c949
[UI][TWIG][CONTROLLER][UserPanell] Add way to expand details with a GET parameter. Implement it in UserPanel
2021-11-15 19:25:51 +00:00
Hugo Sales
c509692102
[ENTITY][AttachmentThumbnail] Uncache when deleting, cleanup code and ensure the biggest thumbnail is used when the original is not avaliable
2021-11-15 19:25:51 +00:00
Hugo Sales
a3074662b8
[TESTS] Remove 'reply_to' in note creation in data fixtures
2021-11-15 19:25:51 +00:00
Hugo Sales
eab6de3609
[TESTS][Security] Fix SecurityTest. Remove nickname normalization on register (a plugin can handle that). Move from filter_var(FILTER_VALIDATE_EMAIL) as it does not support dotless domains
2021-11-15 19:25:50 +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
98352cfece
[TESTS] Properly provide both createClient and bootKernel in test base class
2021-11-11 12:39:36 +00:00
Hugo Sales
2239845a00
[CONTROLLER][Security] Remove nickname normalization when trying to login
2021-11-11 12:39:36 +00:00
Hugo Sales
a1c78696f7
[CORE][Actor][Posting] Fixup Actor::getPreferredLanguageChoices following changes in how the data is cached
2021-11-11 12:39:36 +00:00
Hugo Sales
f39f800a8e
[TESTS] Add now-required content-type to notes created in data fixtures
2021-11-11 12:39:35 +00:00
Hugo Sales
f667b558f7
[TESTS] Fix SecurityTest
...
This test was broken by changes in the routing and in the templates.
However, this revealead a potential open redirect and duplicated code
in the Reply and Favourite plugins
2021-11-11 12:39:28 +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
Eliseu Amaro
d0f9fde7c2
[PLUGIN][Reply] WIP. Note complementary info now shows who has replied on the original note!
2021-11-10 15:44:28 +00:00
Eliseu Amaro
f2f1bdc145
[PLUGIN][Reply] Separated replies from Note table.
...
[PLUGIN][Repeat] Deleted unnecessary card note template, info now to
appended at the end of note.
[PLUGIN][TreeNotes] WIP to accomodate reply plugin changes.
[TWIG][Runtime] Removed getAdditionalTemplateVars event.
2021-11-10 13:29:53 +00:00
Hugo Sales
7d8819a3da
[DB][CONTROLLER][Network][ENTITY][Note] Fix Note::getAllNotes
2021-11-09 23:38:37 +00:00
Hugo Sales
f0c532340e
[DB] Fix uses of DB::sql
, to remove the deprecated second entities
parameter
2021-11-08 20:35:38 +00:00
Hugo Sales
767b2035e7
[ENTITY][ActorLanguage] Remove duplicate specification of 'not null' in table schema
2021-11-08 20:32:10 +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
68c6dd1ba9
[CORE][Cache] Use hashmaps to store language related items
2021-11-08 16:08:04 +00:00
Hugo Sales
2eb31952bc
[ENTITY][Language] Use varchar as char leads to a padded string, which isn't helpful
2021-11-08 16:08:03 +00:00
Hugo Sales
2cf3a0b4e6
[COMPONENT][Posting] Display short language signifier rather than the full name for the first preffered language
2021-11-08 16:08:03 +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
019ad794d1
[Posting] Add dropdown with language choice, with preferred choice according to user choice and context (group, etc)
2021-11-08 16:08:02 +00:00
Hugo Sales
9444c34071
[ENTITY][Actor][ActorLanguage][Language] Remove Actor::preferred_lang_id. Add ActorLanguage::order. Add Language::{short_display,long_display}. Instead of an actor having a single preffered language, the entries in ActorLanguage should be used, sorted by ActorLanguage::order
2021-11-08 16:08:02 +00:00
Hugo Sales
2bd05fbd47
[TOOLS][COMMAND] Add 'app:populate_initial_values' command, which inserts values into the language table if it does not yet contain values. Add database-force-nuke to Makefile, which does all the steps necessary to reset the database
2021-11-08 16:08:02 +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
839fa070c7
[CORE][Posting] Default Posting language to site language, if the user hasn't selected one
2021-11-02 11:14:59 +00:00
Eliseu Amaro
cf09b48e92
[PLUGINS][Repeat] Added note_repeat entity, fixed visual discrepancies, and completed the expected functionality.
...
[ENTITY][Note] Removed repeat_off from table. It is now part of the Repeat plugin.
2021-11-01 21:19:56 +00:00
Diogo Peralta Cordeiro
712d1739e4
[UTIL][Formatting] Make local mentions great again
2021-11-01 12:16:29 +00:00
Eliseu Amaro
91dd6e1428
[Controller][Security] Fullname is not setup automatically upon registering anymore.
...
[ENTITY][Actor] Changes to accomodate fullname from potentially being null.
[ENTITY][Note] Changes to accomodate fullname from potentially being null.
2021-10-29 22:05:10 +01:00
Eliseu Amaro
9a23e03330
[PLUGINS][Repeat] Repeat template override WIP.
2021-10-29 17:26:20 +01:00
Hugo Sales
44454ac28a
[UTIL][TemporaryFile] Ensure resource
is neither false
nor null
when attempting to cleanup, otherwise getRealPath
returns false
and we get sad
2021-10-28 17:36:02 +01:00
Hugo Sales
458c09485a
[CORE][ENTITY] Move preferred language setting from [LocalUser] to [Actor], make [Language] language
unique and make [Note] content_type
not null
2021-10-28 17:34:01 +01: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
Hugo Sales
18aeeb3850
[ENTITY] Add a [Language] table, which has a char 64 field that maps to an int. This is then used in [Note], [LocalUser] and [ActorLanguage]
2021-10-28 11:26:34 +01:00
Eliseu Amaro
e54e55dfbf
[EXCEPTION][RedirectException] You are now able to redirect to a specific url.
2021-10-27 20:44:50 +01:00
Eliseu Amaro
3e2fefa8af
[TWIG][Cards] Fullname is now displayed as the note author, nickname as an identification.
...
[CONTROLLER][Security] Fullname is set on resgistration to enable it to be shown by default in notes.
[CONTROLLER][UserPanel] Fullname extra step added.
[CSS] Fullname and nickname representation work.
2021-10-27 20:44:50 +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
Eliseu Amaro
8038fdbce9
[UTIL][Common] Added Common::getUploadLimit().
...
[COMPONENT][Posting] Update Posting to warn the user of submtting attachments too large.
2021-10-27 04:19:32 +01:00
Eliseu Amaro
656c2c7812
[SECURITY][Authenticator] fix wrong route id on after login redirection
2021-10-27 04:19:32 +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
dff5647b97
[DB][Note] Add langauge field to notes
2021-10-27 04:19:31 +01:00
Hugo Sales
8a10fec31d
[CONTROLLER][UserPanel] Make all fields in settings not required
2021-10-27 04:19:30 +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
eli
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
Diogo Peralta Cordeiro
8544fe157b
[FreeNetwork] First steps porting webfinger/lrdd to v3, GET webfinger requests already have a basic result
2021-10-27 04:19:29 +01:00
Diogo Peralta Cordeiro
44cf1fa24c
[UTIL][Nickname] Fix some parameters issues found with strict types
2021-10-27 04:19:29 +01:00
Hugo Sales
b524c5bc90
[TOOLS][PHPStan] Add missing toString on the call to DB::filterName, as it seems something changed in some update
2021-10-27 04:19:28 +01:00
Hugo Sales
b65ee4c21d
[TOOLS][CS-FIXER] Fix incorrect transformation
2021-10-27 04:19:28 +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
Hugo Sales
d575f8aef5
[UTIL][Formatting] Make it possible to supply string|array to either or both argument of Formatting::{starts,ends}With
2021-10-27 04:19:26 +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
Diogo Peralta Cordeiro
03f6029ce5
[SECURITY] Fix nickname validation and properly allow email auth
2021-10-18 13:22:55 +01:00
Diogo Peralta Cordeiro
071b769997
[CORE][Util][Common] Correct behaviour for absense of value
2021-10-18 13:22:45 +01:00
Diogo Peralta Cordeiro
517ed953f2
[FreeNetwork] First step towards de-duplication mechanism for federation
...
Refactored AS2 inside AP; [ENTITY][Activity] went from core to AP
Webfinger plugin will be part of FreeNetwork component
2021-10-06 11:48:22 +01:00
eli
3cb6563c40
[TWIG][EndShowStyles] Route as an event argument
2021-10-06 00:34:27 +01:00
eli
17a13b3f20
[CSS] Fix: Left and right panel checkbox border when active.
2021-10-04 12:31:06 +01:00
eli
80d1be323d
[COMPONENTS][Search][CSS] Extra header forms now accessible through a details element. Re-organizing templates structure.
2021-10-04 12:17:14 +01:00
eli
d38ad60c76
[COMPONENTS][CSS] Adding components styling properly.
2021-10-01 17:25:51 +01:00
Hugo Sales
19c2a91232
[TOOLS][PHPStan][ProfileColor][ENTITY][TEST][AttachmentThumbnail] Fix issues reported by phpstan
2021-09-27 19:50:56 +01:00
Hugo Sales
1107d8257d
[TWIG] Add instanceof
test
...
Use with:
{% if var is instanceof(Namespace\Class) %}
2021-09-27 19:50:56 +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
Diogo Peralta Cordeiro
a681acae67
[ENTITY][AttachmentThumbnail] Every image should have width and height attributes
2021-09-25 19:40:11 +01:00
Diogo Peralta Cordeiro
3268559f9a
[AttachmentThumbnail] Use other thumbnail when requested isn't available and there's no original file
2021-09-23 16:19:50 +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
Hugo Sales
21e598d877
[ENTITY][Actor] Fix issue with deleting a self tag
2021-09-23 14:34:34 +01:00
Diogo Peralta Cordeiro
4820a863a9
[Avatar] Fix cache usage and other minor bugs
2021-09-23 14:34:34 +01:00
Eliseu Amaro
a557ba0224
[Timelines][Plugins][Left] Plugins now provide their path ID. Feed redone as it's own independant template.
2021-09-22 16:47:06 +01:00
Diogo Peralta Cordeiro
05f16a3084
[ENTITY][AttachmentThumbnail] Now thumbnails are always only available in three sizes: small, medium, big
...
Commit jointly produced with eli (Eliseu Amaro)
Breaking change: Entity changed to only store the tinyint referring to the size stored
With this, the logic was simplified and now it's not possible to make an
instance produce unnecessary thumbs. The aspect ratio is preserved and
thus the thumbs will always look nice. New configuration was added to
maintain flexibility.
2021-09-22 15:13:46 +01:00
Diogo Peralta Cordeiro
7beb5c2995
[GSFile] Fix sanitize configuration
2021-09-22 15:13:46 +01:00
Hugo Sales
69e7dc44bd
[ENTITY][Note] Change isVisibleTo
to allow for not supplying an actor
2021-09-21 16:38:50 +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
8bb6285522
[ENTITY][Note] A note may have no content
2021-09-20 17:06:21 +01:00
Diogo Peralta Cordeiro
b7298eaa44
[ENTITY] ActorTag: use getter for tag name on toString
2021-09-20 17:05:50 +01:00
Hugo Sales
8fe8687c5b
[UTIL][HTML] Move to a unified array
2021-09-20 13:28:18 +01:00
Hugo Sales
e8f4563633
[UTIL][Formatting][COMPONENT][Link][Tag] Refactor code from formatting into Link and Tag, where appropriate. Drop 'perfect url regex' as the one used in v2 is better
2021-09-20 13:28:18 +01:00
Hugo Sales
556b8f8265
[ENTITY][NoteTag] Add 'canonical' field to tag
2021-09-20 13:27:27 +01:00
Hugo Sales
04174bc56d
[UTIL][UI] Change how plaintext notes are rendered to be split into paragraphs. Remove span around tags
2021-09-20 13:27:27 +01:00
Hugo Sales
51c7e10483
[UTIL][HTML] Allow specifying options: [raw => bool]
, whether to escape the provided inner HTML or not. Use with care
2021-09-20 13:27:21 +01:00
Diogo Peralta Cordeiro
67d62cf37b
[TWIG] Remove kludge event TwigPopulateVars
2021-09-18 07:27:35 +01:00
Diogo Peralta Cordeiro
fda998e335
[Avatar] We definitely don't need an event to retrieve avatar urls
2021-09-18 07:26:10 +01:00
Diogo Peralta Cordeiro
2bd19fa087
[NOTE][Posting] Revert regressions introduced with c90efe2c52
...
Entity Note: It doesn't make sense to handle attachments on Note::create.
Attachments exist out of Notes, they are a thing on their own.
Furthermore, they aren't always handled the same, they most definitely
aren't always uploaded files.
FileQuota: It doesn't make sense to check if a file is greater than max
allowed upload size here. The plugin ensures a user is inside his
allowed quota, it's ignorant to anything else. Whether a file respect
max upload is a core thing that must be handled directly in the Posting
component. TODO: The configuration regarding user and monthly quota
must become FileQuotaPlugin settings and be removed from core.
c90efe2c52 - [UI] Add mechanism for rendering note contents in different formats. Implement plaintext rendering. Use rendered field for note content, rather than the content itself
2021-09-18 05:12:18 +01:00
Diogo Peralta Cordeiro
941cbe6599
[Actor] Refactor GSActor into Actor
2021-09-18 05:12:17 +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
b177cb69e7
[HTML][SECURITY] Harden implmentation of HTML generation
2021-09-18 05:12:08 +01:00
Hugo Sales
8f0a3e4977
[UI] Add mechanism for rendering note contents in different formats. Implement plaintext rendering. Use rendered field for note content, rather than the content itself
2021-09-18 05:12:06 +01:00
Hugo Sales
f344ed376c
[ATTACHMENTS][Embed][UI] Allow plugins to provide a title for an attachment, if a note has none, implement such a mechanism in Embed and cache the result, since it is potentially costly
2021-09-18 05:12:06 +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
Eliseu Amaro
e9d809d441
[Security][Exception] Security exception handling, login and register. TODO EmailNotFoundException and NicknameNotFoundException.
2021-09-15 14:48:06 +01:00
Eliseu Amaro
26af284353
[CONTROLLER][SECURITY] Registration feedback. The flashError works. However, Symfony's Exception error page is viewed upon trying to register.
2021-09-15 14:48:06 +01:00
Diogo Peralta Cordeiro
365edbaff0
[ActivityStreamsTwo] Initial Actor support
...
Various bug fixes
2021-09-15 10:26:53 +01:00
Hugo Sales
1adde913c6
[PHPStan] Only run custom PHPStan extensions if environment vairable PHPSTAN_BOOT_KERNEL is defined (since it requires having the whole social setup available)
2021-09-14 13:13:45 +01:00
Diogo Peralta Cordeiro
7c465bba5f
[NOTE] Add mimetype to notes
2021-09-14 13:13:45 +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
f81bf4a257
[TOOLS][PHPStan] Add mechanism for initializing the whole application
2021-09-14 13:13:44 +01:00
Hugo Sales
ddb9702b1c
[TOOLS][PHPStan] Add support for deducing the correct entity type from a table name. Needs refactoring and can only run inside container, as it connects to the database itself
2021-09-14 13:13:44 +01:00
Hugo Sales
4e30e5aad9
[TOOLS] Fix all issues found by PHPStan level 2
2021-09-14 13:13:44 +01:00
Eliseu Amaro
61071a6821
[PLUGINS][Reply][Repeat][Favourite] Base template semantic rework. Reply, repeat and favourite respective classes are now assigned in their NoteHandlerPlugin.
2021-09-14 13:13:43 +01:00
Diogo Peralta Cordeiro
ddd2ffe26a
[TWIG] Add extension to check if Firefox is being used
2021-09-14 13:13:43 +01:00
Hugo Sales
add8f4a52f
[TOOLS] Fix all errors found by PHPStan level 1
2021-09-14 13:13:42 +01:00
Hugo Sales
277a080d7c
[EXCEPTION] Add NotImplementedException
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
cbbef90752
[UTIL][CONFIG] Ensure setConfig
uses a locals
key
2021-09-14 13:13:41 +01:00
Hugo Sales
4916c8cbda
[CONTROLLER][AdminPanel] Add missing Exception 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
cd89106fc0
[EXCEPTION][RedirectException] Add prevention for open redirects by default and ensure we can redirect to the same page
2021-09-14 13:13:40 +01:00
Hugo Sales
16cde6dfd7
[PLUGINS][Reply] Redirect back to previous URL on note reply. Move controller to own class
...
This should be safe against open redirects, as it doesn't allow redirecting to other domains
2021-09-14 13:13:40 +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
e4aa3ae968
[NOTE] Add route and controller
2021-09-14 13:13:37 +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
141f919ca7
[CONFIG][TESTS] Fix error found by AdminPanel test
2021-09-14 13:13:36 +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
Hugo Sales
2fdd0b0820
[TESTS][DataFixtures] Use Temporary file instead of an ad-hoc solution to copy the upload files
2021-09-14 13:13:36 +01:00
Diogo Peralta Cordeiro
2b457655ea
[CORE] Fix path configuration
2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro
e7b985a460
[FIXTURES] Catch any exception, we don't have VIPS-related only
2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro
f9079784c4
[ENTITY][AttachmentThumbnail] Improve the way EncoderPlugins participate in the thumbnail process
2021-09-14 13:13:35 +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
Diogo Peralta Cordeiro
210f895e74
[ENTITY][Attachment] Respect rfc6838#section-4.2 mimetype length
2021-09-14 13:13:34 +01:00
Diogo Peralta Cordeiro
2a3db65216
[CONTROLLER][Attachment] Some attachments may not have dimensions
2021-09-14 13:13:34 +01:00