public function renameDir(string $cabin)
{
$path = $this->determinePath($cabin);
if (!\is1DArray($_GET)) {
\Airship\redirect($this->airship_cabin_prefix . '/pages/' . \trim($cabin, '/'));
}
$cabins = $this->getCabinNamespaces();
if (!\in_array($cabin, $cabins)) {
\Airship\redirect($this->airship_cabin_prefix);
}
$this->setTemplateExtraData($cabin);
if (!$this->can('delete')) {
\Airship\redirect($this->airship_cabin_prefix);
}
// Split this up
$pieces = \explode('/', $path);
$dir = \array_shift($pieces);
$path = \implode('/', $pieces);
try {
$dirInfo = $this->pg->getDirInfo($cabin, $path, $dir);
} catch (CustomPageNotFoundException $ex) {
\Airship\redirect($this->airship_cabin_prefix . '/pages/' . \trim($cabin, '/'));
return;
}
$post = $this->post(new RenameFilter());
if (!empty($post)) {
// CAPTCHA verification and CSRF token both passed
if ($this->processMoveDir($dirInfo, $post, $cabin, $cabins)) {
// Return to the parent directory.
\Airship\redirect($this->airship_cabin_prefix . '/pages/' . \trim($cabin, '/'), ['dir' => $path]);
}
}
$this->lens('pages/dir_move', ['cabins' => $cabins, 'custom_dir_tree' => $this->pg->getCustomDirTree($cabins, $dirInfo['parent'] ?? 0, (int) $dirInfo['directoryid']), 'dirinfo' => $dirInfo, 'config' => $this->config(), 'parent' => $path, 'dir' => $dir, 'cabin' => $cabin, 'pathinfo' => \Airship\chunk($path)]);
}