users_admin_login.php 2.87 KB
<?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
?>