Spaces:
No application file
No application file
| namespace Mautic\ApiBundle\Security\Permissions; | |
| use Mautic\CoreBundle\Security\Permissions\AbstractPermissions; | |
| use Mautic\UserBundle\Form\Type\PermissionListType; | |
| use Symfony\Component\Form\FormBuilderInterface; | |
| class ApiPermissions extends AbstractPermissions | |
| { | |
| public function __construct($params) | |
| { | |
| parent::__construct($params); | |
| $this->permissions = [ | |
| 'access' => [ | |
| 'full' => 1024, | |
| ], | |
| ]; | |
| $this->addStandardPermissions('clients', false); | |
| } | |
| public function getName(): string | |
| { | |
| return 'api'; | |
| } | |
| public function buildForm(FormBuilderInterface &$builder, array $options, array $data): void | |
| { | |
| $builder->add( | |
| 'api:access', | |
| PermissionListType::class, | |
| [ | |
| 'choices' => [ | |
| 'mautic.api.permissions.granted' => 'full', | |
| ], | |
| 'label' => 'mautic.api.permissions.apiaccess', | |
| 'data' => (!empty($data['access']) ? $data['access'] : []), | |
| 'bundle' => 'api', | |
| 'level' => 'access', | |
| ] | |
| ); | |
| $this->addStandardFormFields('api', 'clients', $builder, $data, false); | |
| } | |
| public function getValue($name, $perm) | |
| { | |
| // ensure api is enabled system wide | |
| if (empty($this->params['api_enabled'])) { | |
| return 0; | |
| } | |
| return parent::getValue($name, $perm); | |
| } | |
| public function isEnabled(): bool | |
| { | |
| return !empty($this->params['api_enabled']); | |
| } | |
| protected function getSynonym($name, $level) | |
| { | |
| if ('access' == $name && 'granted' == $level) { | |
| return [$name, 'full']; | |
| } | |
| return parent::getSynonym($name, $level); | |
| } | |
| } | |