summaryrefslogtreecommitdiff
path: root/www/functions/func_delete.php
blob: 2dab9e281671decc067b5ea906c47031f3fe332f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php

function delete_file($user, $path){
	$db = $GLOBALS["db"];
	$uploaddir = "../files/";

	$file_id = select_file_id($db, $user, $path);

	$check_if_file_db = $db->query("SELECT folder, hash FROM files WHERE id=".$file_id.";");
	$check_if_file_ar = $check_if_file_db->fetchArray(SQLITE3_NUM);

	if($check_if_file_ar[0] != "FILE"){
		return DELETE_FILE_NO_FILE;
	}

	$file_hash = $check_if_file_ar[1];

	if(!unlink($uploaddir.$file_hash.".gz")){
		return DELETE_FILE_UNLINK;
	}

	if($db->exec("
		BEGIN TRANSACTION;
		DELETE FROM files WHERE id=".$file_id.";
		COMMIT;
	")){
		return DELETE_FILE_SUCCESS;
	} else {
		return DELETE_FILE_DATABASE;
	}
}

function delete_user($user){
	$db = $GLOBALS["db"];
	$uploaddir = "../files/";

	$owner = user_id($db, $user);

	$hash_array_db = $db->query("SELECT hash FROM files WHERE folder='FILE' AND owner=".$owner.";");

	$count = 0;
	while($row1 = $hash_array_db->fetchArray(SQLITE3_NUM)){
		$hash_ar[$count] = $row1[0];
		$count++;
	}

	$count = 0;

	for($i=0; $i<count($hash_ar); $i++){
		$file_id_owner_db = $db->query("SELECT id, owner FROM files WHERE folder='FILE' AND hash=".$hash_ar[$i].";");
		while($row2 = $file_id_owner->fetchArray(SQLITE3_NUM)){
			if($row2[1] != $_SESSION["userid"]){
				$saved_files[$count] = $hash_ar[$i];
			}
		$count++;
		}
	}

	for($i=0; $i<count($saved_files); $i++){
		$cur = $saved_files[$i]:
		for($j=0;$j<count($hash_ar); $j++){
			if($cur == $hash_ar[$j]){
				$hash_ar[$j] = "";
			}
		}
	}

	for($i=0; $<count($hash_ar); $i++){
		if(!unlink($uploaddir.$hash_ar[$i].".gz")){
			return DELETE_USER_FILE_DELETE;
		}
	}	

	if($db->exec("
		BEGIN TRANSACTION;
		DELETE FROM user WHERE id=".$owner.";
		COMMIT;
	")){
		return DELETE_USER_SUCCESS;
	} else {
		return DELETE_USER_DATABASE;
	}
}