users_admin_login.php
2.87 KB
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
<?php
/**
* @author: Bunzia Alexander <nifus@mail.ru> <http://www.weblancer.net/users/nifus/>
* @copyright: Copyright (c) 2010, Bunzia Alexander
* @version: 1.0
* @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
class users_admin_login{
private $error = false;
private $act = '';
function __construct(){
global $MAIN_PAGE;
define('M_PATH',MAIN_SOURCE_PATH.'/modules/'.$MAIN_PAGE -> dirname() );
define('M_URL',MAIN_SOURCE_URL.'/modules/'.$MAIN_PAGE -> dirname() );
include_once(M_PATH.'/inc/url.php');
include_once(M_PATH.'/inc/class.users.php');
if ( !empty($_REQUEST['act']) ){
$this -> act = $_REQUEST['act'];
}
//include(MAIN_SOURCE_PATH.'/ext/ajax/JsHttpRequest.php');
//$JsHttpRequest =& new JsHttpRequest($MAIN_PAGE -> charset());
}
public function get(){
$func = $this -> act;
if ( !method_exists($this ,$func) ){
sys_error(ERROR_404);
}
return $this -> $func();
}
private function admin_login(){
global $MAIN_PAGE;
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом
Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
Header("Pragma: no-cache"); // HTTP/1.1
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
if ( empty($MAIN_USER) ){
$MAIN_USER = users::auth();
}
// админу сразу редирект на главную админки
if ( !empty($MAIN_USER) && $MAIN_USER -> is_admin() ){
include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/url.php');
if ( $MAIN_PAGE -> config('sys_admin_mainpage') !='' ){
sys_redirect( sys_url($MAIN_PAGE -> config('sys_admin_mainpage')) );
}else{
sys_redirect( MAIN_URL.'?p_name=admin_main');
}
}
// обрабатываем форму
if ( !empty($_REQUEST['send']) ){
$u = self::inc_login_site($_REQUEST['login'],$_REQUEST['pass']);
// данные верны, редирект на главную админки
if (false!==$u ){
include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/url.php');
if ( $MAIN_PAGE -> config('sys_admin_mainpage') !='' ){
sys_redirect( sys_url($MAIN_PAGE -> config('sys_admin_mainpage')) );
}else{
sys_redirect( MAIN_URL.'?p_name=admin_main');
}
}
$this -> error = 'Логин или пароль указаны неверно';
}
// выводим форму для авторизации админа
$t = new PHPTAL( M_PATH.'/tmpl/admin_index/form.html' );
$t -> login_url = URL_USERS_ADMIN_LOGIN;
$t -> error = $this -> error;
return $t -> execute();
}
private function inc_login_site($l,$p,$save){
$u = users::load_login($l);
if ( $u===false ){
return false;
}
if ( $u -> pass()!=users::make_pass($p) ){
return false;
}
$u -> user_session($save);
return $u;
}
} // end class
?>