Files
2025-04-10 12:24:57 +02:00

123 lines
2.0 KiB
PHP

<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FOS\UserBundle\Model;
/**
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
*/
abstract class Group implements GroupInterface
{
/**
* @var mixed
*/
protected $id;
/**
* @var string
*/
protected $name;
/**
* @var array
*/
protected $roles;
/**
* Group constructor.
*
* @param string $name
* @param array $roles
*/
public function __construct($name, $roles = array())
{
$this->name = $name;
$this->roles = $roles;
}
/**
* {@inheritdoc}
*/
public function addRole($role)
{
if (!$this->hasRole($role)) {
$this->roles[] = strtoupper($role);
}
return $this;
}
/**
* {@inheritdoc}
*/
public function getId()
{
return $this->id;
}
/**
* {@inheritdoc}
*/
public function getName()
{
return $this->name;
}
/**
* {@inheritdoc}
*/
public function hasRole($role)
{
return in_array(strtoupper($role), $this->roles, true);
}
/**
* {@inheritdoc}
*/
public function getRoles()
{
return $this->roles;
}
/**
* {@inheritdoc}
*/
public function removeRole($role)
{
if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
unset($this->roles[$key]);
$this->roles = array_values($this->roles);
}
return $this;
}
/**
* {@inheritdoc}
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* {@inheritdoc}
*/
public function setRoles(array $roles)
{
$this->roles = $roles;
return $this;
}
}