- // Editer un profil
- case "u_edit":
- require_once('secure_hash.inc.php');
- $pass_encrypted = Env::v('newpass_clair') != "********" ? hash_encrypt(Env::v('newpass_clair')) : Env::v('passw');
- $naiss = Env::v('naissanceN');
- $deces = Env::v('decesN');
- $perms = Env::v('permsN');
- $prenm = Env::v('prenomN');
- $nom = Env::v('nomN');
- $promo = Env::i('promoN');
- $sexe = Env::v('sexeN');
- $comm = trim(Env::v('commentN'));
- $watch = Env::v('watchN');
- $flags = '';
- if ($sexe) {
- $flags = 'femme';
- }
- if ($watch) {
- if ($flags) {
- $flags .= ',';
+ // Updates the user profile with the new values.
+ $res = XDB::execute("UPDATE auth_user_md5
+ SET naissance = {?}, deces = {?}, password = {?},
+ perms = {?}, prenom = {?}, nom = {?}, nom_usage = {?},
+ flags = {?}, promo = {?}, comment = {?}
+ WHERE user_id = {?}",
+ $naiss, $deces, $pass_encrypted,
+ $perms, $prenom, $nom, $nomusage,
+ $flags, $promo, $comm, $user->id());
+ if ($res) {
+ require_once("user.func.inc.php");
+ user_reindex($user->id());
+ $new_fields = XDB::query($watch_query, $user->id())->fetchOneAssoc();
+
+ $mailer = new PlMailer("admin/useredit.mail.tpl");
+ $mailer->assign("admin", S::user()->login());
+ $mailer->assign("user", $user->login());
+ $mailer->assign('old', $old_fields);
+ $mailer->assign('new', $new_fields);
+ $mailer->send();
+
+ $globals->updateNbIns();
+ $page->trigSuccess("Update was successful.");
+ } else {
+ $page->trigError("Update failed, please double check your values.");
+ }
+
+ // Checks for changes, and updates other tables of plat/al.
+ if (Env::v('nomusageN') != $mr['nom_usage']) {
+ set_new_usage($user->id(), Env::v('nomusageN'), make_username(Env::v('prenomN'), Env::v('nomusageN')));
+ }
+ if (Env::v('decesN') != $mr['deces']) {
+ require_once 'notifs.inc.php';
+ register_watch_op($user->id(), WATCH_DEATH, $mr['deces']);
+ user_clear_all_subs($user->id(), false);
+ }
+
+ // Eventually updates the Google Apps account.
+ if ($globals->mailstorage->googleapps_domain) {
+ // If the user did choose to use synchronized passwords,
+ // and the password was changed, updates the Google Apps
+ // password as well.
+ if (Env::v('newpass_clair') != "********") {
+ require_once 'googleapps.inc.php';
+ $account = new GoogleAppsAccount($user);
+ if ($account->active() && $account->sync_password) {
+ $account->set_password($pass_encrypted);