ogcore/src/Entity/UserGroup.php

72 lines
1.6 KiB
PHP

<?php
namespace App\Entity;
use App\Repository\UserGroupRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
#[ORM\Entity(repositoryClass: UserGroupRepository::class)]
#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_NAME', fields: ['name'])]
#[UniqueEntity(fields: ['name'], message: 'There is already an role with this name')]
class UserGroup extends AbstractEntity
{
use NameableTrait;
use ToggleableTrait;
#[ORM\Column(type: Types::JSON)]
private array $permissions = [];
/**
* @var Collection<int, User>
*/
#[ORM\ManyToMany(targetEntity: User::class, mappedBy: 'userGroups')]
private Collection $users;
public function __construct()
{
parent::__construct();
$this->users = new ArrayCollection();
}
public function getPermissions(): array
{
return $this->permissions;
}
public function setPermissions(array $permissions): static
{
$this->permissions = $permissions;
return $this;
}
/**
* @return Collection<int, User>
*/
public function getUsers(): Collection
{
return $this->users;
}
public function addUser(User $user): static
{
if (!$this->users->contains($user)) {
$this->users->add($user);
}
return $this;
}
public function removeUser(User $user): static
{
$this->users->removeElement($user);
return $this;
}
}