aboutsummaryrefslogtreecommitdiff
path: root/www/functions/notused/func_folder.php
diff options
context:
space:
mode:
authorroot2014-04-14 08:35:13 +0200
committerroot2014-04-14 08:35:13 +0200
commit12734da8826299ffd24c0a15f6dbf205892d7221 (patch)
tree3b894dd30e332df23a564ce44e42ce164c8abd78 /www/functions/notused/func_folder.php
parent7b9d516cd3bcdb8eaa5f1eb533d71010061c681b (diff)
downloadjungegemeinde-12734da8826299ffd24c0a15f6dbf205892d7221.tar.gz
Pushed to v3
Diffstat (limited to 'www/functions/notused/func_folder.php')
-rw-r--r--www/functions/notused/func_folder.php162
1 files changed, 162 insertions, 0 deletions
diff --git a/www/functions/notused/func_folder.php b/www/functions/notused/func_folder.php
new file mode 100644
index 0000000..044fd8e
--- /dev/null
+++ b/www/functions/notused/func_folder.php
@@ -0,0 +1,162 @@
+<?php
+
+function database_mkdir($db, $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"];
+
+ if(!$_SESSION["login"]){
+ return MKDIR_LOGIN;
+ }
+
+ $file_id = select_file_id($db, $_SESSION["userid"], $path);
+
+ $owner_db = $db->query("SELECT owner FROM files WHERE id=" . SQLite3::escapeString($file_id) . ";");
+ $owner_ar = $owner_db->fetchArray(SQLITE3_NUM);
+
+ if($owner_ar[0] != $_SESSION["userid"]){
+ return MKDIR_OWNER;
+ }
+
+ //TODO: Cut trailing or leading slash
+ //TODO: Maye create two folders instead of returning an error?
+ if(preg_match("/\//", $new_folder_name)){
+ return SLASH_IN_FOLDER_NAME;
+ }
+
+ $dupl_db = $db->query("SELECT parent FROM files WHERE name='" . SQLite3::escapeString($new_folder_name) . "' AND owner=".$_SESSION["userid"].";");
+ while($dupl_ar = $dupl_db->fetchArray(SQLITE3_NUM)){
+ if($dupl_ar[0] == $file_id){
+ return MKDIR_DUPLICATE;
+ }
+ }
+
+ if(database_mkdir($db, $file_id, $new_folder_name, $share)){
+ return MKDIR_SUCCESS;
+ } else {
+ return MKDIR_DATABASE;
+ }
+}
+
+function move_folder($old_path, $new_path){
+
+ if(!$_SESSION["login"]){
+ return NOT_LOGED_IN;
+ }
+
+ $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;
+ UPDATE files SET parent=".$new_file_id." WHERE id=".$old_file_id.";
+ COMMIT;
+ ")){
+ return MV_FOLDER_SUCCESS;
+ } else {
+ return MV_FOLDER_DATABASE;
+ }
+}
+
+function rename_folder($path, $new_name){
+ if(!$_SESSION["login"]){
+ return NOT_LOGED_IN;
+ }
+
+ $db = $GLOBALS["db"];
+
+ $file_id = select_file_id($db, $_SESSION["username"], $path);
+
+ $folder_owner_db = $db->query("SELECT owner FROM fiiles where id=".$file_id.";");
+ $folder_owner_ar = $folder_owner_db->fetchArray(SQLITE3_NUM);
+
+ if($folder_owner_ar[0] != $_SESSION["userid"]){
+ return FOLDER_NOT_OWNER;
+ }
+
+ if(preg_match("/\//", $new_name)){
+ return SLASH_IN_FOLDER_NAME;
+ }
+
+ $dupl_db = $db->query("SELECT parent FROM files WHERE name='" . SQLite3::escapeString($new_name) . "' AND owner=".$_SESSION["userid"].";");
+ while($dupl_ar = $dupl_db->fetchArray(SQLITE3_NUM)){
+ if($dupl_ar[0] == $file_id){
+ return MKDIR_DUPLICATE;
+ }
+ }
+
+ if($db->exec("
+ BEGIN TRANSACTION;
+ UPDATE files SET name='".SQLite3::escapeString($new_name)."' WHERE id=".$file_id.";
+ COMMIT;
+ ")){
+ return true;
+ } else {
+ return DATABASE;
+ }
+}
+
+function generate_download_link($file_id){
+
+ if(!$_SESSION["login"]){
+ return NOT_LOGED_IN;
+ }
+
+ $db = $GLOBALS["db"];
+
+ $folder_owner_db = $db->query("SELECT owner FROM files where id=".$file_id.";");
+ $folder_owner_ar = $folder_owner_db->fetchArray(SQLITE3_NUM);
+
+ if($folder_owner_ar[0] != $_SESSION["userid"]){
+ return FOLDER_NOT_OWNER;
+ }
+
+ $key_array = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "_", "-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" );
+
+ $length = count($key_array);
+ $key = "";
+
+ for ($i=0;$i<21;$i++){
+ $index = mt_rand(0,$length-1);
+ $key = $key.$key_array[$index];
+ }
+
+ if($db->exec("
+ BEGIN TRANSACTION;
+ UPDATE files SET download_link='".$key."' WHERE id=".$file_id.";
+ COMMIT;
+ ")){
+ return $key;
+ } else {
+ return DATABASE;
+ }
+}