<?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
{
protected $id;
protected $name;
protected $roles;
public function __construct($name, $roles = array())
{
$this->name = $name;
$this->roles = $roles;
}
public function addRole($role)
{
if (!$this->hasRole($role)) {
$this->roles[] = strtoupper($role);
}
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function hasRole($role)
{
return in_array(strtoupper($role), $this->roles, true);
}
public function getRoles()
{
return $this->roles;
}
public function removeRole($role)
{
if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
unset($this->roles[$key]);
$this->roles = array_values($this->roles);
}
}
public function setName($name)
{
$this->name = $name;
}
public function setRoles(array $roles)
{
$this->roles = $roles;
}
}