Security update for permissions_by_term
[yaffs-website] / vendor / drupal / console / src / Generator / AuthenticationProviderGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Generator\AuthenticationProviderGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
12
13 class AuthenticationProviderGenerator extends Generator
14 {
15     /**
16      * @var Manager
17      */
18     protected $extensionManager;
19
20     /**
21      * AuthenticationProviderGenerator constructor.
22      *
23      * @param Manager $extensionManager
24      */
25     public function __construct(
26         Manager $extensionManager
27     ) {
28         $this->extensionManager = $extensionManager;
29     }
30
31     /**
32      * Generator Plugin Block.
33      *
34      * @param $module
35      * @param $class
36      * @param $provider_id
37      */
38     public function generate($module, $class, $provider_id)
39     {
40         $parameters = [
41           'module' => $module,
42           'class' => $class,
43         ];
44
45         $this->renderFile(
46             'module/src/Authentication/Provider/authentication-provider.php.twig',
47             $this->extensionManager->getModule($module)->getAuthenticationPath('Provider'). '/' . $class . '.php',
48             $parameters
49         );
50
51         $parameters = [
52           'module' => $module,
53           'class' => $class,
54           'class_path' => sprintf('Drupal\%s\Authentication\Provider\%s', $module, $class),
55           'name' => 'authentication.'.$module,
56           'services' => [
57             ['name' => 'config.factory'],
58             ['name' => 'entity_type.manager'],
59           ],
60           'file_exists' => file_exists($this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml'),
61           'tags' => [
62             'name' => 'authentication_provider',
63             'provider_id' => $provider_id,
64             'priority' => '100',
65           ],
66         ];
67
68         $this->renderFile(
69             'module/services.yml.twig',
70             $this->extensionManager->getModule($module)->getPath() . '/' . $module . '.services.yml',
71             $parameters,
72             FILE_APPEND
73         );
74     }
75 }