3 namespace Drupal\ban\Plugin\migrate\destination;
5 use Drupal\ban\BanIpManagerInterface;
6 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
7 use Drupal\migrate\Plugin\MigrationInterface;
8 use Drupal\migrate\Plugin\migrate\destination\DestinationBase;
9 use Drupal\migrate\Row;
10 use Symfony\Component\DependencyInjection\ContainerInterface;
13 * Destination for blocked IP addresses.
15 * @MigrateDestination(
19 class BlockedIP extends DestinationBase implements ContainerFactoryPluginInterface {
24 * @var \Drupal\ban\BanIpManagerInterface
26 protected $banManager;
29 * Constructs a BlockedIP object.
31 * @param array $configuration
32 * Plugin configuration.
33 * @param string $plugin_id
35 * @param mixed $plugin_definition
36 * The plugin definiiton.
37 * @param \Drupal\migrate\Plugin\MigrationInterface $migration
38 * The current migration.
39 * @param \Drupal\ban\BanIpManagerInterface $ban_manager
40 * The IP manager service.
42 public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, BanIpManagerInterface $ban_manager) {
43 parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);
44 $this->banManager = $ban_manager;
50 public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
56 $container->get('ban.ip_manager')
63 public function getIds() {
64 return ['ip' => ['type' => 'string']];
70 public function fields(MigrationInterface $migration = NULL) {
72 'ip' => $this->t('The blocked IP address.'),
79 public function import(Row $row, array $old_destination_id_values = []) {
80 $this->banManager->banIp($row->getDestinationProperty('ip'));