You are here

User.php in Audit Log 8

Same filename and directory in other branches
  1. 8.2 src/EventSubscriber/User.php

File

src/EventSubscriber/User.php
View source
<?php

namespace Drupal\audit_log\EventSubscriber;

use Drupal\audit_log\AuditLogEventInterface;
use Drupal\user\UserInterface;

/**
 * Processes User entity events.
 *
 * @package Drupal\audit_log\EventSubscriber
 */
class User implements EventSubscriberInterface {

  /**
   * {@inheritdoc}
   */
  public function reactTo(AuditLogEventInterface $event) {
    $entity = $event
      ->getEntity();
    if ($entity
      ->getEntityTypeId() != 'user') {
      return FALSE;
    }
    $event_type = $event
      ->getEventType();
    $args = [
      '@name' => $entity
        ->label(),
    ];
    $current_state = $entity->status->value ? 'active' : 'blocked';
    $original_state = NULL;
    if (isset($entity->original) && $entity->original instanceof UserInterface) {
      $original_state = $entity->original->status->value ? 'active' : 'blocked';
    }
    if ($event_type == 'insert') {
      $event
        ->setMessage(t('@name was created.', $args))
        ->setPreviousState(NULL)
        ->setCurrentState($current_state);
      return TRUE;
    }
    if ($event_type == 'update') {
      $event
        ->setMessage(t('@name was updated.', $args))
        ->setPreviousState($original_state)
        ->setCurrentState($current_state);
      return TRUE;
    }
    if ($event_type == 'delete') {
      $event
        ->setMessage(t('@name was updated.', $args))
        ->setPreviousState($original_state)
        ->setCurrentState(NULL);
      return TRUE;
    }
    return FALSE;
  }

}

Classes

Namesort descending Description
User Processes User entity events.