123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?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;
- }
- /**
- * @param string $role
- *
- * @return Group
- */
- public function addRole($role)
- {
- if (!$this->hasRole($role)) {
- $this->roles[] = strtoupper($role);
- }
- return $this;
- }
- public function getId()
- {
- return $this->id;
- }
- public function getName()
- {
- return $this->name;
- }
- /**
- * @param string $role
- */
- public function hasRole($role)
- {
- return in_array(strtoupper($role), $this->roles, true);
- }
- public function getRoles()
- {
- return $this->roles;
- }
- /**
- * @param string $role
- *
- * @return Group
- */
- 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;
- }
- /**
- * @param string $name
- *
- * @return Group
- */
- public function setName($name)
- {
- $this->name = $name;
- return $this;
- }
- /**
- * @param array $roles
- *
- * @return Group
- */
- public function setRoles(array $roles)
- {
- $this->roles = $roles;
- return $this;
- }
- }
|