forked from hechoendrupal/drupal-console
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGeneratorPermissionCommand.php
More file actions
87 lines (76 loc) · 2.64 KB
/
Copy pathGeneratorPermissionCommand.php
File metadata and controls
87 lines (76 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
/**
* @file
* Contains Drupal\AppConsole\Command\GeneratorPermissionCommand.
*/
namespace Drupal\AppConsole\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Drupal\AppConsole\Command\Helper\ModuleTrait;
use Drupal\AppConsole\Command\Helper\PermissionTrait;
use Drupal\AppConsole\Generator\PermissionGenerator;
use Drupal\AppConsole\Command\Helper\ConfirmationTrait;
class GeneratorPermissionCommand extends GeneratorCommand
{
use ModuleTrait;
use PermissionTrait;
use ConfirmationTrait;
/**
* {@inheritdoc}
*/
protected function configure()
{
$this
->setName('generate:permissions')
->setDescription($this->trans('commands.generate.permission.description'))
->setHelp($this->trans('commands.generate.permission.help'))
->addOption('module', '', InputOption::VALUE_REQUIRED,
$this->trans('commands.common.options.module'))
->addOption('permissions', '', InputOption::VALUE_OPTIONAL,
$this->trans('commands.common.options.permissions'));
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$module = $input->getOption('module');
$permissions = $input->getOption('permissions');
$learning = false;
if ($input->hasOption('learning')) {
$learning = $input->getOption('learning');
}
$generator = $this->getGenerator();
$generator->setLearning($learning);
$generator->generate($module, $permissions);
}
/**
* {@inheritdoc}
*/
protected function interact(InputInterface $input, OutputInterface $output)
{
$dialog = $this->getDialogHelper();
// --module option
$module = $input->getOption('module');
if (!$module) {
// @see Drupal\AppConsole\Command\Helper\ModuleTrait::moduleQuestion
$module = $this->moduleQuestion($output, $dialog);
}
$input->setOption('module', $module);
// --permissions option
$permissions = $input->getOption('permissions');
if (!$permissions) {
// @see \Drupal\AppConsole\Command\Helper\PermissionTrait::permissionQuestion
$permissions = $this->permissionQuestion($output, $dialog);
}
$input->setOption('permissions', $permissions);
}
/**
* @return \Drupal\AppConsole\Generator\PermissionGenerator.
*/
protected function createGenerator()
{
return new PermissionGenerator();
}
}