aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/mayor-base/www/policy/private/session/download-pre.php
blob: 1fdd916ff8d318138de4bb0fdc93cdcb7cefdce7 (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
<?php

    if (_RIGHTS_OK !== true) die();
    if (!((defined('_POLICY') && _POLICY=='public') 
	    || (defined('__TITKARSAG') && __TITKARSAG===true) 
	    || (defined('__TANAR') && __TANAR===true) 
	    || (defined('__NAPLOADMIN') && __NAPLOADMIN===true)
	    || (defined('__DIAK') && __DIAK===true) 
    )) {
	return false;
    }

    // $file  -  csak a file neve, útvonal nem lehet benne
    if (isset($_POST['file']) && $_POST['file'] != '') $file = basename($_POST['file']);
    elseif (isset($_GET['file']) && $_GET['file'] != '') $file = basename($_GET['file']);

    if (!isset($file)) $_SESSION['alert'][] = 'page:empty_fields:file';
    else {
	// $dir  -  betű, szám, -, _, és / lehet benne (elején csak betű vagy szám)
	$dir = readVariable($_POST['dir'], 'path', readVariable($_GET['dir'], 'path'));

	// Az útvonal beállítása
	$path = _DOWNLOADDIR.'/'._POLICY;
	if (isset($dir)) $path .= '/'.$dir;
	$path .= '/'.$file;

	// Jogosultságok ellenőzése dir alapján
	if (__DIAK===true) {
	    if (strstr($dir,'naplo/face/')===false && strstr($dir,'naplo/haladasi/hazifeladat')===false) return false;
	}
	// Titkarsag, Tanar, Naploadmin letoltheti, amit szeretne

	// Létezik-e a file
	if (!file_exists($path)) $_SESSION['alert'][] = 'page:file_not_found:'.substr($path, strlen(_DOWNLOADDIR.'/'._POLICY.'/')).':'.$path;
	else {

	    $ADAT['path'] = $path;
	    $ADAT['dir'] = $dir;
	    $ADAT['file'] = $file;
	    $ADAT['ext'] = strtolower(substr(strrchr($file,"."),1));
	    $ADAT['size'] = filesize($path);
	    $ADAT['mime'] = readVariable($_POST['mimetype'], 'enum', readVariable($_GET['mimetype'], 'enum', null, $allowedMimeTypes), $allowedMimeTypes);

	    // MiME típus megállapítása
	    if (!isset($ADAT['mime'])) {
		if ($allowedExtensions[$ADAT['ext']] != '') $ADAT['mime'] = $allowedExtensions[$ADAT['ext']];
		else {
		    if (function_exists('mime_content_type')) {
			$ADAT['mime'] = mime_content_type($ADAT['path']);
		    } elseif (function_exists('finfo_file')) {
			$finfo = finfo_open(FILEINFO_MIME);
			$ADAT['mime'] = finfo_file($finfo, $ADAT['path']);
			finfo_close($finfo);
		    }
		    if ($ADAT['mime'] == '') $ADAT['mime'] = "application/force-download";
		}
	    }
	    if (in_array($ADAT['mime'],array('image/gif','image/png','image/jpeg','image/jpeg'))) $ADAT['pure']=true;
	    // letöltés
	    if (isset($_GET['download'])) passFile($ADAT);

	}
    }


?>