user_email_verification-8.x-1.0/src/Plugin/ECA/Event/UserEmailVerificationEvent.php

src/Plugin/ECA/Event/UserEmailVerificationEvent.php
<?php

namespace Drupal\user_email_verification\Plugin\ECA\Event;

use Drupal\eca\Attributes\Token;
use Drupal\eca\Event\Tag;
use Drupal\eca\Plugin\ECA\Event\EventBase;
use Drupal\user\UserInterface;
use Drupal\user_email_verification\Event\UserEmailVerificationEcaBaseEvent;
use Drupal\user_email_verification\Event\UserEmailVerificationEcaBlockAccount;
use Drupal\user_email_verification\Event\UserEmailVerificationEcaCreated;
use Drupal\user_email_verification\Event\UserEmailVerificationEcaDeleteAccount;
use Drupal\user_email_verification\Event\UserEmailVerificationEcaDone;
use Drupal\user_email_verification\Event\UserEmailVerificationEcaExtendedDone;
use Drupal\user_email_verification\Event\UserEmailVerificationEvents;

/**
 * Plugin implementation of ECA Events for User Email Verification.
 *
 * @EcaEvent(
 *   id = "user_email_verification_events",
 *   deriver = "Drupal\user_email_verification\Plugin\ECA\Event\UserEmailVerificationEventDeriver",
 *   eca_version_introduced = "1.0.0"
 * )
 */
class UserEmailVerificationEvent extends EventBase {

  /**
   * {@inheritdoc}
   */
  public static function definitions(): array {
    return [
      'user_email_verification_done' => [
        'label' => 'User Email was verified',
        'event_name' => UserEmailVerificationEvents::VERIFY,
        'event_class' => UserEmailVerificationEcaDone::class,
        'tags' => Tag::WRITE | Tag::PERSISTENT | Tag::AFTER,
      ],
      'user_email_verification_extended_done' => [
        'label' => 'User Email was verified after an extended period',
        'event_name' => UserEmailVerificationEvents::VERIFY_EXTENDED,
        'event_class' => UserEmailVerificationEcaExtendedDone::class,
        'tags' => Tag::WRITE | Tag::PERSISTENT | Tag::AFTER,
      ],
      'user_email_verification_created' => [
        'label' => 'User account was created and Email verification requested',
        'event_name' => UserEmailVerificationEvents::CREATE_VERIFICATION,
        'event_class' => UserEmailVerificationEcaCreated::class,
        'tags' => Tag::WRITE | Tag::PERSISTENT | Tag::AFTER,
      ],
      'user_email_verification_block_account' => [
        'label' => 'Blocking a user account',
        'event_name' => UserEmailVerificationEvents::BLOCK_ACCOUNT,
        'event_class' => UserEmailVerificationEcaBlockAccount::class,
        'tags' => Tag::WRITE | Tag::PERSISTENT | Tag::AFTER,
      ],
      'user_email_verification_delete_account' => [
        'label' => 'Deleting a user account',
        'event_name' => UserEmailVerificationEvents::DELETE_ACCOUNT,
        'event_class' => UserEmailVerificationEcaDeleteAccount::class,
        'tags' => Tag::CONTENT | Tag::WRITE | Tag::PERSISTENT | Tag::AFTER,
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  #[Token(
    name: 'account',
    description: 'The user entity of the event.',
    classes: [UserEmailVerificationEcaBaseEvent::class],
    aliases: ['entity'],
  )]
  public function getData(string $key): mixed {

    if (in_array($key, ['entity', 'account'], TRUE) && $this->event instanceof UserEmailVerificationEcaBaseEvent) {
      $user = $this->event->getUser();

      if ($user instanceof UserInterface) {
        return $user;
      }
    }

    return parent::getData($key);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc