175 lines
4 KiB
PHP
Executable file
175 lines
4 KiB
PHP
Executable file
<?php
|
|
session_start();
|
|
|
|
//login
|
|
if ($ToDo=="Login")
|
|
{
|
|
$Login = (isset($_POST['Login'])) ? $_POST['Login'] :"";
|
|
$Password = (isset($_POST['Password'])) ? md5($_POST['Password']):"";
|
|
|
|
if ($Login=="root")
|
|
{
|
|
global $CfgRootPassword;
|
|
|
|
if ($Password==$CfgRootPassword)
|
|
{
|
|
MessageSuccess(LangSpell('ScentenceLoginSucceeded')."\n");
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']=$Login;
|
|
$_SESSION['Time']=time();
|
|
}
|
|
else
|
|
{
|
|
MessageError(LangSpell('ScentenceLoginFailed')."\n");
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']="";
|
|
$_SESSION['Time']=0;
|
|
}
|
|
}
|
|
else if ($Login)
|
|
{
|
|
global $GlobalMysqlHandler;
|
|
|
|
$query="SELECT * FROM `User` WHERE `Login` = '$Login' LIMIT 0 , 1";
|
|
$query=mysqli_query($GlobalMysqlHandler, $query);
|
|
$data=mysqli_fetch_array($query);
|
|
|
|
if ($Password==$data['Password'])
|
|
{
|
|
MessageSuccess(LangSpell('ScentenceLoginSucceeded')."\n");
|
|
$_SESSION['Id']=$data['Id'];
|
|
$_SESSION['Login']=$Login;
|
|
$_SESSION['Time']=time();
|
|
}
|
|
else
|
|
{
|
|
MessageError(LangSpell('ScentenceLoginFailed')."\n");
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']="";
|
|
$_SESSION['Time']=0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageError(LangSpell('ScentenceNoLoginSpecified')."\n");
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']="";
|
|
$_SESSION['Time']=0;
|
|
}
|
|
}
|
|
//logout
|
|
else if ($ToDo=="Logout")
|
|
{
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']="";
|
|
$_SESSION['Time']=0;
|
|
}
|
|
//load login from session
|
|
else
|
|
{
|
|
$Id = (isset($_SESSION['Id'])) ? $_SESSION['Id']:"";
|
|
$Login = (isset($_SESSION['Login'])) ? $_SESSION['Login']:"";
|
|
$Time = (isset($_SESSION['Time'])) ? $_SESSION['Time']:0;
|
|
if ($Login && ((time()-$GlobalUserTimeout)<=$Time))
|
|
{
|
|
$_SESSION['Time']=time();
|
|
}
|
|
elseif ($Login)
|
|
{
|
|
MessageWarning(LangSpell('ScentenceLoginTimeoutExpired'));
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']="";
|
|
$_SESSION['Time']=0;
|
|
}
|
|
}
|
|
|
|
//login messages
|
|
if (isset($_SESSION['Login']) && $_SESSION['Login']=="root")
|
|
MessageWarning(LangSpell('ScentenceLoggedAsRoot'));
|
|
|
|
//load user settings
|
|
UserLoadSettings();
|
|
|
|
|
|
/************
|
|
functions
|
|
*************/
|
|
function UserLogout()
|
|
{
|
|
$_SESSION['Id']=0;
|
|
$_SESSION['Login']="";
|
|
$_SESSION['Time']=0;
|
|
}
|
|
|
|
function UserIsLoggedIn()
|
|
{
|
|
$ReturnValue=0;
|
|
if (isset($_SESSION['Login']) && $_SESSION['Login'])
|
|
$ReturnValue=1;
|
|
else
|
|
$ReturnValue=0;
|
|
return $ReturnValue;
|
|
}
|
|
|
|
function UserGetLogin()
|
|
{
|
|
return ((isset($_SESSION['Login']))? $_SESSION['Login']:"");
|
|
}
|
|
|
|
function UserGetId()
|
|
{
|
|
return ((isset($_SESSION['Id']))? $_SESSION['Id']:0);
|
|
}
|
|
|
|
function UserHasRight($Right)
|
|
{
|
|
$Ret=0;
|
|
if (isset($_SESSION['Id']) && $_SESSION['Id']>0)
|
|
{
|
|
global $GlobalMysqlHandler;
|
|
$RightsQuery = "SELECT `$Right` FROM `UserRights` WHERE `Id` =".$_SESSION['Id'];
|
|
$RightsQuery = mysqli_query($GlobalMysqlHandler, $RightsQuery);
|
|
if ($RightsQuery && mysqli_num_rows($RightsQuery))
|
|
{
|
|
$RightData = mysqli_fetch_array($RightsQuery);
|
|
$Ret=(strtolower($RightData[$Right])=="true")? 1:0;
|
|
}
|
|
else
|
|
{
|
|
ErrorLog("[user.php] User with id '".$_SESSION['Id']."' not found in table 'UserRights' while asking for right '$Right'!");
|
|
}
|
|
}
|
|
return ($Ret);
|
|
}
|
|
|
|
function UserLoadSettings()
|
|
{
|
|
$Ret=0;
|
|
global $GlobalMysqlHandler;
|
|
|
|
global $GlobalTemplate;
|
|
global $CfgStdTemplate;
|
|
|
|
global $GlobalLanguage;
|
|
global $CfgStdLanguage;
|
|
|
|
if (isset($_SESSION['Id']) && $_SESSION['Id']>0)
|
|
{
|
|
$LoadQuery="SELECT `Template` , `Language` FROM `User` WHERE `Id` =".$_SESSION['Id'];
|
|
$LoadQuery=mysqli_query($GlobalMysqlHandler, $LoadQuery);
|
|
if ($LoadQuery)
|
|
{
|
|
$LoadValue=mysqli_fetch_array($LoadQuery);
|
|
$GlobalTemplate=($LoadValue['Template'])? $LoadValue['Template']:$CfgStdTemplate;
|
|
$GlobalLanguage=($LoadValue['Language'])? $LoadValue['Language']:$CfgStdLanguage;
|
|
$Ret=1;
|
|
}
|
|
else
|
|
{
|
|
ErrorLog("[user.php] Not able to load vars for user with id = ".$_SESSION['Id']."!");
|
|
}
|
|
}
|
|
return $Ret;
|
|
}
|
|
|
|
?>
|