diff options
Diffstat (limited to 'www/functions/func_folder.php')
| -rw-r--r-- | www/functions/func_folder.php | 48 |
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; } } |
