summaryrefslogtreecommitdiff
path: root/www/functions/func_folder.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/functions/func_folder.php')
-rw-r--r--www/functions/func_folder.php48
1 files changed, 45 insertions, 3 deletions
diff --git a/www/functions/func_folder.php b/www/functions/func_folder.php
index cd60852..c511897 100644
--- a/www/functions/func_folder.php
+++ b/www/functions/func_folder.php
@@ -1,5 +1,17 @@
<?php
+function database_mkdir($file_id, $new_folder_name, $share){
+ if($db->exec("
+ BEGIN TRANSACTION;
+ INSERT INTO files (id, parent, owner, name, folder, size, share, hash) VALUES (Null, " . $file_id . ", " . $_SESSION['userid'] . ", '" . SQLite3::escapeString($new_folder_name) . "', 'DIRECTORY', 0, '" . SQLite3::escapeString($share) . "', '');
+ COMMIT;
+ ")){
+ return true;
+ } else {
+ return false;
+ }
+}
+
function create_folder($path, $new_folder_name, $share){
$db = $GLOBALS["db"];
@@ -29,14 +41,44 @@ function create_folder($path, $new_folder_name, $share){
return MKDIR_DUPLICATE;
}
}
+
+ if(database_mkdir($file_id, $new_folder_name, $share)){
+ return MKDIR_SUCCESS;
+ } else {
+ return MKDIR_DATABASE;
+ }
+}
+
+function move_folder($old_path, $new_path){
+ $db = $GLOBALS["db"];
+ $old_file_id = select_file_id($db, $_SESSION["userid"], $old_path);
+ $new_file_id = select_file_id($db, $_SESSION["userid"], $new_path);
+
+ $old_folder_owner_db = $db->query("SELECT owner FROM files WHERE id=".$old_file_id.";");
+ $old_folder_owner_ar = $old_folder_owner_db->fetchArray(SQLITE3_NUM);
+
+ if($_SESSION["userid"] != $old_folder_owner_ar[0]){
+ return MV_OLD_FOLDER_NOT_OWNER;
+ }
+
+ if(!$new_file_id){
+ return MV_FOLDER_TARGET_NOT_EXIST;
+ }
+
+ $new_folder_owner_db = $db->query("SELECT owner FROM files WHERE id=".$new_file_id.";");
+ $new_folder_owner_ar = $new_folder_owner_db->fetchArray(SQLITE3_NUM);
+
+ if($_SESSION["userid"] != $new_folder_owner_ar[0]){
+ return MV_NEW_FOLDER_NOT_OWNER;
+ }
if($db->exec("
BEGIN TRANSACTION;
- INSERT INTO files (id, parent, owner, name, folder, size, share, hash) VALUES (Null, " . $file_id . ", " . $_SESSION['userid'] . ", '" . SQLite3::escapeString($new_folder_name) . "', 'DIRECTORY', 0, '" . SQLite3::escapeString($share) . "', '');
+ UPDATE files SET parent=".$new_file_id." WHERE id=".$old_file_id.";
COMMIT;
")){
- return MKDIR_SUCCESS;
+ return MV_FOLDER_SUCCESS;
} else {
- return MKDIR_DATABASE;
+ return MV_FOLDER_DATABASE;
}
}