nineskeletor/src/Entity/Group.php

260 lines
5.0 KiB
PHP

<?php
namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity
* @ORM\Table(name="groupe")
* @ORM\HasLifecycleCallbacks()
* @ORM\Entity(repositoryClass="App\Repository\GroupRepository")
*
* @UniqueEntity(fields="label", message="Un group existe déjà avec ce label")
*/
class Group
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @Validator\Grouplabel()
* @Validator\Groupunique()
* @ORM\Column(type="string", length=250, unique=true)
*/
private $label;
/**
* @var string
*
* @ORM\Column(name="description", type="text", nullable=true)
*/
private $description;
/**
* @ORM\Column(type="string", length=250, nullable=true)
*/
private $email;
/**
* @ORM\Column(type="boolean", options={"default" : false})
*/
private $isopen;
/**
* @ORM\Column(type="boolean", options={"default" : false})
*/
private $isworkgroup;
/**
* @ORM\Column(type="string")
*/
private $apikey;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $ldapfilter;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $attributes;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $idexternal;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="ownergroups")
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
*/
private $owner;
/**
* @var ArrayCollection
* @var UserGroup
*
* @ORM\OneToMany(targetEntity="UserGroup", mappedBy="group", cascade={"persist"}, orphanRemoval=true)
*/
private $users;
public function __construct()
{
$this->users = new ArrayCollection();
}
// == CODE A NE PAS REGENERER
public function setId(int $id): self
{
$this->id = $id;
return $this;
}
// == FIN DU CODE A NE PAS REGENERER
public function getId(): ?int
{
return $this->id;
}
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = $label;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
public function isIsopen(): ?bool
{
return $this->isopen;
}
public function setIsopen(bool $isopen): self
{
$this->isopen = $isopen;
return $this;
}
public function isIsworkgroup(): ?bool
{
return $this->isworkgroup;
}
public function setIsworkgroup(bool $isworkgroup): self
{
$this->isworkgroup = $isworkgroup;
return $this;
}
public function getApikey(): ?string
{
return $this->apikey;
}
public function setApikey(string $apikey): self
{
$this->apikey = $apikey;
return $this;
}
public function getLdapfilter(): ?string
{
return $this->ldapfilter;
}
public function setLdapfilter(?string $ldapfilter): self
{
$this->ldapfilter = $ldapfilter;
return $this;
}
public function getAttributes(): ?string
{
return $this->attributes;
}
public function setAttributes(?string $attributes): self
{
$this->attributes = $attributes;
return $this;
}
public function getIdexternal(): ?string
{
return $this->idexternal;
}
public function setIdexternal(?string $idexternal): self
{
$this->idexternal = $idexternal;
return $this;
}
public function getOwner(): ?User
{
return $this->owner;
}
public function setOwner(?User $owner): self
{
$this->owner = $owner;
return $this;
}
/**
* @return Collection<int, UserGroup>
*/
public function getUsers(): Collection
{
return $this->users;
}
public function addUser(UserGroup $user): self
{
if (!$this->users->contains($user)) {
$this->users[] = $user;
$user->setGroup($this);
}
return $this;
}
public function removeUser(UserGroup $user): self
{
if ($this->users->removeElement($user)) {
// set the owning side to null (unless already changed)
if ($user->getGroup() === $this) {
$user->setGroup(null);
}
}
return $this;
}
}