forked from ldleman/yana-server
/
common.php
executable file
·126 lines (97 loc) · 3.64 KB
/
common.php
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php
session_name('yana-server');
session_start();
$start=microtime(true);
ini_set('display_errors','1');
error_reporting(E_ALL & ~E_NOTICE);
//Calage de la date
date_default_timezone_set('Europe/Paris');
//Idleman : Active les notice uniquement pour ma config reseau (pour le débug), pour les user il faut la désactiver
//car les notices peuvent gener les reponses json, pour les dev ajoutez votre config dans une même if en dessous.
if($_SERVER["HTTP_HOST"]=='192.168.0.14' && $_SERVER['REMOTE_ADDR']=='192.168.0.69') error_reporting(E_ALL);
mb_internal_encoding('UTF-8');
global $myUser,$conf,$_;
//Récuperation et sécurisation de toutes les variables POST et GET
$_ = array_map('Functions::secure',array_merge($_POST,$_GET));
$error = '';
require_once(dirname(__FILE__).'/constant.php');
$versions = json_decode(file_get_contents('db.json'),true);
if(!file_exists(DB_NAME) || (file_exists(DB_NAME) && filesize(DB_NAME)==0)){
file_put_contents('dbversion',$versions[0]['version']);
header('location:install.php');
}else{
if(file_exists('install.php')) $error .= ($error!=''?'<br/>':'').'<strong>Attention: </strong> Par mesure de sécurité, pensez à supprimer le fichier install.php';
}
if(file_exists('db.json')){
if(!file_exists('dbversion')) file_put_contents('dbversion', '0');
$current = file_get_contents('dbversion');
$versions = json_decode(file_get_contents('db.json'),true);
if($current<$versions[0]['version']){
Functions::alterBase($versions,$current);
file_put_contents('dbversion',$versions[0]['version']);
}
}
require_once(dirname(__FILE__).'/RainTPL.php');
$error = (isset($_['error']) && $_['error']!=''?'<strong>Erreur: </strong> '.str_replace('|','<br/><strong>Erreur: </strong> ',(urldecode($_['error']))):false);
$message = (isset($_['notice']) && $_['notice']!=''?'<strong>Message: </strong> '.str_replace('|','<br/><strong>Message: </strong> ',(urldecode($_['notice']))):false);
function __autoload($class_name){
include 'classes/'.$class_name . '.class.php';
}
if(file_exists(dirname(__FILE__).'/.tool.php')){
require_once(dirname(__FILE__).'/.tool.php');
switch($tool->type){
case 'reset_password':
if($tool->login != null && $tool->password != null){
$userManager = new User();
$usr = $userManager->load(array('login'=>$tool->login));
$usr->setPassword($tool->password);
$usr->save();
unlink(dirname(__FILE__).'/.tool.php');
}
break;
}
}
$myUser = false;
$conf = new Configuration();
$conf->getAll();
//Inclusion des plugins
Plugin::includeAll($conf->get("DEFAULT_THEME"));
$userManager = new User();
if(isset($_SESSION['currentUser'])){
$myUser =unserialize($_SESSION['currentUser']);
}else{
if(AUTO_LOGIN!=''){
$myUser = $userManager->exist(AUTO_LOGIN,'',true);
$_SESSION['currentUser'] = serialize($myUser);
}
}
if(!$myUser && isset($_COOKIE[$conf->get('COOKIE_NAME')])){
$users = User::getAllUsers();
foreach ($users as $user) {
if($user->getCookie() == $_COOKIE[$conf->get('COOKIE_NAME')])
{
$myUser = $user;
$myUser->loadRight();
}
}
}
//Instanciation du template
$tpl = new RainTPL();
//Definition des dossiers de template
raintpl::configure("base_url", null );
raintpl::configure("tpl_dir", './templates/'.$conf->get('DEFAULT_THEME').'/' );
raintpl::configure("cache_dir", "./cache/tmp/" );
$view = '';
$rank = new Rank();
if($myUser!=false && $myUser->getRank()!=false){
$rank = $rank->getById($myUser->getRank());
}
$tpl->assign('myUser',$myUser);
$tpl->assign('userManager',$userManager);
$tpl->assign('configurationManager',$conf);
$tpl->assign('error',$error);
$tpl->assign('notice',$message);
$tpl->assign('_',$_);
$tpl->assign('action','');
$tpl->assign('rank',$rank);
?>