X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fadmin.php;h=a2d5d59adb9127274c9a6501d10118dbf40eef22;hb=115ca093b7f7569e0066561add69ee7e44e0f9f7;hp=b9e9b18b219dbe539193068d3ce40dc1fafa7e99;hpb=47f517897206a0b953214f19b96a42f2707fc107;p=platal.git diff --git a/modules/admin.php b/modules/admin.php index b9e9b18..a2d5d59 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -24,38 +24,38 @@ class AdminModule extends PLModule function handlers() { return array( - 'phpinfo' => $this->make_hook('phpinfo', AUTH_MDP, 'admin'), + 'phpinfo' => $this->make_hook('phpinfo', AUTH_PASSWD, 'admin'), 'get_rights' => $this->make_hook('get_rights', AUTH_COOKIE, 'admin'), 'set_skin' => $this->make_hook('set_skin', AUTH_COOKIE, 'admin'), - 'admin' => $this->make_hook('default', AUTH_MDP, 'admin'), - 'admin/dead-but-active' => $this->make_hook('dead_but_active', AUTH_MDP, 'admin'), - 'admin/deaths' => $this->make_hook('deaths', AUTH_MDP, 'admin'), - 'admin/downtime' => $this->make_hook('downtime', AUTH_MDP, 'admin'), - 'admin/homonyms' => $this->make_hook('homonyms', AUTH_MDP, 'admin'), - 'admin/logger' => $this->make_hook('logger', AUTH_MDP, 'admin'), - 'admin/logger/actions' => $this->make_hook('logger_actions', AUTH_MDP, 'admin'), - 'admin/postfix/blacklist' => $this->make_hook('postfix_blacklist', AUTH_MDP, 'admin'), - 'admin/postfix/delayed' => $this->make_hook('postfix_delayed', AUTH_MDP, 'admin'), - 'admin/postfix/regexp_bounces' => $this->make_hook('postfix_regexpsbounces', AUTH_MDP, 'admin'), - 'admin/postfix/whitelist' => $this->make_hook('postfix_whitelist', AUTH_MDP, 'admin'), - 'admin/mx/broken' => $this->make_hook('mx_broken', AUTH_MDP, 'admin'), - 'admin/skins' => $this->make_hook('skins', AUTH_MDP, 'admin'), - 'admin/user' => $this->make_hook('user', AUTH_MDP, 'admin'), - 'admin/add_accounts' => $this->make_hook('add_accounts', AUTH_MDP, 'admin'), - 'admin/validate' => $this->make_hook('validate', AUTH_MDP, 'admin,edit_directory'), - 'admin/validate/answers' => $this->make_hook('validate_answers', AUTH_MDP, 'admin'), - 'admin/wiki' => $this->make_hook('wiki', AUTH_MDP, 'admin'), - 'admin/ipwatch' => $this->make_hook('ipwatch', AUTH_MDP, 'admin'), - 'admin/icons' => $this->make_hook('icons', AUTH_MDP, 'admin'), - 'admin/geocoding' => $this->make_hook('geocoding', AUTH_MDP, 'admin'), - 'admin/accounts' => $this->make_hook('accounts', AUTH_MDP, 'admin'), - 'admin/account/watch' => $this->make_hook('account_watch', AUTH_MDP, 'admin'), - 'admin/account/types' => $this->make_hook('account_types', AUTH_MDP, 'admin'), - 'admin/xnet_without_group' => $this->make_hook('xnet_without_group', AUTH_MDP, 'admin'), - 'admin/jobs' => $this->make_hook('jobs', AUTH_MDP, 'admin,edit_directory'), - 'admin/profile' => $this->make_hook('profile', AUTH_MDP, 'admin,edit_directory'), - 'admin/phd' => $this->make_hook('phd', AUTH_MDP, 'admin'), - 'admin/add_secondary_edu' => $this->make_hook('add_secondary_edu', AUTH_MDP, 'admin') + 'admin' => $this->make_hook('default', AUTH_PASSWD, 'admin'), + 'admin/dead-but-active' => $this->make_hook('dead_but_active', AUTH_PASSWD, 'admin'), + 'admin/deaths' => $this->make_hook('deaths', AUTH_PASSWD, 'admin'), + 'admin/downtime' => $this->make_hook('downtime', AUTH_PASSWD, 'admin'), + 'admin/homonyms' => $this->make_hook('homonyms', AUTH_PASSWD, 'admin'), + 'admin/logger' => $this->make_hook('logger', AUTH_PASSWD, 'admin'), + 'admin/logger/actions' => $this->make_hook('logger_actions', AUTH_PASSWD, 'admin'), + 'admin/postfix/blacklist' => $this->make_hook('postfix_blacklist', AUTH_PASSWD, 'admin'), + 'admin/postfix/delayed' => $this->make_hook('postfix_delayed', AUTH_PASSWD, 'admin'), + 'admin/postfix/regexp_bounces' => $this->make_hook('postfix_regexpsbounces', AUTH_PASSWD, 'admin'), + 'admin/postfix/whitelist' => $this->make_hook('postfix_whitelist', AUTH_PASSWD, 'admin'), + 'admin/mx/broken' => $this->make_hook('mx_broken', AUTH_PASSWD, 'admin'), + 'admin/skins' => $this->make_hook('skins', AUTH_PASSWD, 'admin'), + 'admin/user' => $this->make_hook('user', AUTH_PASSWD, 'admin'), + 'admin/add_accounts' => $this->make_hook('add_accounts', AUTH_PASSWD, 'admin'), + 'admin/validate' => $this->make_hook('validate', AUTH_PASSWD, 'admin,edit_directory'), + 'admin/validate/answers' => $this->make_hook('validate_answers', AUTH_PASSWD, 'admin'), + 'admin/wiki' => $this->make_hook('wiki', AUTH_PASSWD, 'admin'), + 'admin/ipwatch' => $this->make_hook('ipwatch', AUTH_PASSWD, 'admin'), + 'admin/icons' => $this->make_hook('icons', AUTH_PASSWD, 'admin'), + 'admin/geocoding' => $this->make_hook('geocoding', AUTH_PASSWD, 'admin'), + 'admin/accounts' => $this->make_hook('accounts', AUTH_PASSWD, 'admin'), + 'admin/account/watch' => $this->make_hook('account_watch', AUTH_PASSWD, 'admin'), + 'admin/account/types' => $this->make_hook('account_types', AUTH_PASSWD, 'admin'), + 'admin/xnet_without_group' => $this->make_hook('xnet_without_group', AUTH_PASSWD, 'admin'), + 'admin/jobs' => $this->make_hook('jobs', AUTH_PASSWD, 'admin,edit_directory'), + 'admin/profile' => $this->make_hook('profile', AUTH_PASSWD, 'admin,edit_directory'), + 'admin/phd' => $this->make_hook('phd', AUTH_PASSWD, 'admin'), + 'admin/add_secondary_edu' => $this->make_hook('add_secondary_edu', AUTH_PASSWD, 'admin') ); } @@ -518,10 +518,11 @@ class AdminModule extends PLModule if (Post::t('comment') != $user->comment) { $to_update['comment'] = Post::blank('comment') ? null : Post::t('comment'); } - if (require_email_update($user, Post::t('email'))) { - $to_update['email'] = Post::t('email'); - $listClient->change_user_email($user->forlifeEmail(), Post::t('email')); - update_alias_user($user->forlifeEmail(), Post::t('email')); + $new_email = strtolower(Post::t('email')); + if (require_email_update($user, $new_email)) { + $to_update['email'] = $new_email; + $listClient->change_user_email($user->forlifeEmail(), $new_email); + update_alias_user($user->forlifeEmail(), $new_email); } } if (!empty($to_update)) { @@ -592,7 +593,7 @@ class AdminModule extends PLModule $redirect = ($registered ? new Redirect($user) : null); if (Post::has('add_fwd')) { $email = Post::t('email'); - if (!isvalid_email_redirection($email)) { + if (!isvalid_email_redirection($email, $user)) { $page->trigError("Email non valide: $email"); } else { $redirect->add_email($email); @@ -814,6 +815,7 @@ class AdminModule extends PLModule $page->changeTpl('admin/add_accounts.tpl'); if (Env::has('add_type') && Env::has('people')) { + static $titles = array('male' => 'M', 'female' => 'MLLE'); $lines = explode("\n", Env::t('people')); $separator = Env::t('separator'); $promotion = Env::i('promotion'); @@ -872,9 +874,10 @@ class AdminModule extends PLModule continue; } - XDB::execute('INSERT INTO profiles (hrpid, xorg_id, ax_id, birthdate_ref, sex) - VALUES ({?}, {?}, {?}, {?}, {?})', - $infos['hrid'], $xorgId, (isset($infos[5]) ? $infos[5] : null), $birthDate, $sex); + XDB::execute('INSERT INTO profiles (hrpid, xorg_id, ax_id, birthdate_ref, sex, title) + VALUES ({?}, {?}, {?}, {?}, {?}, {?})', + $infos['hrid'], $xorgId, (isset($infos[5]) ? $infos[5] : null), + $birthDate, $sex, $titles[$sex]); $pid = XDB::insertId(); XDB::execute('INSERT INTO profile_public_names (pid, lastname_initial, lastname_main, firstname_initial, firstname_main) VALUES ({?}, {?}, {?}, {?}, {?})', @@ -1988,7 +1991,8 @@ class AdminModule extends PLModule XDB::execute('INSERT INTO profile_education (id, pid, eduid, degreeid, entry_year, grad_year, promo_year, flags) SELECT ' . $select . ' FROM profile_education - WHERE pid = {?}', + WHERE pid = {?} + GROUP BY pid', $pid); } XDB::commit();