public function stopSUID()
{
- $suid = S::v('suid');
+ $perms = S::suid('perms');
if (!parent::stopSUID()) {
return false;
}
- S::kill('suid');
S::kill('may_update');
S::kill('is_member');
- S::set('perms', $suid['perms']);
+ S::set('perms', $perms);
return true;
}
}
return false;
} elseif ($lose) {
$may_update[$asso_id] = false;
- } elseif (S::has_perms() || (S::has('suid') && $force)) {
+ } elseif (S::admin() || (S::suid() && $force)) {
$may_update[$asso_id] = true;
} elseif (!isset($may_update[$asso_id]) || $force) {
$res = XDB::query("SELECT perms
return false;
} elseif ($lose) {
$is_member[$asso_id] = false;
- } elseif (S::has('suid') && $force) {
+ } elseif (S::suid() && $force) {
$is_member[$asso_id] = true;
} elseif (!isset($is_member[$asso_id]) || $force) {
$res = XDB::query("SELECT COUNT(*)
/** We come from an authentication form.
*/
- if (S::has('suid')) {
- $suid = S::v('suid');
- $login = $uname = $suid['uid'];
+ if (S::suid()) {
+ $login = $uname = S::suid('uid');
$redirect = false;
} else {
$uname = Env::v('username');
}
$uid = $this->checkPassword($uname, $login, Post::v('response'), (!$redirect && is_numeric($uname)) ? 'id' : 'alias');
- if (!is_null($uid) && S::has('suid')) {
- $suid = S::v('suid');
- if ($suid['uid'] == $uid) {
+ if (!is_null($uid) && S::suid()) {
+ if (S::suid('uid') == $uid) {
$uid = S::i('uid');
} else {
$uid = null;
}
if (!is_null($uid)) {
S::set('auth', AUTH_MDP);
- if (!S::has('suid')) {
+ if (!S::suid()) {
if (Post::has('domain')) {
if (($domain = Post::v('domain', 'login')) == 'alias') {
Cookie::set('domain', 'alias', 300);
protected function startSessionAs($user, $level)
{
+ if (!($user instanceof User)) {
+ $user = User::getSilent($user);
+ if ($user === false) {
+ return false;
+ }
+ }
if ((!is_null(S::v('user')) && S::i('user') != $user->id())
|| (S::has('uid') && S::i('uid') != $user->id())) {
return false;
$_SESSION = array_merge($_SESSION, $sess);
// Starts the session's logger, and sets up the permanent cookie.
- if (S::has('suid')) {
- $suid = S::v('suid');
- S::logger()->log("suid_start", S::v('hruid') . " by " . $suid['hruid']);
+ if (S::suid()) {
+ S::logger()->log("suid_start", S::v('hruid') . ' by ' . S::suid('hruid'));
} else {
S::logger()->saveLastSession();
Cookie::set('uid', $user->id(), 300);
public function setSkin()
{
- if (S::logged() && (!S::has('skin') || S::has('suid'))) {
+ if (S::logged() && (!S::has('skin') || S::suid())) {
$uid = S::v('uid');
$res = XDB::query('SELECT skin_tpl
FROM accounts AS a
}
public function setAccessCookie($replace = false, $log = true) {
- if (S::has('suid') || ($replace && !Cookie::blank('access'))) {
+ if (S::suid() || ($replace && !Cookie::blank('access'))) {
return;
}
Cookie::set('access', sha1(S::v('password')), 300, true);
-Subproject commit c1414bcad94fd52d3ba4a16eafec2d4acc625f6d
+Subproject commit f1c8bb75eaae934ac2dd1cbd7f8bbc10960413ee
$page->setTitle('Administration - Edit/Su/Log');
require_once("emails.inc.php");
- if (S::has('suid')) {
+ if (S::suid()) {
$page->kill("Déjà en SUID !!!");
}
}
if(Env::has('suid_button') && $registered) {
- S::logger()->log("suid_start", "login on " . $user->login());
if (!Platal::session()->startSUID($user->id())) {
$page->trigError('Impossible d\'effectuer un SUID sur ' . $user->id());
} else {
// mise à jour de l'heure et de la machine de dernier login sauf quand on est en suid
$uid = S::i('uid');
- if (!isset($_SESSION['suid'])) {
+ if (!S::suid()) {
global $platal;
- S::logger(uid)->log('connexion_auth_ext', $platal->path);
+ S::logger($uid)->log('connexion_auth_ext', $platal->path);
}
/* on parcourt les entrees de groupes_auth */
function handler_exit(&$page, $level = null)
{
- if (S::has('suid')) {
- $suid = S::v('suid');
- $log = S::v('log');
- S::logger()->log("suid_stop", S::user()->login() . " by " . $suid['hruid']);
+ if (S::suid()) {
+ S::logger()->log('suid_stop', S::user()->login() . " by " . S::suid('hruid'));
Platal::session()->stopSUID();
pl_redirect('admin/user/' . S::user()->login());
}
// Update the last modification date
XDB::execute('REPLACE INTO user_changes
SET user_id = {?}', S::v('uid'));
- if (!S::has('suid')) {
+ if (!S::suid()) {
register_watch_op(S::i('uid'), WATCH_FICHE);
}
global $platal;
function handler_change_rights(&$page)
{
- if (Env::has('right') && (may_update() || S::has('suid'))) {
+ if (Env::has('right') && (may_update() || S::suid())) {
switch (Env::v('right')) {
case 'admin':
Platal::session()->stopSUID();