summaryrefslogtreecommitdiff
path: root/www/functions
diff options
context:
space:
mode:
authormoehm2014-03-26 08:06:47 +0100
committermoehm2014-03-26 08:06:47 +0100
commitcaa6a7afee2da0d62cd31ef76506d0f37e259f4d (patch)
tree6877a822b1a2f272493d66948c3270ce58e11768 /www/functions
parente009b1e84dcbcc83f39652695eb86c6e64cc6a11 (diff)
downloadfiles.iamfabulous.de-caa6a7afee2da0d62cd31ef76506d0f37e259f4d.tar.gz
Various improvements, e.g. move_folder() and a new database layout.
Diffstat (limited to 'www/functions')
-rw-r--r--www/functions/func_delete.php8
-rw-r--r--www/functions/func_download.php4
-rw-r--r--www/functions/func_folder.php48
-rwxr-xr-xwww/functions/func_register.php2
4 files changed, 52 insertions, 10 deletions
diff --git a/www/functions/func_delete.php b/www/functions/func_delete.php
index 17da1c4..059bc3b 100644
--- a/www/functions/func_delete.php
+++ b/www/functions/func_delete.php
@@ -61,8 +61,8 @@ function delete_file($user, $path){
}
for($i=0; $i<count($hash_ar); $i++){
- if(!unlink($uploaddir.$file_hash.".gz")){
- if(!$file_hash[$i] != ""){
+ if(!$file_hash[$i] != ""){
+ if(!unlink($uploaddir.$file_hash.".gz")){
return DELETE_FILE_UNLINK;
}
}
@@ -170,8 +170,8 @@ function delete_user($user, $password, $password_verify){
}
for($i=0; $ii<count($hash_ar); $i++){
- if(!unlink($uploaddir.$hash_ar[$i].".gz")){
- if($hash_ar[$i] != ""){
+ if($hash_ar[$i] != ""){
+ if(!unlink($uploaddir.$hash_ar[$i].".gz")){
return DELETE_USER_FILE_DELETE;
}
}
diff --git a/www/functions/func_download.php b/www/functions/func_download.php
index e3e36aa..2239c71 100644
--- a/www/functions/func_download.php
+++ b/www/functions/func_download.php
@@ -66,7 +66,7 @@ function check_file_hash($db, $file_id, $download_hash){
return DOWNLOAD_FALSE_ID;
}
- $check_hash_db = $db->query("SELECT folder, share FROM files WHERE id=" . SQLite3::escapeString($file_id).";");
+ $check_hash_db = $db->query("SELECT folder, share, download_link FROM files WHERE id=" . SQLite3::escapeString($file_id).";");
$check_hash_ar = $check_hash_db->fetchArray(SQLITE3_NUM);
if($check_hash_ar[0] != "FILE"){
@@ -74,7 +74,7 @@ function check_file_hash($db, $file_id, $download_hash){
}
if($check_hash_ar[1] != "PUBLIC"){
- if($check_hash_ar[0] != $download_hash){
+ if($check_hash_ar[2] != $download_hash){
return DOWNLOAD_PRIVATE_FILE;
}
}
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;
}
}
diff --git a/www/functions/func_register.php b/www/functions/func_register.php
index b87d81f..90cbd7d 100755
--- a/www/functions/func_register.php
+++ b/www/functions/func_register.php
@@ -59,7 +59,7 @@ function register($db){
if($db->exec("
BEGIN TRANSACTION;
- UPDATE user SET name='" . $safe_name . "', password='" . $hash_password . "', invites=5, status=1, register=(SELECT datetime()) WHERE id=" . $id . ";
+ UPDATE user SET name='" . $safe_name . "', password='" . $hash_password . "', invites=5, status=1, register=(SELECT datetime()), color_folder='DEFAULT', color_file='DEFAULT' WHERE id=" . $id . ";
INSERT INTO files (id, parent, owner, name, folder, mime, size, share, size, hash) VALUES (NULL, 0, $id, '/', 'DIRECTORY', NULL, NULL, 'PUBLIC', 0, '');
INSERT INTO log (id, user, login) VALUES (NULL, (SELECT id FROM user WHERE name='" . $safe_name. "'), (SELECT datetime()));
COMMIT;")