AdminAccess.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. declare (strict_types=1);
  3. namespace App\ApiResources\Access;
  4. use ApiPlatform\Metadata\Put;
  5. use ApiPlatform\Metadata\Get;
  6. use ApiPlatform\Metadata\ApiResource;
  7. use ApiPlatform\Metadata\ApiProperty;
  8. use App\ApiResources\ApiResourcesInterface;
  9. use App\State\Processor\Access\AdminAccessProcessor;
  10. use App\State\Provider\Access\AdminAccessProvider;
  11. use JetBrains\PhpStorm\Pure;
  12. use Symfony\Component\Process\Process;
  13. use Symfony\Component\Validator\Constraints as Assert;
  14. /**
  15. * Classe resource qui contient les champs d'un compte admin
  16. */
  17. #[ApiResource(
  18. operations: [
  19. new Get(
  20. uriTemplate: '/admin-access/{id}',
  21. defaults: ['id' => 0]
  22. ),
  23. new Put(
  24. uriTemplate: '/admin-access/{id}',
  25. defaults: ['id' => 0],
  26. security: '(is_granted("ROLE_ADMIN_CORE") and object.getOrganizationId() == user.getOrganization().getId() )'
  27. )
  28. ],
  29. provider: AdminAccessProvider::class,
  30. processor : AdminAccessProcessor::class
  31. )]
  32. class AdminAccess implements ApiResourcesInterface
  33. {
  34. #[ApiProperty(identifier: true)]
  35. public ?int $id = null;
  36. private int $organizationId;
  37. private ?string $username = null;
  38. #[Assert\Email(message: 'invalid-email-format', mode: 'strict')]
  39. private ?string $email = null;
  40. public function getId(): ?int
  41. {
  42. return $this->id;
  43. }
  44. public function setId(?int $id): self
  45. {
  46. $this->id = $id;
  47. return $this;
  48. }
  49. public function getOrganizationId(): ?int
  50. {
  51. return $this->organizationId;
  52. }
  53. public function setOrganizationId(?int $organizationId): self
  54. {
  55. $this->organizationId = $organizationId;
  56. return $this;
  57. }
  58. public function getUsername(): ?string
  59. {
  60. return $this->username;
  61. }
  62. public function setUsername(?string $username): self
  63. {
  64. $this->username = $username;
  65. return $this;
  66. }
  67. public function getEmail(): ?string
  68. {
  69. return $this->email;
  70. }
  71. public function setEmail(?string $email): self
  72. {
  73. $this->email = $email;
  74. return $this;
  75. }
  76. }