OrganizationArticle.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Organization;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Repository\Organization\OrganizationArticleRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Serializer\Annotation\Groups;
  8. /**
  9. * Fait le lien entre une Organization et un coup de projecteur
  10. */
  11. #[ApiResource(
  12. collectionOperations: [
  13. "get" => ["security" => "is_granted('ROLE_ORGANIZATION_VIEW')"]
  14. ],
  15. itemOperations: [
  16. 'get' => [
  17. 'security' => 'is_granted("ROLE_ORGANIZATION_VIEW" and object.getOrganization().getId() == user.getOrganization().getId()'
  18. ]
  19. ],
  20. attributes: ["security" => "is_granted('ROLE_ORGANIZATION')"]
  21. )]
  22. #[ORM\Entity(repositoryClass: OrganizationArticleRepository::class)]
  23. class OrganizationArticle
  24. {
  25. #[ORM\Id]
  26. #[ORM\Column]
  27. #[ORM\GeneratedValue]
  28. private ?int $id = null;
  29. #[ORM\ManyToOne(inversedBy: 'organizationArticles')]
  30. #[ORM\JoinColumn(nullable: true)]
  31. private Organization $organization;
  32. #[ORM\Column(length: 255)]
  33. private string $title;
  34. #[ORM\Column(length: 255)]
  35. private string $link;
  36. #[ORM\Column(type: 'date', nullable: true)]
  37. private ?\DateTimeInterface $date = null;
  38. public function getId(): ?int
  39. {
  40. return $this->id;
  41. }
  42. public function getOrganization(): ?Organization
  43. {
  44. return $this->organization;
  45. }
  46. public function setOrganization(?Organization $organization): self
  47. {
  48. $this->organization = $organization;
  49. return $this;
  50. }
  51. public function getTitle(): ?string
  52. {
  53. return $this->title;
  54. }
  55. public function setTitle(?string $title): self
  56. {
  57. $this->title = $title;
  58. return $this;
  59. }
  60. public function getLink(): ?string
  61. {
  62. return $this->link;
  63. }
  64. public function setLink(?string $link): self
  65. {
  66. $this->link = $link;
  67. return $this;
  68. }
  69. public function getDate(): ?\DateTimeInterface {
  70. return $this->date;
  71. }
  72. public function setDate(?\DateTime $date = null): self {
  73. $this->date = $date;
  74. return $this;
  75. }
  76. }