72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			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;
 | |
|     }
 | |
| }
 |