{
global $globals, $TIME_BEGIN;
- session_write_close();
+ Platal::session()->close();
$this->register_prefilter('trimwhitespace');
$this->register_prefilter('form_force_encodings');
*/
public function startSUID($user)
{
- if (isset($_SESSION['suid'])) {
+ if (S::has('suid')) {
return false;
}
- $newsession = array();
- $backup =& $_SESSION;
- $_SESSION =& $newsession;
+ $backup = $_SESSION;
+ $_SESSION = array();
$this->fillSession();
S::set('suid', $backup);
if (!$this->startSessionAs($user, -1)) {
$this->stopSUID();
return false;
}
+ S::set('user', $user);
return true;
}
*/
public function stopSUID()
{
- if (!isset($_SESSION['suid'])) {
+ if (!S::has('suid')) {
return false;
}
- $_SESSION =& $_SESSION['suid'];
+ $_SESSION = $_SESSION['suid'];
return true;
}
if (S::has('suid')) {
$suid = S::v('suid');
S::set('log', new PlLogger(S::v('uid'), $suid['uid']));
- } else if (S::has('suid')) {
+ } else if (S::has('uid') || $uid) {
S::set('log', new PlLogger(S::v('uid', $uid)));
}
}
SET panne_level = IF(flags = 'panne', panne_level - 1, panne_level),
flags = 'active'
WHERE uid={?} AND email={?}", $this->uid, $this->email);
- $_SESSION['log']->log("email_on", $this->email.($this->uid!=S::v('uid') ? "(admin on {$this->uid})" : ""));
+ S::logger()->log("email_on", $this->email.($this->uid!=S::v('uid') ? "(admin on {$this->uid})" : ""));
$this->active = true;
$this->broken = false;
}
if ($this->active) {
XDB::execute("UPDATE emails SET flags =''
WHERE uid={?} AND email={?}", $this->uid, $this->email);
- $_SESSION['log']->log("email_off",$this->email.($this->uid != S::v('uid') ? "(admin on {$this->uid})" : "") );
+ S::logger()->log("email_off",$this->email.($this->uid != S::v('uid') ? "(admin on {$this->uid})" : "") );
$this->active = false;
}
}
return ERROR_INACTIVE_REDIRECTION;
}
XDB::execute('DELETE FROM emails WHERE uid={?} AND email={?}', $this->uid, $email);
- $_SESSION['log']->log('email_del',$email.($this->uid!=S::v('uid') ? " (admin on {$this->uid})" : ""));
+ S::logger()->log('email_del',$email.($this->uid!=S::v('uid') ? " (admin on {$this->uid})" : ""));
foreach ($this->emails as $i => $mail) {
if ($email == $mail->email) {
unset($this->emails[$i]);
}
XDB::execute('REPLACE INTO emails (uid,email,flags) VALUES({?},{?},"active")', $this->uid, $email);
if ($logger = S::v('log', null)) { // may be absent --> step4.php
- $logger->log('email_add',$email.($this->uid!=S::v('uid') ? " (admin on {$this->uid})" : ""));
+ S::logger()->log('email_add',$email.($this->uid!=S::v('uid') ? " (admin on {$this->uid})" : ""));
}
foreach ($this->emails as $mail) {
if ($mail->email == $email_stripped) {
define('DO_AUTH', 1);
define('NO_HTTPS', 2);
-define('DEBUG_BT', 1);
-define('DEBUG_VALID', 2);
-define('DEBUG_SMARTY', 4);
-
function pl_autoload($cls)
{
$cls = strtolower($cls);
function pl_dump_env()
{
echo "<div class='phperror'><pre>";
- echo "\nSESSION: "; var_dump($_SESSION);
+ echo "\nSESSION: " . session_id(); var_dump($_SESSION);
echo "\nPOST: "; var_dump($_POST);
echo "\nGET: "; var_dump($_GET);
echo "\nCOOKIE: "; var_dump($_COOKIE);
echo "</pre></div>";
- pl_print_errors();
}
function pl_print_errors()
function http_redirect($fullurl)
{
- if (count($_SESSION)) {
- session_write_close();
- }
- header('Location: '.$fullurl);
+ Platal::session()->close();
+ header('Location: '. $fullurl);
exit;
}
*/
private function tryCookie()
{
+ Platal::page()->trigError("Trying cookie");
S::kill('auth_by_cookie');
if (Cookie::v('ORGaccess') == '' || !Cookie::has('ORGuid')) {
return -1;
}
}
if ($response != $expected_response) {
- echo $response . '<br />';
- echo $expected_response . '<br />';
- echo $uname . '<br />' . $password . '<br />';
-// $logger = S::logger($uid);
-// $logger->log('auth_fail', 'bad password');
+ S::logger($uid)->log('auth_fail', 'bad password');
return null;
}
return $uid;
}
}
- $logger = S::logger();
$uid = $this->checkPassword($uname, $login, Post::v('response'), (!$redirect && preg_match('/^\d*$/', $uname)) ? 'id' : 'alias');
if (!is_null($uid)) {
S::set('auth', AUTH_MDP);
$_COOKIE['ORGdomain'] = $domain;
}
S::kill('challenge');
- if ($logger) {
- $logger->log('auth_ok');
- }
+ S::logger($uid)->log('auth_ok');
}
return $uid;
}
}
}
- private function makePerms($perm)
+ public function makePerms($perm)
{
$flags = new PlFlagSet();
if ($perm == 'disabled' || $perm == 'ext') {
}
if(Env::has('suid_button') && $login) {
- $_SESSION['log']->log("suid_start", "login by ".S::v('forlife'));
- $_SESSION['suid'] = $_SESSION;
- $r = XDB::query("SELECT id FROM aliases WHERE alias={?}", $login);
+ S::logger()->log("suid_start", "login by ".S::v('forlife'));
+ $r = XDB::query("SELECT id
+ FROM aliases
+ WHERE alias={?}", $login);
if($uid = $r->fetchOneCell()) {
- start_connexion($uid, true);
- pl_redirect("");
+ if (!Platal::session()->startSUID($uid)) {
+ $page->trigError('Impossible d\'effectuer un SUID sur ' . $uid);
+ } else {
+ $page->kill("coucou");
+ pl_redirect("");
+ }
}
}
$logger = (isset($_SESSION['log']) && $_SESSION['log']->uid == $uid)
? $_SESSION['log'] : new PlLogger($uid);
global $platal;
- $logger->log('connexion_auth_ext', $platal->path);
+ S::logger()->log('connexion_auth_ext', $platal->path);
}
/* on parcourt les entrees de groupes_auth */
require_once dirname(__FILE__).'/carnet/contacts.pdf.inc.php';
require_once 'user.func.inc.php';
- session_write_close();
+ Platal::session()->close();
$sql = "SELECT a.alias
FROM aliases AS a
}
if (isset($_SESSION['log'])) {
- $_SESSION['log']->log("suid_start", "login by ".S::v('forlife'));
+ S::logger()->log("suid_start", "login by ".S::v('forlife'));
}
- $_SESSION['suid'] = $_SESSION;
- $_SESSION['perms'] =& XorgSession::make_perms($level);
+ Platal::session()->startSUID(S::i('uid'));
+ Platal::session()->makePerms($level);
pl_redirect('/');
}
XDB::execute('UPDATE auth_user_quick
SET redirecturl = {?} WHERE user_id = {?}',
$url, S::v('uid'));
- $log->log('carva_add', 'http://'.Env::v('url'));
+ S::logger()->log('carva_add', 'http://'.Env::v('url'));
$page->trigSuccess("Redirection activée vers <a href='http://$url'>$url</a>");
} elseif (Env::v('submit') == "Supprimer") {
XDB::execute("UPDATE auth_user_quick
SET redirecturl = ''
WHERE user_id = {?}",
S::v('uid'));
- $log->log("carva_del", $url);
+ S::logger()->log("carva_del", $url);
Post::kill('url');
$page->trigSuccess('Redirection supprimée');
}
}
$log =& S::v('log');
- $log->log('passwd', '');
+ S::logger()->log('passwd', '');
if (Cookie::v('ORGaccess')) {
setcookie('ORGaccess', hash_encrypt($password), (time()+25920000), '/', '' ,0);
XDB::execute('UPDATE auth_user_md5 SET smtppass = {?}
WHERE user_id = {?}', $pass, $uid);
$page->trigSuccess('Mot de passe enregistré');
- $log->log("passwd_ssl");
+ S::logger()->log("passwd_ssl");
} elseif (Env::v('op') == "Supprimer") {
XDB::execute('UPDATE auth_user_md5 SET smtppass = ""
WHERE user_id = {?}', $uid);
$page->trigSuccess('Compte SMTP et NNTP supprimé');
- $log->log("passwd_del");
+ S::logger()->log("passwd_del");
}
$res = XDB::query("SELECT IF(smtppass != '', 'actif', '')
// on cree un objet logger et on log l'evenement
$logger = $_SESSION['log'] = new PlLogger($uid);
- $logger->log('recovery', $mails);
+ S::logger()->log('recovery', $mails);
} else {
$page->trigError('Les informations que tu as rentrées ne permettent pas de récupérer ton mot de passe.<br />'.
'Si tu as un homonyme, utilise prenom.nom.promo comme login');
}
$logger = new PlLogger($uid);
- $logger->log("passwd","");
+ S::logger()->log("passwd","");
$page->changeTpl('platal/tmpPWD.success.tpl');
} else {
$page->changeTpl('platal/motdepasse.tpl');
$a4l = S::v('forlife');
$suid = S::v('suid');
$log = S::v('log');
- $log->log("suid_stop", S::v('forlife') . " by " . $suid['forlife']);
+ S::logger()->log("suid_stop", S::v('forlife') . " by " . $suid['forlife']);
Platal::session()->stopSUID();
pl_redirect('admin/user/' . $a4l);
}
setcookie('ORGaccess', '', time() - 3600, '/', '', 0);
Cookie::kill('ORGaccess');
if (isset($_SESSION['log']))
- $_SESSION['log']->log("cookie_off");
+ S::logger()->log("cookie_off");
}
if ($level == 'forgetuid' || $level == 'forgetall') {
if (isset($_SESSION['log'])) {
$ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
- $_SESSION['log']->log('deconnexion',$ref);
+ S::logger()->log('deconnexion',$ref);
}
Platal::session()->destroy();
}
if (S::logged()) {
- $_SESSION['log']->log('view_profile', $login);
+ S::logger()->log('view_profile', $login);
}
$title = $user['prenom'] . ' ' . ( empty($user['nom_usage']) ? $user['nom'] : $user['nom_usage'] );
}
global $platal;
$log =& $_SESSION['log'];
- $log->log('profil', $platal->pl_self(1));
+ S::logger()->log('profil', $platal->pl_self(1));
}
protected function checkChanges()
// on cree un objet logger et on log l'inscription
$logger = new PlLogger($uid);
- $logger->log('inscription', $email);
+ S::logger()->log('inscription', $email);
XDB::execute('UPDATE register_pending SET hash="INSCRIT" WHERE uid={?}', $uid);
}
$log = S::v('log');
- $log->log('passwd', '');
+ S::logger()->log('passwd', '');
if (Cookie::v('ORGaccess')) {
require_once('secure_hash.inc.php');
if (Env::has('quick') || $action == 'geoloc') {
$quick = trim(Env::v('quick'));
if (S::logged() && !Env::has('page')) {
- $_SESSION['log']->log('search', 'quick=' . $quick);
+ S::logger()->log('search', 'quick=' . $quick);
}
$list = 'profile|prf|fiche|fic|referent|ref|mentor';
if (S::has_perms()) {
'city' => array('table' => 'geoloc_city', 'text' => 'name', 'exact' => false)
);
if (!Env::has('page')) {
- $_SESSION['log']->log('search', 'adv=' . var_export($_GET, true));
+ S::logger()->log('search', 'adv=' . var_export($_GET, true));
}
foreach ($textFields as $field=>&$query) {
if (!Env::v($field) && Env::v($field . 'Txt')) {