mailjet-8.x-2.7/src/Access/MailjetConfigurationAccessCheck.php

src/Access/MailjetConfigurationAccessCheck.php
<?php

namespace Drupal\mailjet\Access;

use Drupal\Core\Access\AccessCheckInterface;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Session\AccountInterface;
use Symfony\Component\Routing\Route;

/**
 * Checks access for displaying configuration Mailjet pages.
 */
class MailjetConfigurationAccessCheck implements AccessCheckInterface
{
  protected $currentUser;

  public function __construct(AccountInterface $current_user) {
    $this->currentUser = $current_user;
  }

  /**
   * Access check for Mailjet module configuration.
   * Ensures a Mailjet API keys has been provided.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   */
  public function access(AccountInterface $account) {
    global $base_url;
    $config_mailjet = \Drupal::config('mailjet.settings');

    $user = \Drupal::currentUser();

    // Check for permission.
    if ($user->hasPermission('administer mailjet configuration') == TRUE) {
      if (
            !empty($config_mailjet->get('mailjet_active'))
            && !empty($config_mailjet->get('mailjet_username'))
            && !empty($config_mailjet->get('mailjet_password'))
        ) {
        return AccessResult::allowed();
      }

      if ($_SERVER["REQUEST_URI"] !== '/admin/config/system/mailjet/api') {
        \Drupal::messenger()->addMessage(t('You need to add your MailJet API details before you can continue! Enter your Mailjet Api keys <a href="' . $base_url . '/admin/config/system/mailjet/api">here.</a>'), 'warning');
      }
      return AccessResult::allowed();
    }

    return AccessResult::forbidden();
  }

  /**
   *
   */
  public function applies(Route $route) {
    return $route->hasRequirement('_mailjet_access_check') && $route->getRequirement('_mailjet_access_check') == 'TRUE';
  }

}

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

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