<?php
// Набор функций для авторизации пользователя
global $EXTPATH;
global $page_login;


$login_template = "

<body>
<style type=\"text/css\">
#mainform { width: 500px; }
#mainform label { width: 250px; }
#mainform label.error, #mainform input.submit { margin-left: 253px;   background: #FF3333; background-repeat: no-repeat;
}
</style>

<div class=\"main\">
  <div class=\"header\">
    <h1>Вход в Личный кабинет</h1>
  </div>
<div class=\"cont\">
<form action=\"index.php\" method=\"post\">
    <h2>Авторизация</h2>
    <p class=\"comment\">[MESSAGE]</p>
    <div class=\"bl\">
      <div class=\"fl inp2\">
        <label for=\"str_login\">Логин:</label><br />
        <input type=\"hidden\" name=\"page_login\" value=20>
        <input type=\"text\" name=\"str_login\">
      </div>
    </div>
    <div class=\"bl\">
      <div class=\"fl inp2\">
        <label for=\"str_password\">Пароль:</label><br />
        <input type=\"password\" name=\"str_password\">
      </div>
    </div>
    <div class=\"bl\">
      <div class=\"fl inp2\">
        <label for=\"str_remember\">Оставаться в системе</label><br />
        <input type=\"checkbox\" name=\"str_remember\" value=1>
      </div>
    </div>
    <div class=\"bl\">
      <input type=\"submit\" name=\"input_user\" value=\"Войти\">
    </div>
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</form>
</div>
";

function auth_next()
// ВИЗУАЛЬНАЯ ФУНКЦИЯ (РИСУЕТ ЛОГИН ЕСЛИ НАДО) выполняет пролонгацию авторизации пользователя
// размещается в месте, где надо нарисовать логин и пароль (в странице)
// для работы необходимо делать session_start() в начале php файла
// Возвращает ID системного пользователя
{
  global $login_template;
  global $EXTPATH;

  $current_user_id = $_SESSION['current_user_id'];
  if (empty($current_user_id)) {
	  if (!empty($_POST)) {
	  	$sid = session_id();//$_SERVER[REMOTE_ADDR];
	  	$str_login = $_POST['str_login'];
	  	$str_password = $_POST['str_password'];
	  	if ($str_password == '*****') {	  	  $str_password = $_COOKIE['dwssap'];
	  	}
	  	$str_remember = $_POST['str_remember'];
	  	// сохранить в куки текущие значения логина и пароля (на месяц)...
	  	if ($str_remember == 1) {	  	  // Создать cookie "userid" со сроком действия один месяц,
          //setcookie ("str_login", $str_login, time()+2592000);
          //setcookie ("str_password", $str_password, time()+2592000);
	  	}
	  	// в любом случае - сохранить в куки значение галочки
        //setcookie ("str_remember", $remember, time()+2592000);

	    $result = exec_func("APPL_SYS_USER.CHECK_USER('".$str_login."','".$str_password."')");
		if (empty($result)) {
		  $message = 'Неверный логин или пароль. В регистрации отказано.';
	      echo str_replace("[MESSAGE]", $message, $login_template);
		} elseif ($result==-1) {
		  $message = 'Доступ заблокирован';
	      echo str_replace("[MESSAGE]", $message, $login_template);
	    } else {	      // АВТОРИЗУЕМ ПОЛЬЗОВАТЕЛЯ. ВСЕ ПРИСВАИВАЕМ.
	      //echo "<br>user_id=".$result;
	      //session_register("current_user_id");
	      $current_user_id = $result;
	      $check_in_system = get_field_value($current_user_id,'DATE_EXIT','SYSTEM_USER');
	      exec_proc("APPL_SYS_USER.REGISTER_USER('$current_user_id')");

	      $sid = session_id();//$ip = $_SERVER[REMOTE_ADDR];
	   	  // сделаем пометки что пользователь работает
		  //exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id','$sid')");
		  exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id')");
		  // запишем в сессионную переменную
		  //if(!empty($current_user_id)){
		    $_SESSION['current_user_id'] = $current_user_id;

	      //}
	      // также получим nicname и запишем его в сессионную переменную
	      $nicname = exec_func("APPL_SYS_USER.GET_NICNAME($current_user_id)");
	      $_SESSION['nicname'] = $nicname;
	       //echo "nic=".$_SESSION['nicname'];
	      // проинициализируем необходимые переменные...
     	  exec_proc("APPL_WORK_PLACE.SET_USER_INFO('".$current_user_id."')");
	    }
	  } else {	    // Печатаем форму логина и пароля
        $message='';
        $message = 'Нет доступа!';
        echo str_replace("[MESSAGE]", $message, $login_template);
	  }
  } else {  	// уже залогинился - есть current_user_id
    $check_in_system = get_field_value($current_user_id,'DATE_EXIT','SYSTEM_USER');
    exec_proc("APPL_SYS_USER.REGISTER_USER('$current_user_id')");

    $sid = session_id();//$ip = $_SERVER[REMOTE_ADDR];
    // сделаем пометки что пользователь работает
    //exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id','$sid')");
    exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id')");
    // проинициализируем необходимые переменные...
	exec_proc("APPL_WORK_PLACE.SET_USER_INFO('".$current_user_id."')");
  }
  if (empty($current_user_id)) {$current_user_id = -1;}
  //echo 'cui='.$_SESSION['current_user_id'];
  return $current_user_id;
}

