src/Security/Api/Authorization/Voter/CoreModule/SettingsValidationVoter.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Security\Api\Authorization\Voter\CoreModule;
  3. use App\Helper\Api\Entity\RequestDataContainer;
  4. use App\Security\Api\Authorization\Voter\AbstractValidationVoter;
  5. use App\Security\Api\Authorization\VoterAttribute\CoreModule\SettingsVoterAttribute;
  6. use App\Validator\Api\Data\CoreModule\SettingsDataValidator;
  7. use App\Validator\Constraints\Api\CoreModule\Setting\AbstractSettingsGroupIdCompound;
  8. /**
  9.  * Validation voter.
  10.  *
  11.  * @package API
  12.  * @internal
  13.  */
  14. class SettingsValidationVoter extends AbstractValidationVoter
  15. {
  16.     /**
  17.      * Constructor.
  18.      *
  19.      * @param SettingsDataValidator $validator The standard validator.
  20.      */
  21.     public function __construct(SettingsDataValidator $validator)
  22.     {
  23.         $this->validator $validator;
  24.     }
  25.     /**
  26.      * Returns list of supported attributes.
  27.      *
  28.      * @return array
  29.      */
  30.     protected function getSupportedAttributes(): array
  31.     {
  32.         return [
  33.             SettingsVoterAttribute::getAttribute(SettingsVoterAttribute::METHOD_ID_READ_CORE_MODULE),
  34.             SettingsVoterAttribute::getAttribute(SettingsVoterAttribute::METHOD_ID_READ_JOB_LAB_KO_CRITERIA),
  35.             SettingsVoterAttribute::getAttribute(SettingsVoterAttribute::METHOD_ID_READ_TRADE_ASSOCIATION),
  36.             SettingsVoterAttribute::getAttribute(SettingsVoterAttribute::METHOD_ID_UPDATE_CORE_MODULE),
  37.             SettingsVoterAttribute::getAttribute(SettingsVoterAttribute::METHOD_ID_UPDATE_JOB_LAB_KO_CRITERIA),
  38.             SettingsVoterAttribute::getAttribute(SettingsVoterAttribute::METHOD_ID_UPDATE_TRADE_ASSOCIATION)
  39.         ];
  40.     }
  41.     /**
  42.      * Validation check.
  43.      *
  44.      * @param RequestDataContainer $subject The request data object to validate.
  45.      */
  46.     protected function readCoreModule(RequestDataContainer $subject): void
  47.     {
  48.         // no op
  49.     }
  50.     /**
  51.      * Validation check.
  52.      *
  53.      * @param RequestDataContainer $subject The request data object to validate.
  54.      */
  55.     protected function readJobLabKOCriteria(RequestDataContainer $subject): void
  56.     {
  57.         // no op
  58.     }
  59.     /**
  60.      * Validation check.
  61.      *
  62.      * @param RequestDataContainer $subject The request data object to validate.
  63.      */
  64.     protected function readTradeAssociation(RequestDataContainer $subject): void
  65.     {
  66.         // no op
  67.     }
  68.     /**
  69.      * Validation check.
  70.      *
  71.      * @param RequestDataContainer $subject The request data object to validate.
  72.      */
  73.     protected function updateCoreModule(RequestDataContainer $subject): void
  74.     {
  75.         $this->validator->validateSettingsGroup(
  76.             AbstractSettingsGroupIdCompound::CORE_MODULE_SETTINGS_GROUP_ID,
  77.             $subject->getInput()
  78.         );
  79.     }
  80.     /**
  81.      * Validation check.
  82.      *
  83.      * @param RequestDataContainer $subject The request data object to validate.
  84.      */
  85.     protected function updateJobLabKOCriteria(RequestDataContainer $subject): void
  86.     {
  87.         $this->validator->validateSettingsGroup(
  88.             AbstractSettingsGroupIdCompound::JOB_LAB_KO_CRITERIA_SETTINGS_GROUP_ID,
  89.             $subject->getInput()
  90.         );
  91.     }
  92.     /**
  93.      * Validation check.
  94.      *
  95.      * @param RequestDataContainer $subject The request data object to validate.
  96.      */
  97.     protected function updateTradeAssociation(RequestDataContainer $subject): void
  98.     {
  99.         $this->validator->validateSettingsGroup(
  100.             AbstractSettingsGroupIdCompound::TRADE_ASSOCIATION_SETTINGS_GROUP_ID,
  101.             $subject->getInput()
  102.         );
  103.     }
  104. }