X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fregister.php;h=1437e16950f22f2c103f7e7b87593193571a266b;hb=bd5dad646a43b336ede8c679389a3448b5d7f2a3;hp=39e1034c6c788ec370173168b47d3fdccc441ba9;hpb=020a95fa78dc544b3064739d409026a0056d98f4;p=platal.git diff --git a/modules/register.php b/modules/register.php index 39e1034..1437e16 100644 --- a/modules/register.php +++ b/modules/register.php @@ -29,7 +29,7 @@ class RegisterModule extends PLModule ); } - function handler_register(&$page, $hash = null) + function handler_register($page, $hash = null) { $alert = null; $subState = new PlDict(S::v('subState', array())); @@ -41,8 +41,8 @@ class RegisterModule extends PLModule } if (Get::has('back') && Get::i('back') < $subState->i('step')) { $subState->set('step', max(0, Get::i('back'))); - $subState->v('back')->set($subState->v('back')->count() + 1, $subState->dict()); - $subState->v('back')->kill('back'); + $subState->v('backs')->set($subState->v('backs')->count() + 1, $subState->dict()); + $subState->v('backs')->kill('backs'); if ($subState->v('backs')->count() == 3) { $alert .= "Tentative d'inscription très hésitante - "; } @@ -52,7 +52,7 @@ class RegisterModule extends PLModule $nameTypes = DirEnum::getOptions(DirEnum::NAMETYPES); $nameTypes = array_flip($nameTypes); $res = XDB::query("SELECT a.uid, pd.promo, pnl.name AS lastname, pnf.name AS firstname, p.xorg_id AS xorgid, - p.birthdate_ref AS birthdateRef, FIND_IN_SET('watch', a.flags) AS watch, m.hash + p.birthdate_ref AS birthdateRef, FIND_IN_SET('watch', a.flags) AS watch, m.hash, a.type FROM register_marketing AS m INNER JOIN accounts AS a ON (m.uid = a.uid) INNER JOIN account_profiles AS ap ON (a.uid = ap.uid AND FIND_IN_SET('owner', ap.perms)) @@ -65,6 +65,7 @@ class RegisterModule extends PLModule if ($res->numRows() == 1) { $subState->merge($res->fetchOneRow()); + $subState->set('main_mail_domain', User::$sub_mail_domains[$subState->v('type')]); $subState->set('yearpromo', substr($subState->s('promo'), 1, 4)); XDB::execute('INSERT INTO register_mstats (uid, sender, success) @@ -92,8 +93,9 @@ class RegisterModule extends PLModule case 1: if (Post::has('yearpromo')) { - $promo = Post::t('edu_type') . Post::t('yearpromo'); + $edu_type = Post::t('edu_type'); $yearpromo = Post::i('yearpromo'); + $promo = $edu_type . $yearpromo; $res = XDB::query("SELECT COUNT(*) FROM accounts AS a INNER JOIN account_profiles AS ap ON (a.uid = ap.uid AND FIND_IN_SET('owner', ap.perms)) @@ -108,10 +110,15 @@ class RegisterModule extends PLModule $subState->set('step', 2); $subState->set('promo', $promo); $subState->set('yearpromo', $yearpromo); - if ($yearpromo >= 1996 && $yearpromo < 2000) { - $subState->set('schoolid', ($yearpromo % 100) * 10 . '???'); - } elseif($yearpromo >= 2000) { - $subState->set('schoolid', 100 + ($yearpromo % 100) . '???'); + $subState->set('edu_type', $edu_type); + if ($edu_type == 'X') { + if ($yearpromo >= 1996 && $yearpromo < 2000) { + $subState->set('schoolid', ($yearpromo % 100) * 10 . '???'); + } elseif($yearpromo >= 2000) { + $subState->set('schoolid', 100 + ($yearpromo % 100) . '???'); + } + } else { + $subState->set('schoolid', ''); } } } @@ -249,13 +256,12 @@ class RegisterModule extends PLModule } $page->changeTpl('register/step' . $subState->i('step') . '.tpl'); - $page->addJsLink('password.js'); if (isset($error)) { $page->trigError($error); } } - function handler_end(&$page, $hash = null) + function handler_end($page, $hash = null) { global $globals; $_SESSION['subState'] = array('step' => 5); @@ -306,10 +312,10 @@ class RegisterModule extends PLModule $birthdate, $lastname, $firstname, $promo, $sex, $birthdate_ref, $eduType) = $res->fetchOneRow(); $isX = ($eduType == 'x'); $yearpromo = substr($promo, 1, 4); + $mail_domain = User::$sub_mail_domains[$eduType] . $globals->mail->domain; // Prepare the template for display. $page->changeTpl('register/end.tpl'); - $page->addJsLink('do_challenge_response_logged.js'); $page->assign('forlife', $forlife); $page->assign('firstname', $firstname); @@ -337,35 +343,47 @@ class RegisterModule extends PLModule XDB::execute("UPDATE profiles SET birthdate = {?}, last_change = NOW() WHERE pid = {?}", $birthdate, $pid); - XDB::execute("INSERT INTO aliases (uid, alias, type) - VALUES ({?}, {?}, 'a_vie')", $uid, $forlife); - XDB::execute("INSERT INTO aliases (uid, alias, type, flags) - VALUES ({?}, {?}, 'alias', 'bestalias')", $uid, $bestalias); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'forlife\', \'\', id + FROM email_virtual_domains + WHERE name = {?}', + $forlife, $uid, $mail_domain); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'alias\', \'bestalias\', id + FROM email_virtual_domains + WHERE name = {?}', + $bestalias, $uid, $mail_domain); if ($emailXorg2) { - XDB::execute("INSERT INTO aliases (uid, alias, type) - VALUES ({?}, {?}, 'alias')", $uid, $emailXorg2); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'alias\', \'\', id + FROM email_virtual_domains + WHERE name = {?}', + $emailXorg2, $uid, $mail_domain); } XDB::commit(); // Add the registration email address as first and only redirection. require_once 'emails.inc.php'; + $user = User::getSilentWithUID($uid); $redirect = new Redirect($user); $redirect->add_email($email); // Try to start a session (so the user don't have to log in); we will use // the password available in Post:: to authenticate the user. - $success = Platal::session()->start(AUTH_MDP); + Platal::session()->start(AUTH_MDP); // Subscribe the user to the services she did request at registration time. foreach (explode(',', $services) as $service) { + require_once 'newsletter.inc.php'; switch ($service) { case 'ax_letter': - Platal::load('axletter', 'axletter.inc.php'); - AXLetter::subscribe($uid); + NewsLetter::forGroup(NewsLetter::GROUP_AX)->subscribe($user); + break; + case 'nl': + NewsLetter::forGroup(NewsLetter::GROUP_XORG)->subscribe($user); break; case 'imap': - $storage = new EmailStorage($user, 'imap'); - $storage->activate(); + Email::activate_storage($user, 'imap'); break; case 'ml_promo': $r = XDB::query('SELECT id FROM groups WHERE diminutif = {?}', $yearpromo); @@ -383,10 +401,6 @@ class RegisterModule extends PLModule } } break; - case 'nl': - require_once 'newsletter.inc.php'; - NewsLetter::subscribe($uid); - break; } }