aboutsummaryrefslogtreecommitdiffstats
path: root/php/rename.php
diff options
context:
space:
mode:
authoradam <adam@>2021-02-13 12:13:29 +0200
committeradam <adam@>2021-02-13 12:13:29 +0200
commite4c0f4eeaa3f1a0707d6bf668619bb48b77c43ce (patch)
tree93d9168517f1eaf3867be7addcead34505b1be5f /php/rename.php
parent232ec00948655b8c68035368400b0a79c101976b (diff)
parentbb9d4f024e7cfa1c79fc1e4118774fa4ea2fd3bd (diff)
downloadfileup-e4c0f4eeaa3f1a0707d6bf668619bb48b77c43ce.tar.gz
Merge https://github.com/alexvitkov/india
Diffstat (limited to 'php/rename.php')
-rw-r--r--php/rename.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/php/rename.php b/php/rename.php
new file mode 100644
index 0000000..3721c22
--- /dev/null
+++ b/php/rename.php
@@ -0,0 +1,75 @@
+<?php
+require_once "database.php";
+require_once "configuration.php";
+require_once "file_type_recogniser.php";
+require_once "node.php";
+require_once "misc.php";
+
+session_start();
+
+if (!isset($_POST['folder']) || !isset($_POST['old_filename']) || !isset($_POST['new_filename'])) {
+ error_log("bad /php/move.php call");
+ http_response_code(400);
+ exit(1);
+}
+
+$folder = $_POST["folder"];
+$old_filename = $_POST["old_filename"];
+$new_filename = $_POST["new_filename"];
+$user = $_SESSION['user_object'];
+$homedir = $user->home_directory;
+
+$dir = get_directory($folder, $user);
+if (!$dir) {
+ error_log("/php/rename.php invalid directory");
+ http_response_code(409);
+ exit(0);
+}
+
+// Check if the new filename is taken in the new dir
+$contents_of_dir = $database->get_links_of($dir);
+foreach ($contents_of_dir as $c) {
+ if ($c['name'] == $new_filename) {
+ error_log("/php/rename.php failed - filename $filename taken in $new_folder");
+ http_response_code(409);
+ exit(0);
+ }
+}
+
+// Get the file node
+$file_node = null;
+$contents_of_old_dir = $database->get_links_of($dir);
+foreach ($contents_of_old_dir as $c) {
+ if ($c['name'] == $old_filename) {
+ $file_node = $c['id'];
+ break;
+ }
+}
+
+if ($file_node == null) {
+ error_log("/php/rename.php failed - file $old_folder/$filename doesn't exist");
+ http_response_code(409);
+ exit(0);
+}
+
+// Update the node_link
+$move = $database->pdo->prepare("
+ UPDATE node_links
+ SET name = :new_filename
+ WHERE directory_id = :dir
+ AND node_id = :file_node
+ AND name = :old_filename
+");
+
+$move->bindParam(':dir', $dir);
+$move->bindParam(':file_node', $file_node);
+$move->bindParam(':old_filename', $old_filename);
+$move->bindParam(':new_filename', $new_filename);
+
+if(!$move->execute()) {
+ error_log("extremely sad shit");
+ http_response_code(409);
+ exit(0);
+}
+
+?>