Skip to content

Commit e6c37fe

Browse files
authored
Merge pull request #97 from itk-dev/feature/webform-encrypt
Webform submission encryption
2 parents 23b9169 + 7c9b5e4 commit e6c37fe

13 files changed

+284
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ before starting to add changes. Use example [placed in the end of the page](#exa
1111

1212
## [Unreleased]
1313

14+
- Added webform encryption modules
1415
- Adding Lat and Long fetching to DataAddress
1516
- [#84](https://github.com/OS2Forms/os2forms/pull/84)
1617
Added digital post test command.

composer.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,15 @@
5555
"drupal/simple_ldap": "^1.0@alpha",
5656
"drupal/simplesamlphp_auth": "^3.2",
5757
"drupal/smtp": "^1.0@beta",
58+
"drupal/sodium": "^2.4",
5859
"drupal/switch_page_theme": "^4.0",
5960
"drupal/telephone_validation": "^2.2",
6061
"drupal/token": "^1.5",
6162
"drupal/ultimate_cron": "^2.0.0",
6263
"drupal/user_default_page": "^2.1",
6364
"drupal/webform": "^6.1",
6465
"drupal/webform_composite": "^1.0@RC",
66+
"drupal/webform_encrypt": "^2.0@alpha",
6567
"drupal/webform_migrate": "^1.1",
6668
"drupal/webform_node_element": "^1.2",
6769
"drupal/webform_remote_handlers": "^1.6.0",
@@ -112,6 +114,9 @@
112114
},
113115
"drupal/dynamic_entity_reference": {
114116
"entityQuery reference JOINs should specify target_type (https://www.drupal.org/project/dynamic_entity_reference/issues/3120952#comment-14141038)": "https://www.drupal.org/files/issues/2021-06-22/entityquery-reference-joins-should-specify-target_type-3120952-24.patch"
117+
},
118+
"drupal/webform_encrypt": {
119+
"Ensure data is base64 encoded (https://www.drupal.org/project/webform_encrypt/issues/3399414)": "https://git.drupalcode.org/project/webform_encrypt/-/merge_requests/4.patch"
115120
}
116121
}
117122
},
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
uuid: 98e9a380-a5d6-4d2a-9176-7c50a9ec7c47
2+
langcode: en
3+
status: true
4+
dependencies:
5+
config:
6+
- key.key.webform
7+
module:
8+
- sodium
9+
id: webform
10+
label: Webform
11+
encryption_method: sodium
12+
encryption_method_configuration: { }
13+
encryption_key: webform
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
uuid: be3383e8-1b0e-4b50-989f-e132900d02a0
2+
langcode: en
3+
status: true
4+
dependencies: { }
5+
id: webform
6+
label: Webform
7+
description: 'Encrypt webform submissions'
8+
key_type: encryption
9+
key_type_settings:
10+
key_size: 256
11+
key_provider: config
12+
key_provider_settings:
13+
key_value: LWD5+0klWZn48ZVs13UVHaHJYawX62PAMd3sklkKj/w=
14+
base64_encoded: true
15+
key_input: text_field
16+
key_input_settings:
17+
base64_encoded: true
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
enabled: 0
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
services:
2+
os2forms_encrypt.commands:
3+
class: Drupal\os2forms_encrypt\Commands\Os2FormsEncryptCommands
4+
arguments: ['@entity_type.manager', '@config.factory']
5+
tags:
6+
- { name: drush.command }
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: OS2Forms Encrypt
2+
description: Encryption functionality for OS2Forms web-forms
3+
package: OS2Forms
4+
type: module
5+
version: 1.0.0
6+
core_version_requirement: ^8 || ^9 || ^10
7+
dependencies:
8+
- 'drupal:webform_encrypt'
9+
- 'drupal:sodium'
10+
11+
configure: os2forms_encrypt.admin_settings
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
os2forms_encrypt.admin_settings:
2+
title: 'OS2Forms Encrypt settings'
3+
parent: system.admin_config_system
4+
description: 'Settings for the OS2Forms Encrypt module'
5+
route_name: os2forms_encrypt.admin_settings
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
/**
4+
* @file
5+
* This module enabled webform submission encryption as a default option.
6+
*/
7+
8+
/**
9+
* Implements hook_webform_element_info_alter().
10+
*
11+
* Add extra processing function to "force" enabled encryption on webform
12+
* elements when they are being saved in the UI.
13+
*/
14+
function os2forms_encrypt_element_info_alter(array &$definitions): void {
15+
foreach ($definitions as $element_id => &$definition) {
16+
if ($element_id === 'webform_element_encrypt') {
17+
$definition['#process'][] = [
18+
'Drupal\os2forms_encrypt\Element\WebformElementEncrypt',
19+
'processWebformElementEncrypt',
20+
];
21+
}
22+
}
23+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
os2forms_encrypt.admin_settings:
2+
path: '/admin/config/os2forms_encrypt/settings'
3+
defaults:
4+
_form: '\Drupal\os2forms_encrypt\Form\SettingsForm'
5+
_title: 'OS2Forms Encrypt settings'
6+
requirements:
7+
_permission: 'administer encrypt'

0 commit comments

Comments
 (0)