Skip to content

Commit

Permalink
ITKDev: Added user audit module
Browse files Browse the repository at this point in the history
  • Loading branch information
cableman committed May 3, 2024
1 parent d20b087 commit 45ec5fd
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

- First version of the module
- Added submodule to log user CUD events.

[Unreleased]: https://github.com/OS2web/os2web_audit/compare/develop...HEAD
7 changes: 7 additions & 0 deletions modules/os2web_audit_user/os2web_audit_user.info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: "OS2web Audit Users"
description: "Logs CUD events for users"
type: module
core_version_requirement: ^8 || ^9 || ^10
dependencies:
- os2web_audit:os2web_audit

63 changes: 63 additions & 0 deletions modules/os2web_audit_user/os2web_audit_user.module
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

use \Drupal\Core\Entity\EntityInterface;
use \Drupal\Core\Session\AccountInterface;
use \Drupal\user\UserInterface;

/**
* Implements hook_ENTITY_TYPE_insert().
*/
function os2web_audit_user_user_insert(EntityInterface $entity): void {
/** @var \Drupal\user\Entity\User $entity */
$msg = sprintf('User created with rolles: %s', implode(', ', $entity->getRoles()));
os2web_audit_user_log($msg, $entity->getEmail());
}

/**
* Implements hook_ENTITY_TYPE_update().
*/
function os2web_audit_user_user_update(EntityInterface $entity): void {
/** @var \Drupal\user\Entity\User $entity */
$msg = sprintf('User updated with rolles: %s', implode(', ', $entity->getRoles()));
os2web_audit_user_log($msg, $entity->getEmail());
}

/**
* Implements hook_ENTITY_TYPE_delete().
*/
function os2web_audit_user_user_delete(EntityInterface $entity): void {
/** @var \Drupal\user\Entity\User $entity */
os2web_audit_user_log('User deleted', $entity->getEmail());
}

/**
* Implements hook_user_login().
*/
function os2web_audit_user_user_login(UserInterface $account): void {
os2web_audit_user_log('User logged in', $account->getEmail());
}

/**
* Implements hook_user_logout().
*/
function os2web_audit_user_user_logout(AccountInterface $account): void {
os2web_audit_user_log('User logged out', $account->getEmail());
}

/**
* Simple logger wrapper.
*
* @param string $message
* Message to log.
* @param string $mail
* Identify users by e-mail address.
* @param array $metadata
* Optional metadata to set.
*/
function os2web_audit_user_log(string $message, string $mail, array $metadata = []): void {
/** @var \Drupal\os2web_audit\Service\Logger $logger */
$logger = \Drupal::service('os2web_audit.logger');

$metadata['userId'] = $mail;
$logger->info('User', $message, FALSE, $metadata);
}

0 comments on commit 45ec5fd

Please sign in to comment.