lib/Tabs: Throw HttpNotFoundException when activating an inexistent tab

refs #10884
This commit is contained in:
Eric Lippmann 2015-12-21 10:09:13 +01:00
parent 5972612b64
commit a3f89c8d20
1 changed files with 12 additions and 8 deletions

View File

@ -3,6 +3,7 @@
namespace Icinga\Web\Widget;
use Icinga\Exception\Http\HttpNotFoundException;
use Icinga\Exception\ProgrammingError;
use Icinga\Web\Url;
use Icinga\Web\Widget\Tabextension\Tabextension;
@ -118,18 +119,21 @@ EOT;
*
* @return $this
*
* @throws ProgrammingError When the given tab name doesn't exist
* @throws HttpNotFoundException When the tab w/ the given name does not exist
*
*/
public function activate($name)
{
if ($this->has($name)) {
if (! $this->has($name)) {
throw new HttpNotFoundException('Can\'t activate tab %s. Tab does not exist', $name);
}
if ($this->active !== null) {
$this->tabs[$this->active]->setActive(false);
}
$this->get($name)->setActive();
$this->active = $name;
}
return $this;
}