public function cabinMenu(string $cabinName = '')
{
if (!$this->isLoggedIn()) {
\Airship\redirect($this->airship_cabin_prefix);
}
$this->setTemplateExtraData($cabinName);
if (!$this->can('read')) {
\Airship\redirect($this->airship_cabin_prefix);
}
if (!\in_array($cabinName, $this->getCabinNamespaces())) {
// Invalid cabin name
\Airship\redirect($this->airship_cabin_prefix . '/cabins');
}
$cabin = \Airship\loadJSON(ROOT . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'cabins.json');
foreach ($cabin as $path => $data) {
if ($data['name'] === $cabinName) {
$settings['cabin'] = $data;
$settings['cabin']['path'] = $path;
break;
}
}
if (empty($settings['cabin'])) {
// Cabin not found
\Airship\redirect($this->airship_cabin_prefix);
}
$this->lens('cabins_menu', ['name' => $cabinName, 'config' => $settings]);
}