function auth_logout()
// НЕВИЗУАЛЬНАЯ ФУНКЦИЯ выполняет отключение авторизации пользователя
{
  global $login_template;
  global $EXTPATH;

  $current_user_id = $_SESSION['current_user_id'];
  if (!empty($current_user_id)) {  	// последний раз вызвали апдейт даты посещения
  	exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id')");
	unset($_SESSION['current_user_id']);
	unset($_SESSION['nicname']);
  }
  return 0;
}

function auth()
// НЕВИЗУАЛЬНАЯ ФУНКЦИЯ выполняет авторизацию пользователя/ ставится в верхней части страницы и устанавливает сессионные переменные
// для работы необходимо делать session_start() в начале php файла
// Возвращает ID системного пользователя
{
  global $login_template;
  global $EXTPATH;

  $current_user_id = $_SESSION['current_user_id'];
  if (empty($current_user_id)) {
	  if (!empty($_POST['input_user'])) {
	  	$sid = session_id();//$_SERVER[REMOTE_ADDR];
	  	$str_login = $_POST['str_login'];
	  	$str_password = $_POST['str_password'];
	  	if ($str_password == '*****') {
	  	  $str_password = $_COOKIE['str_password'];
	  	}
	  	$str_remember = $_POST['str_remember'];
	  	// сохранить в куки текущие значения логина и пароля (на месяц)...
	  	if ($str_remember == 1) {
	  	  // Создать cookie "userid" со сроком действия один месяц,
          setcookie ("str_login", $str_login, time()+2592000);
          setcookie ("str_password", $str_password, time()+2592000);
	  	}
	  	// в любом случае - сохранить в куки значение галочки
        setcookie ("str_remember", $str_remember, time()+2592000);

	    $result = exec_func("APPL_SYS_USER.CHECK_USER('".$str_login."','".$str_password."')");
		if (empty($result)) {
		  $message = 'Неверный логин или пароль. В регистрации отказано.';
	      //echo str_replace("[MESSAGE]", $message, $login_template);
		} elseif ($result==-1) {
		  $message = 'Доступ заблокирован';
	      //echo str_replace("[MESSAGE]", $message, $login_template);
	    } else {
	      //echo "<br>user_id=".$result;
	      //session_register("current_user_id");
	      $current_user_id = $result;
	      $check_in_system = get_field_value($current_user_id,'DATE_EXIT','SYSTEM_USER');
	      exec_proc("APPL_SYS_USER.REGISTER_USER('$current_user_id')");

	      $sid = session_id();//$ip = $_SERVER[REMOTE_ADDR];
	   	  // сделаем пометки что пользователь работает
		  //exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id','$sid')");
		  exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id')");
		  // запишем в сессионную переменную
		  if(!empty($current_user_id)){
		    $_SESSION['current_user_id'] = $current_user_id;
	      }
	      // также получим nicname и запишем его в сессионную переменную
	      $nicname = exec_func("APPL_SYS_USER.GET_NICNAME($current_user_id)");
	      $_SESSION['nicname'] = $nicname;
	      //echo "nic=".$_SESSION['nicname'];
	    }
	  } else {
	    // Печатаем форму логина и пароля
        $message='';
        //echo str_replace("[MESSAGE]", $message, $login_template);
	  }
  } else {
  	// уже залогинился - есть current_user_id
    //$check_in_system = get_field_value($current_user_id,'DATE_EXIT','SYSTEM_USER');
    //exec_proc("APPL_SYS_USER.REGISTER_USER('$current_user_id')");

    //$sid = session_id();//$ip = $_SERVER[REMOTE_ADDR];
    // сделаем пометки что пользователь работает
    //exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id','$sid')");
    //exec_proc("APPL_SYS_USER.USER_IN_SYSTEM('$current_user_id')");
  }
  if (empty($current_user_id)) {$current_user_id = -1;}
  return $current_user_id;
}


?>
