EIOS/integration/inc/class_USERS.php

143 lines
5.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class class_USERS{
public $DB = NULL;
public $URLS = NULL;
public $Tusers = '';
public $Tusers_statuses = '';
public $Tteachers = '';
public function __construct($html=1){
GLOBAL $DB,$ST,$WorkDIR;
$this->Tusers = $ST['dbpf'].'_users';
$this->Tusers_statuses = $ST['dbpf'].'_users_statuses';
$this->Tteachers = $ST['dbpf'].'_teachers';
$this->chpu = new class_CHPU();
$CHPU = new class_CHPU($WorkDIR);
$this->URLS = $CHPU->uri();
$this->DB = $DB;
}
/**
* Проверка на авторизацию пользователя
* @throws SmartyException
*/
public function check(){
GLOBAL $smarty,$WorkDIR;
if($this->URLS[0]=='logout'){
unset($_SESSION['user']);
}
if(!isset($_SESSION['user'])){
if(isset($_POST['enter'])){
$email = $_POST['email'];
$passw = $_POST['password'];
$user = $this->check_user_auth($email,$passw);
if(count($user)){
header('Location: '.$WorkDIR);
exit();
}
}
$smarty->display('tpl_auth.html');
exit();
}else{
$_SESSION['user']['statuses'] = $this->statuses($_SESSION['user']['id']);
$_SESSION['user']['teachers'] = $this->teachers($_SESSION['user']['id']);
}
}
public function check_user_auth($email,$passw){
$out=array();
$passw1=$passw;
include_once '../inc/ps01salt.php';
/**
* @var array $ps01salt
*/
$passw = md5($ps01salt[1].$passw.$ps01salt[2]);
$sql = 'SELECT * FROM '.$this->Tusers.' WHERE email="'.$this->DB->rescape($email).'" AND pass="'.$this->DB->rescape($passw).'"';
$rez = $this->DB->QUR_SEL($sql);
if(!$rez['err']&&$rez['kol']){
$_SESSION['user'] = $rez['rez'][0];
$_SESSION['user']['statuses'] = $this->statuses($_SESSION['user']['id']);
$_SESSION['user']['teachers'] = $this->teachers($_SESSION['user']['id']);
$_SESSION['user']['chdpwd']=1;
unset($_SESSION['user']['pass']);
$out = $_SESSION['user'];
}
return $out;
}
function enter_by_user($id){
$out=array();
$sql = 'SELECT * FROM '.$this->Tusers.' WHERE id='.$id.' LIMIT 1';
$rez = $this->DB->QUR_SEL($sql);
if(!$rez['err']&&$rez['kol']){
$_SESSION['user'] = $rez['rez'][0];
$_SESSION['user']['statuses'] = $this->statuses($_SESSION['user']['id']);
$_SESSION['user']['teachers'] = $this->teachers($_SESSION['user']['id']);
$_SESSION['user']['chdpwd']=1;
unset($_SESSION['user']['pass']);
$out = $_SESSION['user'];
}
return $out;
}
function statuses($id_user=0){
$out=array();
//TODO сделать выбор из главного файла конфига!
$statuses = array('-1'=>'заблокирован',
'0'=>'обычный',
'9'=>'выпускник',
'10'=>'трудоустройство',
'20'=>'УМУ',
'21'=>'Зам.декана',
'22'=>'Аттестационная комиссия',
'23'=>'Кафедра',
'24'=>'Декан',
'25'=>'Секретарь деканата',
'26'=>'Управление студ-кадров',
'27'=>'Ответственный за практику',
'28'=>'Ведущий курсов ДПО',
'29'=>'Библиотека',
'30'=>'Зав.кафедрой',
'31'=>'[Доп] Зам.декана ОФО',
'32'=>'[Доп] Зам.декана ЗФО',
'33'=>'[Доп] Зам.декана ОЗФО',
'35'=>'Общежитие',
'36'=>'БФУ',
'37'=>'Здравпункт',
'39'=>'Проверяющий кафедры',
'41'=>'мат.помощь ЧленКомиссии',
'42'=>'мат.помощь СекретарьКомиссии',
'59'=>'эфф.контракт Админ',
'60'=>'Управление научной деятельностью',
'71'=>'Председатель аккредитационной комиссии',
'72'=>'Центр аккредитации',
'77'=>'Сотрудник ИТ-отдела',
'78'=>'ДОП ДОСТУП',
'79'=>'Проректор по УР',
'80'=>'администратор учительской',
'97'=>'редактор инструкций',
'98'=>'администрирование пользователей',
'99'=>'супер админ');
if($id_user==0) $id_user = $_SESSION['user']['id'];
$sql = 'SELECT statuses FROM '.$this->Tusers_statuses.' WHERE id_user='.$id_user;
$rez = $this->DB->QUR_SEL($sql);
if(!$rez['err']&&$rez['kol']){
$stats = explode(',',$rez['rez'][0]['statuses']);
foreach ($stats as $k => $v){
//if($v!=79) {
if (isset($statuses[$v])) $out[$v] = $statuses[$v];
else $out[$v] = '-';
//}
}
}
return $out;
}
function teachers($id_user=0){
$out=array();
if($id_user==0) $id_user = $_SESSION['user']['id'];
$sql = 'SELECT * FROM '.$this->Tteachers.' WHERE id_user='.$id_user;
$rez = $this->DB->QUR_SEL($sql);
if(!$rez['err']&&$rez['kol']){
$out = $rez['rez'][0];
}
return $out;
}
}