5 * Contains Drupal\Console\Command\Generate\PermissionCommand.
8 namespace Drupal\Console\Command\Generate;
10 use Symfony\Component\Console\Input\InputInterface;
11 use Symfony\Component\Console\Input\InputOption;
12 use Symfony\Component\Console\Output\OutputInterface;
13 use Symfony\Component\Console\Command\Command;
14 use Drupal\Console\Command\Shared\ModuleTrait;
15 use Drupal\Console\Command\Shared\PermissionTrait;
16 use Drupal\Console\Generator\PermissionGenerator;
17 use Drupal\Console\Command\Shared\ConfirmationTrait;
18 use Drupal\Console\Core\Command\Shared\CommandTrait;
19 use Drupal\Console\Core\Style\DrupalStyle;
20 use Drupal\Console\Extension\Manager;
21 use Drupal\Console\Core\Utils\StringConverter;
23 class PermissionCommand extends Command
28 use ConfirmationTrait;
33 protected $extensionManager;
36 * @var StringConverter
38 protected $stringConverter;
41 * @var PermissionGenerator;
46 * PermissionCommand constructor.
48 * @param Manager $extensionManager
49 * @param StringConverter $stringConverter
51 public function __construct(
52 Manager $extensionManager,
53 StringConverter $stringConverter,
54 PermissionGenerator $permissionGenerator
56 $this->extensionManager = $extensionManager;
57 $this->stringConverter = $stringConverter;
58 $this->generator = $permissionGenerator;
59 parent::__construct();
65 protected function configure()
68 ->setName('generate:permissions')
69 ->setDescription($this->trans('commands.generate.permission.description'))
70 ->setHelp($this->trans('commands.generate.permission.help'))
74 InputOption::VALUE_REQUIRED,
75 $this->trans('commands.common.options.module')
80 InputOption::VALUE_OPTIONAL,
81 $this->trans('commands.common.options.permissions')
88 protected function execute(InputInterface $input, OutputInterface $output)
90 $module = $input->getOption('module');
91 $permissions = $input->getOption('permissions');
92 $learning = $input->hasOption('learning');
95 $this->generator->generate($module, $permissions, $learning);
101 protected function interact(InputInterface $input, OutputInterface $output)
103 $io = new DrupalStyle($input, $output);
106 $module = $input->getOption('module');
108 // @see Drupal\Console\Command\Shared\ModuleTrait::moduleQuestion
109 $module = $this->moduleQuestion($io);
110 $input->setOption('module', $module);
113 // --permissions option
114 $permissions = $input->getOption('permissions');
116 // @see \Drupal\Console\Command\Shared\PermissionTrait::permissionQuestion
117 $permissions = $this->permissionQuestion($io);
118 $input->setOption('permissions', $permissions);