diff options
Diffstat (limited to 'app/class/Controllermedia.php')
-rw-r--r-- | app/class/Controllermedia.php | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/app/class/Controllermedia.php b/app/class/Controllermedia.php index c6e5d6c..0d75de7 100644 --- a/app/class/Controllermedia.php +++ b/app/class/Controllermedia.php @@ -3,6 +3,7 @@ namespace Wcms; use Exception; +use InvalidArgumentException; use LogicException; class Controllermedia extends Controller @@ -116,6 +117,33 @@ class Controllermedia extends Controller $this->mediamanager->multimovefile($_POST['id'], $_POST['dir']); } } - $this->redirect($this->generate('media') . '?path=/' . $_POST['path']); + $this->redirect($this->generate('media') . $_POST['route']); + } + + public function rename() + { + if ( + $this->user->issupereditor() + && isset($_POST['oldid']) + && isset($_POST['newid']) + && isset($_POST['oldextension']) + && isset($_POST['newextension']) + && isset($_POST['path']) + ) { + $newid = idclean($_POST['newid']); + $newextension = idclean($_POST['newextension']); + if (!empty($newid) && !empty($newextension)) { + $oldname = $_POST['path'] . $_POST['oldid'] . '.' . $_POST['oldextension']; + $newname = $_POST['path'] . $newid . '.' . $newextension; + try { + $this->mediamanager->rename($oldname, $newname); + } catch (InvalidArgumentException $e) { + Model::sendflashmessage($e->getMessage(), 'error'); + } + } else { + Model::sendflashmessage('Invalid name or extension', 'warning'); + } + } + $this->redirect($this->generate('media') . $_POST['route']); } } |