You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

88 lines
1.7 KiB

<?Php
/**
* \class User
* \brief Handles the user's login and user.
*
*/
class User {
private $xmppSession;
private $username = '';
private $password = '';
private $config = array();
/**
* Class constructor. Reloads the user's session or attempts to authenticate
* the user.
* Note that the constructor is private. This class is a singleton.
*/
function __construct()
{
if($this->isLogged()) {
global $session;
$this->username = $session['user'].'@'.$session['host'];
$this->config = $session['config'];
}
}
/**
* Checks if the user has an open session.
*/
function isLogged()
{
// User is not logged in if both the session vars and the members are unset.
global $session;
return $session['on'];
}
function desauth()
{
PresenceHandler::clearPresence();
if($this->isLogged()) {
$p = new moxl\PresenceUnavaiable();
$p->request();
}
$sess = Session::start(APP_NAME);
Session::dispose(APP_NAME);
}
function setLang($language)
{
global $sdb;
$conf = $sdb->select('ConfVar', array('login' => $this->username));
$conf[0]->set('language', $language);
$sdb->save($conf[0]);
}
function getLogin()
{
return $this->username;
}
function getPass()
{
return $this->password;
}
function setConfig(array $config)
{
global $session;
$session['config'] = $config;
$sess = Session::start(APP_NAME);
$sess->set('session', $session);
}
function getConfig($key = false)
{
if($key == false)
return $this->config;
if(isset($this->config[$key]))
return $this->config[$key];
}
}