Skip to content

Commit b0c0e73

Browse files
committed
Merge branch 'release/3.19.0'
2 parents 17c4274 + d9f7776 commit b0c0e73

File tree

8 files changed

+84
-4
lines changed

8 files changed

+84
-4
lines changed

CHANGELOG.md

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

1212
## [Unreleased]
1313

14+
## [3.19.0] 2024-12-06
15+
16+
- Ensured installation of `os2web_audit`
17+
- `os2web_audit` has default logging through `watchdog`
18+
- Adds audit logging to `os2forms_digital_post`
19+
- Adds audit logging to `os2forms_nemid`
20+
1421
## [3.18.0] 2024-12-05
1522

1623
- Added `os2forms_fasit` module.
@@ -301,7 +308,8 @@ before starting to add changes. Use example [placed in the end of the page](#exa
301308
- Security in case of vulnerabilities.
302309
```
303310

304-
[Unreleased]: https://github.com/OS2Forms/os2forms/compare/3.18.0...HEAD
311+
[Unreleased]: https://github.com/OS2Forms/os2forms/compare/3.19.0...HEAD
312+
[3.19.0]: https://github.com/OS2Forms/os2forms/compare/3.18.0...3.19.0
305313
[3.18.0]: https://github.com/OS2Forms/os2forms/compare/3.17.0...3.18.0
306314
[3.17.0]: https://github.com/OS2Forms/os2forms/compare/3.16.2...3.17.0
307315
[3.16.2]: https://github.com/OS2Forms/os2forms/compare/3.16.1...3.16.2

modules/os2forms_digital_post/os2forms_digital_post.info.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ dependencies:
99
- 'os2web_datalookup:os2web_datalookup'
1010
- 'webform:webform'
1111
- 'webform:webform_submission_log'
12+
- 'os2web:os2web_audit'
1213

1314
configure: os2forms_digital_post.admin.settings

modules/os2forms_digital_post/os2forms_digital_post.services.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ services:
3737
- "@Drupal\\os2forms_digital_post\\Helper\\BeskedfordelerHelper"
3838
- "@logger.channel.os2forms_digital_post"
3939
- "@logger.channel.os2forms_digital_post_submission"
40+
- "@os2web_audit.logger"
4041

4142
Drupal\os2forms_digital_post\Helper\WebformHelperSF1601:
4243
arguments:

modules/os2forms_digital_post/src/Helper/DigitalPostHelper.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use DigitalPost\MeMo\Message;
66
use Drupal\Core\Logger\LoggerChannelInterface;
77
use Drupal\os2forms_digital_post\Exception\RuntimeException;
8+
use Drupal\os2web_audit\Service\Logger;
89
use Drupal\os2web_datalookup\LookupResult\CompanyLookupResult;
910
use Drupal\os2web_datalookup\LookupResult\CprLookupResult;
1011
use Drupal\os2web_datalookup\Plugin\DataLookupManager;
@@ -35,6 +36,7 @@ public function __construct(
3536
private readonly BeskedfordelerHelper $beskedfordelerHelper,
3637
private readonly LoggerChannelInterface $logger,
3738
private readonly LoggerChannelInterface $submissionLogger,
39+
private readonly Logger $auditLogger,
3840
) {
3941
}
4042

@@ -64,13 +66,19 @@ public function sendDigitalPost(string $type, Message $message, ?ForsendelseI $f
6466
];
6567
$service = new SF1601($options);
6668
$transactionId = Serializer::createUuid();
69+
6770
$response = $service->kombiPostAfsend($transactionId, $type, $message, $forsendelse);
6871

6972
$content = (string) $response->getContent();
7073
if (NULL !== $submission) {
7174
$this->beskedfordelerHelper->createMessage($submission->id(), $message, $content);
7275
}
7376

77+
// RecipientID should be the same in Message and Forsendelse,
78+
// so fetch it from Message as it is always set.
79+
$msg = sprintf('Sent digital post of type %s to %s', $type, $message->getMessageHeader()->getRecipient()->getRecipientID());
80+
$this->auditLogger->info('DigitalPost', $msg);
81+
7482
return [$response, $service->getLastKombiMeMoMessage()];
7583
}
7684

modules/os2forms_nemid/os2forms_nemid.info.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ dependencies:
88
- 'drupal:os2forms'
99
- 'drupal:os2web_nemlogin'
1010
- 'os2web_datalookup:os2web_datalookup'
11+
- 'os2web:os2web_audit'

modules/os2forms_nemid/os2forms_nemid.services.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ services:
66
- {name: event_subscriber}
77
os2forms_nemid.forms_helper:
88
class: Drupal\os2forms_nemid\Service\FormsHelper
9-
arguments: ['@os2web_nemlogin.auth_provider', '@plugin.manager.os2web_datalookup', '@current_route_match']
9+
arguments: ['@os2web_nemlogin.auth_provider', '@plugin.manager.os2web_datalookup', '@current_route_match', '@os2web_audit.logger']

modules/os2forms_nemid/src/Service/FormsHelper.php

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
use Drupal\os2forms_nemid\Element\NemidCompanyCvrFetchData;
99
use Drupal\os2forms_nemid\Element\NemidCompanyPNumber;
1010
use Drupal\os2forms_nemid\Element\NemidCprFetchData;
11+
use Drupal\os2web_audit\Service\Logger;
1112
use Drupal\os2web_datalookup\LookupResult\CompanyLookupResult;
1213
use Drupal\os2web_datalookup\LookupResult\CprLookupResult;
1314
use Drupal\os2web_datalookup\Plugin\DataLookupManager;
15+
use Drupal\os2web_nemlogin\Plugin\AuthProviderInterface;
1416
use Drupal\os2web_nemlogin\Service\AuthProviderService;
1517
use Drupal\webform\WebformSubmissionInterface;
1618

@@ -70,6 +72,13 @@ class FormsHelper {
7072
*/
7173
private RouteMatchInterface $routeMatch;
7274

75+
/**
76+
* An audit logger.
77+
*
78+
* @var \Drupal\os2web_audit\Service\Logger
79+
*/
80+
private Logger $auditLogger;
81+
7382
/**
7483
* Constructor.
7584
*
@@ -79,11 +88,19 @@ class FormsHelper {
7988
* Datalookup plugin manager.
8089
* @param \Drupal\Core\Routing\RouteMatchInterface $routeMatch
8190
* Route match service.
91+
* @param \Drupal\os2web_audit\Service\Logger $auditLogger
92+
* Audit logger.
8293
*/
83-
public function __construct(AuthProviderService $authProviderService, DataLookupManager $dataLookPluginManager, RouteMatchInterface $routeMatch) {
94+
public function __construct(
95+
AuthProviderService $authProviderService,
96+
DataLookupManager $dataLookPluginManager,
97+
RouteMatchInterface $routeMatch,
98+
Logger $auditLogger,
99+
) {
84100
$this->authProviderService = $authProviderService;
85101
$this->dataLookManager = $dataLookPluginManager;
86102
$this->routeMatch = $routeMatch;
103+
$this->auditLogger = $auditLogger;
87104
}
88105

89106
/**
@@ -126,6 +143,14 @@ public function retrieveCprLookupResult(FormStateInterface $form_state) {
126143
}
127144
}
128145

146+
// We need the auth provider for logging purposes.
147+
$authProviderPlugin = $this->getAuthProvider($form_state);
148+
149+
$userCpr = $authProviderPlugin->fetchValue('cpr');
150+
$lookedUpCpr = $cprLookupResult->getCpr();
151+
152+
$this->auditLogger->info('DataLookup', 'User with cpr ' . $userCpr . ' looked up cpr ' . $lookedUpCpr);
153+
129154
return $cprLookupResult;
130155
}
131156

@@ -196,7 +221,7 @@ public function lookupPersonData(FormStateInterface $form_state) {
196221
/**
197222
* Retrieves the CompanyLookupResult which is stored in form_state.
198223
*
199-
* If there is no CBVRLookupResult, it is requested and saved for future uses.
224+
* If there is no CVRLookupResult, it is requested and saved for future uses.
200225
*
201226
* @param \Drupal\Core\Form\FormStateInterface $form_state
202227
* Form state.
@@ -408,4 +433,31 @@ public function webformSubmissionPrepareForm(WebformSubmissionInterface $webform
408433
}
409434
}
410435

436+
/**
437+
* Get active auth provider plugin.
438+
*
439+
* @param \Drupal\Core\Form\FormStateInterface $form_state
440+
* Form state.
441+
*
442+
* @return \Drupal\os2web_nemlogin\Plugin\AuthProviderInterface
443+
* The active auth provider plugin.
444+
*
445+
* @throws \Drupal\Component\Plugin\Exception\PluginException
446+
*/
447+
private function getAuthProvider(FormStateInterface $form_state): AuthProviderInterface {
448+
/** @var \Drupal\webform\WebformSubmissionInterface Interface $webformSubmission */
449+
$webformSubmission = $form_state->getFormObject()->getEntity();
450+
/** @var \Drupal\webform\WebformInterface $webform */
451+
$webform = $webformSubmission->getWebform();
452+
$webformNemidSettings = $webform->getThirdPartySetting('os2forms', 'os2forms_nemid');
453+
454+
// Getting auth plugin ID override.
455+
$authPluginId = NULL;
456+
if (!empty($webformNemidSettings['session_type'])) {
457+
$authPluginId = $webformNemidSettings['session_type'];
458+
}
459+
460+
return ($authPluginId) ? $this->authProviderService->getPluginInstance($authPluginId) : $this->authProviderService->getActivePlugin();
461+
}
462+
411463
}

os2forms.install

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,12 @@ function _os2form_install_init_area_terms() {
222222
])->save();
223223
}
224224
}
225+
226+
/**
227+
* Implements hook_update_N().
228+
*
229+
* Enable os2web_audit module.
230+
*/
231+
function os2forms_update_103001() {
232+
\Drupal::service('module_installer')->install(['os2web_audit']);
233+
}

0 commit comments

Comments
 (0)