public function getAllDownloadsForUs er user conn null loggerID this-

 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
public function getAllDownloadsForUser($user, $conn = null){
$loggerID = $this->getUniqLoggerID();
Logger::info($loggerID."getAllDownloadsForUser called.");
$haveToClose = false;
if($conn == null) {
$haveToClose = true;
$conn = $this->getConnection();
}
$result = array();
if($conn){
$storedUser = $this->getUserById($user->ID, true, $conn);
if($storedUser != null) {
foreach ($this->getUploadCategories($conn) as $category) {
if (strtolower($category->Name) == "unknown") continue;
$catContent = array();
$catName = $category->Name;
$catPath = $this->downloadsUrl . $category->FolderName . '/';
foreach ($this->getUploadFolders($category->ID, $conn) as $folder) {
$folderContent = array();
$folderName = $folder->Name;
$folderPath = $catPath . $folder->Name . '/';
$hasAccess = $folder->AccessForAll > 0;
if(!$hasAccess) {
foreach ($folder->UserGroups as $groupIdInFile) {
foreach ($user->Groups as $userGroup) {
/* @var $userGroup UserGroup */
if ((int)$userGroup->ID == (int)$groupIdInFile) {
$hasAccess = true;
break 2;
}
}
}
}
if(!$hasAccess){
foreach($folder->Users as $userIdInFile){
if((int)$userIdInFile == (int)$user->ID){
$hasAccess = true;
break;
}
}
}
if(!$hasAccess)
continue;
foreach ($this->getUploads($folder->ID, $conn) as $file) {
$item = new stdClass();
$item->Name = $file->FileName;
$item->URL = $folderPath . $file->FileName . '.' . $category->Extension;
array_push($folderContent, $item);
}
if(count($folderContent) > 0)
$catContent[$folderName] = $folderContent;
}
$result[$catName] = $catContent;
}
}
}
Logger::info($loggerID."getAllDownloadsForUser result: ".var_export($result,true));
if($haveToClose) $this->killConnection($conn,$loggerID);
return $result;
}