Commit Graph

886 Commits

Author SHA1 Message Date
Lukas Erni
0b61d1a3bb not remove Submissions, use setTitle 2023-04-26 07:26:33 +02:00
Lukas Erni
0d7f7ed6d0 Submission tab translatable 2023-04-19 15:48:24 +02:00
Steve Boyd
77af08139c Merge branch '5' into 6 2023-02-02 16:04:16 +13:00
Steve Boyd
10fc452c8d Merge branch '5.14' into 5 2023-02-02 16:03:12 +13:00
Steve Boyd
58583ded8d Merge branch '5.13' into 5.14 2023-02-02 16:02:49 +13:00
Sabina Talipova
1ea2b8e87f
API Remove deprecated code (#1185) 2023-01-25 13:55:24 +13:00
Steve Boyd
b6fbd374ea MNT Remove legacy upgrader config 2023-01-20 16:21:49 +13:00
Steve Boyd
14e1e5e1fa MNT Broken builds 2023-01-19 21:16:49 +13:00
Steve Boyd
746ac8aedf FIX Use HTMLValue::class 2023-01-18 10:34:46 +13:00
Sabina Talipova
2b9d9833b3 DEP PHP Support in CMS5 2023-01-09 15:24:33 +13:00
jeric realubit
c593138569 FIX Ensure .nolabel is only added once when Hide Title is used 2022-12-07 22:58:34 +13:00
Steve Boyd
7a6cd1c211 API Stop using deprecated API 2022-11-29 09:36:08 +13:00
Steve Boyd
2a2b66a09b API Update deprecations 2022-11-16 11:57:49 +13:00
Michal Kleiner
a356b0f8ce
Merge pull request #1017 from NightJar/new/5/set-max-upload-size-via-config 2022-10-28 14:41:21 +13:00
Loz Calver
c0fd386ea7 Fix incorrect label on unwritten field groups 2022-10-27 10:42:43 +01:00
Dylan Wagstaff
0ff72734dd NEW Maximum email attachment size can be configured
Previously hard coded size of 1MB meant any file larger was excluded
from recipient emails - often confusing for CMS admins configuring an
advanced use case for a userform, expecting to recieve files to begin a
business process external to the website.

The configuration has been made to support PHP 'shorthand byte values'
https://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
in the configuration option. This give flexibility around oddly
specific limits, but can also be used to set as 0, disabling attachments

Tests are updated to set up a known state before testing, as to be able
to accurately assert the results. One should test the class they intend,
not an Injector service of some unknown element.
2022-10-24 20:12:58 +13:00
Dylan Wagstaff
3cd8c7ea77 FIX submission performance issues with large data
The more submissions a form receives, the more submission fields it must
process just to be able to load `getCMSFields`. Arguably submission data
does not belong here, but this is beyond the scope of this patch.

On popular forms it is not improbable to be trying to process 300,000
submitted fields just to test the unique sets of name and title...
however databases have the ability to do this without wasting PHP cycles
and memory, leaving us with a much smaller set to process and hopefully
bypassing one (of several) performance issues with this module.

The consequence of not making allowance for this is that a page in the
CMS suddenly stops saving or loading via web server or PHP (or both)
process timeouts (e.g. saving takes longer than 30 seconds so saving
never happens).
2022-10-23 23:53:46 +13:00
Sabina Talipova
2750bc3a07 ENH Protect access to the uploaded file without permission 2022-08-31 11:04:15 +12:00
Guy Sartorelli
853fb646dc Merge branch '5.13' into 5 2022-06-02 10:43:54 +12:00
Guy Sartorelli
5e226f00dd Merge branch '5.12' into 5.13 2022-06-02 10:43:42 +12:00
Sabina Talipova
63c6326a63 FIX MAX_FILE_SIZE of the last EditableFileField 2022-06-01 14:08:00 +12:00
Steve Boyd
d97bc58f20
Merge pull request #1144 from creative-commoners/pulls/5/upload-protected-folder
Protect uploads if folder for EditableFileField was removed
2022-05-25 17:54:44 +12:00
Sabina Talipova
92aded3016 Protect uploads if folder for EditableFileField was removed 2022-05-25 14:07:35 +12:00
Steve Boyd
d81da1eedf ENH Save modified form data when adding new field 2022-05-23 14:01:31 +12:00
Steve Boyd
792d61fded ENH PHP 8.1 compatibility 2022-04-13 13:52:56 +12:00
Rens
6f34d27c48 Fix hardcoded admin urls 2022-03-24 08:29:29 +01:00
Michal Kleiner
81c21ea463
Merge pull request #1102 from lerni/OnCompleteMessage-in-populateDefaults()
ENH Move OnCompleteMessage from $defaults to populateDefaults() for translations
2022-03-17 10:37:22 +13:00
Lukas Erni
663bfa6952 ENH move OnCompleteMessage from $defaults to populateDefaults() for translations
add double backslashes, fix typo as requested by michalkleiner
2022-03-16 13:05:37 +01:00
Lukas
a97fb570c3
FIX strings instead of __CLASS__ for translation keys in trait (#1101)
* strings instead of __CLASS__ for translation keys in trait

* use double backslashes for FQN in _t()

* amend missing for double backslashes for FQN in _t()
2022-03-16 14:48:41 +13:00
Florian Thoma
33e9a25688 ENH Add config to hide invisible fields from email output 2022-03-15 11:46:18 +11:00
Guy Sartorelli
60cd3d0937
FIX Ensure all fields are available for updateCMSFields(). (#1089) 2022-03-03 16:47:45 +13:00
Marco Hermo
c762835d4f
API Additional data passed to updateAfterProcess hook (#1130)
Passing $emailData and $attachments array to the existing hook, updateAfterProcess
In this case it will give more flexibility for the extension to do
additional cleanup process after the emails has been sent.
2022-01-14 11:08:22 +13:00
Michal Kleiner
2691ac354e
ENH Provide submitted form info to submission email data (#1113) 2021-10-19 12:58:23 +13:00
Steve Boyd
9d5b8c1b8e
Merge pull request #1111 from alex-dna/fix/controller-name
API Use controller_name static config
2021-10-19 10:47:46 +13:00
Alexandre
9f7e55b346 Use controller_name static config instead of method for better inheritance 2021-09-17 08:23:39 +12:00
Maxime Rainville
1637a29cb4 Merge branch '5.9' into 5 2021-08-26 17:00:48 +12:00
Steve Boyd
686a7295ff
Merge pull request #1085 from GuySartorelli/patch-1
Fix: Allow removing the Versioned extension from EditableFormField
2021-08-06 10:33:26 +12:00
UndefinedOffset
63a1d1deb2
BUGFIX: Fixed issue causing the regex on windows to throw an error due to escaping of the parenthesis caused by DIRECTORY_SEPARATOR 2021-07-19 11:36:03 -03:00
Will Rossiter
18eccb65d4
FIX Log any email exceptions gracefully
If an email send() generates any errors such as invalid template or API exceptions then capture the error in the logs rather than displaying the error to the user.
2021-06-22 21:54:06 +12:00
GuySartorelli
02c15f321a
Fix: Allow removing the Versioned extension from EditableFormField
fixes #1082
2021-06-21 09:58:35 +12:00
Daniel Hensby
edb3d4ca8c
Merge pull request #1078 from GuySartorelli/patch-1
ENH Avoid use of 'new' keyword on injectable classes from this module.
2021-06-02 10:06:39 +01:00
Maxime Rainville
ab20f881eb Merge branch '5.9' into 5 2021-06-01 14:51:34 +12:00
GuySartorelli
3fbccea2ea
ENH Avoid use of 'new' keyword on injectable classes from this module.
It's not uncommon to want to override or enhance some functionality in vendor code that doesn't have extension points, so we should avoid the `new` keyword when instantiating injectable classes from the module.
2021-05-31 13:00:31 +12:00
Steve Boyd
b13cb73deb FIX Add namespaces back to translation files, use EditibleFileField class 2021-05-31 12:54:31 +12:00
Daniel Hensby
41fa8f0718
Merge pull request #1051 from wilr/wilr-patch-1
FIX Uploaded files not appearing in emails and cleanup deleted files.
2021-05-17 09:10:31 +01:00
Will Rossiter
beaf901208
FIX When deleting form submission, delete linked file 2021-05-17 09:13:19 +12:00
Dan Hensby
ce18179d49
Merge pull request #1049 from hamaka/fix/attachments_respecting_hideformdata 2021-05-14 21:32:09 +01:00
Daniel Hensby
bc5689b55a
Merge pull request #1056 from purplespider/patch-1
Stops reply-to address being set to empty, if reply-to field value is empty
2021-05-14 21:21:52 +01:00
Steve Boyd
4d2ca74ea5 Merge branch '5.8' into 5 2021-05-03 15:34:18 +12:00
Andre Kiste
6b94f9b791
Merge pull request #1040 from creative-commoners/pulls/5.8/email-preview
FIX Show correct fields in email preview
2021-05-03 15:25:18 +12:00
Maxime Rainville
a917fbe2ea Merge branch '5.8' into 5 2021-04-14 11:30:53 +12:00
Steve Boyd
52e678c6e7 FIX Include merge fields in plain text emails 2021-04-13 19:05:29 +12:00
James Cocker
b01d296c42
Avoids reply to address being set to empty, if reply to field value is empty 2021-04-12 21:27:25 +01:00
Luke Fromhold
78f3e68a25 Fix directory for UsedOnTableExtension namespace, to be psr-4 compliant. New dir rather than namespace to prevent backwards-incompat. 2021-04-02 16:04:17 +11:00
Will Rossiter
e925aa1979
FIX Uploaded files not appearing in emails
As files uploaded into `DRAFT` mode ensure that these are still displayed in the submitted form.
2021-03-22 21:30:14 +13:00
Bauke Zwaan
fad372d4ba Only add attachments when HideFormData-setting is not set for this recipient 2021-03-12 09:30:11 +01:00
Steve Boyd
79259b593a FIX Visibility of subsequent form fields and step buttons 2021-03-10 16:06:01 +13:00
Steve Boyd
9eaee41282 ENH Use yarn and webpack to upgrade jquery 2021-03-04 17:05:55 +13:00
Chris Penny
72a213790e
MNT Update docblocks and import statements (#1044) 2021-02-26 16:13:23 +13:00
Michal Kleiner
0abda42179 Use correct directory separator on Windows when selecting email templates 2021-02-10 11:52:15 +13:00
Steve Boyd
8801790b66 FIX Show correct fields in email preview
Co-authored-by: Michael Caruana <mikeyc7m@users.noreply.github.com>
2021-01-17 22:55:10 +13:00
Steve Boyd
ce2fe31bdd Merge branch '5.7' into 5.8 2021-01-17 15:58:55 +13:00
Dylan Wagstaff
c0a30f1b6a
FIX unrequire fields when they become dataless (#1016)
* FIX unrequire fields when they become dataless

When fields that collect input data are changed in configuration via the
CMS to become fields that no longer collect input data (e.g. TextField
-> HTML Block), submitting the resulting form results in a fatal error,
server 500 response, etc. due to trying to check if a field without data
(ever) has data in it.

To circumvent this we can set the required state to false if the field
is being converted to one that does not collect data (which FormField
API conveniently provides a check for).

* Move parent::onBeforeWrite() to top of function

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
2021-01-17 15:55:47 +13:00
Dylan Wagstaff
a42729679b
FIX account for owner class while removing orphans (#1018)
* FIX account for owner class while removing orphans
* Explicitly set $page and $block ID's in test fixture

Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
2021-01-17 15:29:33 +13:00
Dylan Wagstaff
e7f51d227a
ENH Move jQuery include away from CDN (#1019)
- Move jQuery include away from CDN
2021-01-17 14:37:01 +13:00
Michal Kleiner
66bbe44972
FIX Add missing dots in translation string references 2020-12-02 10:01:50 +13:00
Steve Boyd
f81360e737 Merge branch '5.7' into 5 2020-11-12 15:18:00 +13:00
Steve Boyd
ead1827aa1 Merge branch '5.6' into 5.7 2020-11-12 15:17:31 +13:00
Steve Boyd
2a47b1821e NEW Extension to link file submissions to userform on the used on table 2020-11-04 11:47:50 +13:00
Dylan Wagstaff
0ce94b75f5 FIX correctly calculate MaxFileSizeMB
The inputted value is intended to represent megabytes, but is only
multiplied by 1024 - meaning it'd represent kilobytes. This is then used
to compare with the PHP setting number, which is bytes in the range of
megabytes. Kilobytes are always under megabytes, meaning size
comparisons elsewhere in the code are always true.
We should ensure the calculation for validation is correct.
2020-11-01 11:31:23 +13:00
Maxime Rainville
d2bf27c847
MNT Fix broken merged up (#1013) 2020-10-22 15:47:17 +13:00
Maxime Rainville
4eb0fe25b9 Merge branch '5.5' into 5.6 2020-10-22 10:22:19 +13:00
Steve Boyd
42df67fe76 Merge branch '5.6' into 5.7 2020-09-22 10:29:09 +12:00
Steve Boyd
273cb1e46b Merge branch '5.6' into 5 2020-09-22 10:27:58 +12:00
Maxime Rainville
24e770e00d BUG Remove old boostrap 3 CSS class 2020-09-16 11:38:33 +12:00
Steve Boyd
f09691f9cb FIX Vertically align confirm folder icon 2020-09-15 15:24:16 +12:00
Steve Boyd
dd9618e768 Merge branch '5.6' into 5 2020-09-03 09:35:15 +12:00
Steve Boyd
8d09cb171f FIX Use translation string that belongs to UserDefinedFormAdmin
This is to for the benefit of cow translate which did not like the use of _t(CMSMain::class
2020-08-18 12:20:10 +12:00
Steve Boyd
81fcd669a2 FIX Show custom validation message for checkbox and radio groups 2020-07-21 17:30:55 +12:00
Steve Boyd
46c6d93d9c Merge branch '5.6' into 5 2020-07-17 23:24:37 +12:00
Steve Boyd
59cd87d842 FIX Trim recipient email addresses before write 2020-07-14 16:41:36 +12:00
Maxime Rainville
27228d12af [CVE-2020-9309] Require MimeUploadValidator on userformis' File Upload field 2020-07-13 11:33:46 +12:00
3Dgoo
6ca8ce2596
FIX Fixing plain email blank file field value (#940)
* Fixing plain email blank file field value
2020-07-01 09:00:31 +12:00
Maxime Rainville
25978d3c58 Clean up tests 2020-06-12 00:55:12 +12:00
Maxime Rainville
df120133ab Move confirm folder logic to a dedicated controller 2020-06-11 19:53:46 +12:00
Maxime Rainville
dc5ce0000a BUG Fix confirm upload form modal on Elemental block 2020-06-11 15:17:13 +12:00
Andre Kiste
3b40be3b8f
NEW Add folder confirmation modal when adding a new EditableFileField to a userform. (#972) 2020-06-10 16:59:01 +12:00
Garion Herman
14ce51e517
NEW Improve Unrestricted Folder warning, bump core requirement to ^4.6 (#965) 2020-06-09 21:01:09 +12:00
Steve Boyd
ed53709631 NEW DB column showing if file is userform upload
- UserFormUpload used by File::isTrackedFormUpload()
2020-05-28 13:14:34 +12:00
Steve Boyd
e54a825ea3 Merge branch '5.5' into 5 2020-05-27 13:41:51 +12:00
Steve Boyd
c3d990f70f
FIX Create image thumbnails for asset-admin for images uploaded through userforms (#969) 2020-05-27 12:26:14 +12:00
Maxime Rainville
09ea65edc7 Merge branch '5.5' into 5 2020-05-26 15:13:09 +12:00
Maxime Rainville
319fa4734c Merge branch '5.4' into 5.5 2020-05-26 15:11:46 +12:00
Maxime Rainville
133e897ad3 Merge branch '5.4' into 5 2020-05-26 15:06:14 +12:00
Dan Hensby
ede2d93363
Linting fixes 2020-05-05 16:30:57 +01:00
Serge Latyntcev
23de5a85c2 [CVE-2020-9280] Task for shifting UserForm uploads into correct folders
A task helper for recovering UserForm uploads targeting incorrectly migrated folders (from Silverstripe CMS 3)
    If your project has not been migrated from Silverstripe CMS 3, you do not need this helper.
    Before running this task make sure you have repaired the migrated folders themselves.
    To do that you have to run the extra migration subtask (`migrate-folders`).

    This task is particularly looking at all UserForm file submissions and checks they are in the same
    folder where the particular version of its EditableFileField has been set up to upload it to.

    If it finds the file has been misplaced, it tries to move it to the correct folder, but only if
    the file has not had any manipulations since the uploading happened (the file Version=1).

    If an affected file has a draft, then only Live version will be moved, but the draft will be preserved as is.

    For more details see CVE-2020-9280
2020-04-15 12:19:23 +12:00
Serge Latyntcev
3bbad20442 [CVE-2020-9280] Task for shifting UserForm uploads into correct folders
A task helper for recovering UserForm uploads targeting incorrectly migrated folders (from Silverstripe CMS 3)
    If your project has not been migrated from Silverstripe CMS 3, you do not need this helper.
    Before running this task make sure you have repaired the migrated folders themselves.
    To do that you have to run the extra migration subtask (`migrate-folders`).

    This task is particularly looking at all UserForm file submissions and checks they are in the same
    folder where the particular version of its EditableFileField has been set up to upload it to.

    If it finds the file has been misplaced, it tries to move it to the correct folder, but only if
    the file has not had any manipulations since the uploading happened (the file Version=1).

    If an affected file has a draft, then only Live version will be moved, but the draft will be preserved as is.

    For more details see CVE-2020-9280
2020-04-14 15:58:23 +12:00
Steve Boyd
52ca4c8de9 Merge branch '5.5' into 5 2020-01-29 12:20:36 +13:00
Garion Herman
4e0f0e903d Update jQuery to 3.4.1 2020-01-24 10:06:59 +13:00
Maxime Rainville
e2c05d5a55 Minor linting adjustment. 2020-01-14 12:28:04 +13:00