[ 'security' => '(is_granted("ROLE_ORGANIZATION_VIEW") or is_granted("ROLE_ORGANIZATION"))' // TODO: Comment je teste l'organisation sur une collection? ], 'post' ], itemOperations: [ 'get' => [ 'security' => '(is_granted("ROLE_ORGANIZATION_VIEW") or is_granted("ROLE_ORGANIZATION")) and object.getOrganization().getId() == user.getOrganization().getId()' ], 'put' => [ 'security' => 'is_granted("ROLE_ORGANIZATION") and object.getOrganization().getId() == user.getOrganization().getId()' ] ] )] #[ORM\Entity(repositoryClass: SubdomainRepository::class)] #[OrganizationDefaultValue(fieldName: "organization")] #[ApiFilter(SearchFilter::class, properties: ['subdomain' => 'exact'])] #[UniqueEntity('subdomain')] class Subdomain { #[ORM\Id] #[ORM\Column] #[ORM\GeneratedValue] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'subdomains')] private Organization $organization; #[ORM\Column(type: 'string', length: 60, unique: true, nullable: false)] #[Groups("subdomain")] private string $subdomain; #[ORM\Column(options: ['default' => false])] #[Groups("subdomain")] private bool $active = false; /** * @return int|null */ public function getId(): ?int { return $this->id; } /** * @param int|null $id */ public function setId(?int $id): void { $this->id = $id; } /** * @return Organization */ public function getOrganization(): Organization { return $this->organization; } /** * @param Organization $organization */ public function setOrganization(Organization $organization): void { $this->organization = $organization; } /** * @return string */ public function getSubdomain(): string { return $this->subdomain; } /** * @param string $subdomain */ public function setSubdomain(string $subdomain): void { $this->subdomain = $subdomain; } /** * @return bool */ public function isActive(): bool { return $this->active; } /** * @param bool $active */ public function setActive(bool $active): void { $this->active = $active; } }