src/Security/Api/Authorization/Voter/CoreModule/SessionValidationVoter.php line 16

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\AbstractCrudValidationVoter;
  5. use App\Security\Api\Authorization\VoterAttribute\CoreModule\SessionVoterAttribute;
  6. use App\Validator\Api\Data\CoreModule\UserDataValidator;
  7. /**
  8.  * Validation voter.
  9.  *
  10.  * @package API
  11.  * @internal
  12.  */
  13. class SessionValidationVoter extends AbstractCrudValidationVoter
  14. {
  15.     /**
  16.      * User validator interface.
  17.      *
  18.      * @var UserDataValidator
  19.      */
  20.     protected UserDataValidator $userDataValidator;
  21.     /**
  22.      * Constructor.
  23.      *
  24.      * @param UserDataValidator $validator The standard validator.
  25.      * @param UserDataValidator $userDataValidator User validator.
  26.      */
  27.     public function __construct(UserDataValidator $validatorUserDataValidator $userDataValidator)
  28.     {
  29.         // prevent false-positive php:S1185
  30.         $this->validator $validator;
  31.         parent::__construct($validator);
  32.         $this->userDataValidator $userDataValidator;
  33.     }
  34.     /**
  35.      * Returns list of supported attributes.
  36.      *
  37.      * @return array
  38.      */
  39.     protected function getSupportedAttributes(): array
  40.     {
  41.         return [
  42.             SessionVoterAttribute::getAttribute(SessionVoterAttribute::METHOD_ID_READ_USER_DATA),
  43.             SessionVoterAttribute::getAttribute(SessionVoterAttribute::METHOD_ID_UPDATE_USER_BRIGHTNESS_MODE),
  44.             SessionVoterAttribute::getAttribute(SessionVoterAttribute::METHOD_ID_UPDATE_USER_LANGUAGE),
  45.             SessionVoterAttribute::getAttribute(SessionVoterAttribute::METHOD_ID_UPDATE_USER_PASSWORD)
  46.         ];
  47.     }
  48.     /**
  49.      * Validation check.
  50.      *
  51.      * @param RequestDataContainer $subject The request data object to validate.
  52.      */
  53.     protected function readUserData(RequestDataContainer $subject): void
  54.     {
  55.         // no op
  56.     }
  57.     /**
  58.      * Validation check.
  59.      *
  60.      * @param RequestDataContainer $subject The request data object to validate.
  61.      */
  62.     protected function updateUserBrightnessMode(RequestDataContainer $subject): void
  63.     {
  64.         $this->userDataValidator->validateInputUpdateUserBrightnessMode($subject->getInput());
  65.     }
  66.     /**
  67.      * Validation check.
  68.      *
  69.      * @param RequestDataContainer $subject The request data object to validate.
  70.      */
  71.     protected function updateUserLanguage(RequestDataContainer $subject): void
  72.     {
  73.         $this->userDataValidator->validateInputUpdateUserLanguage($subject->getInput());
  74.     }
  75.     /**
  76.      * Validation check.
  77.      *
  78.      * @param RequestDataContainer $subject The request data object to validate.
  79.      */
  80.     protected function updateUserPassword(RequestDataContainer $subject): void
  81.     {
  82.         $this->userDataValidator->validateInputUpdateUserPassword($subject->getInput());
  83.     }
  84. }