X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fxnetsession.php;h=765ad5eb54ec22708aa68a40303434325eaa1871;hb=d05cf8d4ad0bba8aa4e053ede5f9dccb9b0c88fa;hp=2833d329b934f01cfe3bb64dc9538628fd3f7096;hpb=a1c554a92888e0b017ba362817a67cc2849a9154;p=platal.git diff --git a/classes/xnetsession.php b/classes/xnetsession.php index 2833d32..765ad5e 100644 --- a/classes/xnetsession.php +++ b/classes/xnetsession.php @@ -34,6 +34,25 @@ class XnetSession extends XorgSession } } + if (!S::logged() && Post::has('auth_type') && Post::v('auth_type') == 'xnet' && !Post::has('wait')) { + $type = XDB::fetchOneCell('SELECT type + FROM accounts + WHERE hruid = {?}', + Post::v('username')); + if (!is_null($type) && $type != 'xnet') { + Platal::page()->trigErrorRedirect('Ce formulaire d\'authentification est réservé aux extérieurs à la communauté polytechnicienne.', ''); + } + + $user = parent::doAuth(AUTH_MDP); + if (is_null($user)) { + return false; + } + if (!parent::checkAuth(AUTH_MDP) || !parent::startSessionAs($user, AUTH_MDP)) { + $this->destroy(); + return false; + } + } + global $globals; if (!S::logged() && $globals->xnet->auth_baseurl) { // prevent connection to be linked to disconnection