name; } /** * Set the name of the role * * @param string $name * * @return $this */ public function setName($name) { $this->name = $name; return $this; } /** * Add a permission to the role * * @param string $permission * * @return $this */ public function addPermission($permission) { $this->permissions[$permission] = $permission; return $this; } /** * Get the permissions of the role * * @return string[] */ public function getPermissions() { return $this->permissions; } /** * Add a restriction to the role * * @param string $name * @param string $restriction * * @return $this */ public function addRestriction($name, $restriction) { if (! isset($this->restrictions[$name])) { $this->restrictions[$name] = array(); } $this->restrictions[$name][] = $restriction; return $this; } /** * Get the restrictions of the role * * @param string $name Optional name of the restriction * * @return string[]|null */ public function getRestrictions($name = null) { $restrictions = $this->restrictions; if ($name === null) { return $restrictions; } if (isset($restrictions[$name])) { return $restrictions[$name]; } return null; } }