src/Security/Api/Authorization/Voter/SocialCounseling/RecordEntityValidationVoter.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Security\Api\Authorization\Voter\SocialCounseling;
  3. use App\Helper\Api\Entity\RequestDataContainer;
  4. use App\Security\Api\Authorization\Voter\AbstractCrudValidationVoter;
  5. use App\Security\Api\Authorization\VoterAttribute\SocialCounseling\RecordEntityVoterAttribute;
  6. use App\Validator\Api\Data\SocialCounseling\RecordEntityDataValidator;
  7. /**
  8.  * Validation voter.
  9.  *
  10.  * @package API
  11.  * @author fmt.hodzic
  12.  * @internal
  13.  */
  14. class RecordEntityValidationVoter extends AbstractCrudValidationVoter
  15. {
  16.     /**
  17.      * Constructor.
  18.      *
  19.      * @param RecordEntityDataValidator $validator The standard validator.
  20.      */
  21.     public function __construct(RecordEntityDataValidator $validator)
  22.     {
  23.         // prevent false-positive php:S1185
  24.         $this->validator $validator;
  25.         parent::__construct($validator);
  26.     }
  27.     /**
  28.      * Returns list of supported attributes.
  29.      *
  30.      * @return array
  31.      * @noinspection PhpClassConstantAccessedViaChildClassInspection
  32.      */
  33.     protected function getSupportedAttributes(): array
  34.     {
  35.         return [
  36.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_CREATE),
  37.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_DELETE),
  38.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_LIST),
  39.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_READ),
  40.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_READ_BY_EMPLOYEE_ID),
  41.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_UPDATE),
  42.             RecordEntityVoterAttribute::getAttribute(RecordEntityVoterAttribute::METHOD_ID_UPDATE_ACTIVE_STATUS)
  43.         ];
  44.     }
  45.     /**
  46.      * Validation check.
  47.      *
  48.      * @param RequestDataContainer $subject The request data object to validate.
  49.      */
  50.     protected function readByEmployeeId(RequestDataContainer $subject): void
  51.     {
  52.         $this->validator->validateInputReadByEmployeeId($subject->getInput());
  53.     }
  54. }