Commit Graph

19512 Commits

Author SHA1 Message Date
bb56b24d8f [ATTACHMENTS] Restrict thumbnail generation to allowed sizes. Defaults to only configured sizes, but can be extended with the event 'GetAllowedThumbnailSizes'. The intention is to prevent DoS attacks, since handling a thumbnail request is a relatively slow process 2021-04-28 21:53:02 +00:00
b2841cb5fc [UI] Fix 'hide_attachments is not defined' error 2021-04-28 21:50:55 +00:00
f264cd6125 [ATTACHMENTS] Add controller and templates for the attachment show page, which shows extra info about an attachment, such as related notes and tags 2021-04-28 21:25:35 +00:00
d49de9d35e [CORE] Typo in GSFile and slight Twig weirdness in base template 2021-04-28 20:16:59 +00:00
7f765c530e [Embed][ENTITY] Fix embed route and use attachment_view rather than _show. Rename Entity::have to Entity::has, because grammar 2021-04-28 20:15:43 +00:00
e699824b1d [Embed] Fix plugin. Only attempt to show an image, if we have one 2021-04-28 15:03:17 +00:00
6da8cf7f14 [ATTACHMENTS] Add event 'AttachmentFileInfo' to allow a plugin to override the file displayed 2021-04-28 15:01:40 +00:00
e08767cec0 [UTIL] Fix remove affix utilities, so they only try to remove an affix if the string starts/ends with it 2021-04-28 15:00:04 +00:00
83415b7aa6 [CONFIG] Add attachment related parameters to default config 2021-04-28 14:59:04 +00:00
495e66f4ae [AUTOGENERATED] Update autogenerated code 2021-04-27 21:24:48 +00:00
17ea4ecce1 [DB] Fix error in config/services.yaml where the wrong namespace was used for the UpdateListener 2021-04-27 21:23:47 +00:00
1d7375b9cb [TOOLS] Use \DateTimeInterface rather than DateTimeInterface 2021-04-27 21:23:00 +00:00
0a69f6de8c [AUTOGENERATED] Run bin/generate_entity_fields for the Embed plugin 2021-04-27 21:18:44 +00:00
72cd2e7a30 [Embed] Review and port v2 code 2021-04-27 20:56:50 +00:00
c6389c63b8 [ENTITY] Add meta method 'have*' to Entity base class, which checks if a field 'isset' 2021-04-27 20:56:13 +00:00
f388554166 [ATTACHMENTS][EVENT] Add onHashFile event, which can be used to deduplicate files
Currently, we simply hash the contents of the file with sha256, but in the future we can use something smarter,
which could find visual feature similarity between images
2021-04-27 20:53:59 +00:00
b4ad396cd1 [FORMATTING] Add utilities to remove affixes from strings 2021-04-27 20:52:12 +00:00
c3473e45d2 [DEPENDENCIES] Add 'embed/embed', 'nyholm/psr7' and 'symfony/dom-crawler' 2021-04-27 20:50:43 +00:00
075b495f5a [ENTITY] Add utils to Attachment and AttachmentThumbnail to get the corresponding URL and html representation parameters 2021-04-27 18:10:18 +00:00
9b3ccac246 [UTIL] Add TemporaryFile class, courtesy of Alexei Sorokin from v2, a class that ensures files stored in /tmp are removed, as it doesn't happen in some cases 2021-04-27 18:10:18 +00:00
82d9326343 [PLUGINS] Remove scripts. These will need to be implemented with Commands 2021-04-27 18:10:18 +00:00
464406cccc [Emebed] Add Embed plugin and initial cleanup 2021-04-27 18:10:18 +00:00
2782aa9924 [UI] Use event 'ShowAttachment' to permit plugins like Embed to alter the representation 2021-04-27 18:10:18 +00:00
1df7be7e8a [UTIL] Add method to validate url 2021-04-27 18:10:18 +00:00
792a9f097c [HTTPClient] Add utility functions for all HTTP methods 2021-04-27 18:10:18 +00:00
4649ee9e71 [DB] Make DB::findOneBy throw a different exception if two values are found 2021-04-27 18:10:18 +00:00
c1db9bd0a3 [Posting] Extract and store URLs from note content. Introduce 'AttachmentStoreNew' event 2021-04-25 21:20:28 +00:00
cc47cda3d1 [TESTS] Fix Nickname test 2021-04-23 15:38:26 +00:00
1503c98f26 [Favourite] Make twig event operate on array rather than string 2021-04-23 12:55:42 +00:00
b82658e345 [SECURITY][DB] Make user register 'atomic', by using a single transaction for inserting all objects, to avoid partial inserts 2021-04-23 12:54:25 +00:00
1bad2fa050 [TESTS] Fix wrong namespace in tests 2021-04-22 18:26:00 +00:00
926d0af663 [PLUGIN] Change base class from Module to Plugin for all plugins 2021-04-19 18:51:42 +00:00
0a7496de1e [AVATAR] Display avatar rounded 2021-04-19 18:41:40 +00:00
9814baf192 [UI] Use thumbnail path for thumbs 2021-04-19 13:22:50 +01:00
5ec7717fa1 [ATTACHMENTS] Move thumbnail controller to core and cleanup 2021-04-19 13:22:50 +01:00
d316f9dd6f [ImageEncoder] Change preferred type to always be WEBP 2021-04-19 13:22:50 +01:00
529ec19801 [AVATAR] Display avatar as round on the default theme 2021-04-19 13:22:50 +01:00
e105889a59 [AVATAR] Fix JS cropping script and save square image, in case other themes need it 2021-04-19 13:22:50 +01:00
c37a75cf7b [ImageEncoder] Move DB::persist call to AttachmentThumbnail 2021-04-19 13:22:40 +01:00
a33a25983e [ImageEncoder] Fix error when not providing a width and/or height 2021-04-19 13:22:26 +01:00
2f137f8b44 [ATTACHMENTS] Even more further refactoring
Introduce Encoder plugins Instead of abstract upload and thumb modules

Ported attachment routes. In v3 thumbnail depends on existing attachment
so route updated accordingly.
2021-04-19 13:22:04 +01:00
0f52638a80 [ATTACHMENTS] Further refactoring
Some key points:
- Components and Plugins shouldn't extend Module directly
- Avatars should be fetched via GSActor ID, not by nickname as that isn't unique
- Avatar now is a separate Component
- Common file utilities are now to be placed in Core\GSFile, this will
  handle storage and trigger validation
- Some bug fixes
2021-04-19 13:21:32 +01:00
bbc2fe1b5a [ENTITY] Cache AttachmentThumbnail query result 2021-04-16 20:28:39 +01:00
45a894c953 [Poll] Move tables from core to plugin 2021-04-16 20:28:39 +01:00
c8915df31e [ImageThumbnail] Finish image thumbnailing functionality 2021-04-16 20:28:39 +01:00
f6dea6e162 [DB] Fix bug in custom criteria format wrangling 2021-04-16 20:28:39 +01:00
ec8ad1888a [DEPENDENCIES] Add php-vips 2021-04-16 20:28:39 +01:00
8a280c349f [TOOLS] In pre-commit hook, only run php-doc-check if some PHP file changed 2021-04-16 20:28:39 +01:00
cbb36c9531 [DOCKER] Add VIPS PHP extension to Docker build 2021-04-16 20:28:39 +01:00
acf5bd1ff5 [ImageThumbnail] Implement image resizing with Intervention/Image 2021-04-16 20:28:39 +01:00