The purpose of this module is to ask visitors to fill out a webform before being allowed to receive a file. The file will be sent as an attachment by email, if it is configured as shown below.
This module provides a field formatter for file, image, and media types which links to a webform.
The module also provides a "Attachment File (Gated Download)" webform element which must be used for the module to work.
Instructions for Use
- Make sure $settings['hash_salt'] has a value in settings.php
- Create a webform
- Add an "Attachment File (Gated Download)" webform element to the webform
- Setup the webform email handler to include attachments
- Setup a file, image, or media field - can be private or public
- Set the display type for the field to "Webform Gated Download Link"
- Choose the button text and webform from the formatter options
- That's it :-)
Generate your own link
It's possible to generate your own link from code:
- Call \Drupal\webform_attachment_gated_download\QueryParser::getQueryValueFromFid()
- Use the return value with a URL query key of 'gated_fid'.
Security Considerations
The file ID in the URL parameter is protected by a hash, which is why you must provide a $settings['hash_salt'] value. This way the URL cannot be manipulated to attach other files to the webform submission.
Anybody who fills out your form will receive an attachment, regardless if the file is public or private and regardless of whether they are logged in or not, and ignoring all other permissions in place. THIS IS BY DESIGN and allows you to protect private files behind a gated webform.
Project information
- Project categories: Access control, Developer tools
- Ecosystem: Webform
113 sites report using this module
- Created by dubs on , updated
Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.
Releases
D10 compatible version
Development version: 8.x-1.x-dev updated 9 Mar 2024 at 10:59 UTC

