AdminAccess.php 2.0 KB

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