Exemplo n.º 1
0
 function handler_admin_name($page, $hruid = null)
 {
     $page->changeTpl('admin/admin_name.tpl');
     if (Post::has('id')) {
         $user = User::get(Post::t('id'));
         if (is_null($user)) {
             $page->trigError("L'identifiant donné ne correspond à personne ou est ambigu.");
             exit;
         }
         pl_redirect('admin/name/' . $user->hruid);
     }
     $user = User::getSilent($hruid);
     if (!is_null($user)) {
         require_once 'name.func.inc.php';
         if ($user->hasProfile()) {
             $name_types = array('lastname_main' => 'Nom patronymique', 'lastname_marital' => 'Nom marital', 'lastname_ordinary' => 'Nom usuel', 'firstname_main' => 'Prénom', 'firstname_ordinary' => 'Prénom usuel', 'pseudonym' => 'Pseudonyme');
             $names = XDB::fetchOneAssoc('SELECT  lastname_main, lastname_marital, lastname_ordinary,
                                                  firstname_main, firstname_ordinary, pseudonym
                                            FROM  profile_public_names
                                           WHERE  pid = {?}', $user->profile()->id());
         } else {
             $name_types = array('lastname' => 'Nom', 'firstname' => 'Prénom');
             $names = XDB::fetchOneAssoc('SELECT  lastname, firstname
                                            FROM  accounts
                                           WHERE  uid = {?}', $user->id());
         }
         if (Post::has('correct')) {
             $new_names = array();
             $update = true;
             foreach ($name_types as $key => $fullname) {
                 $new_names[$key] = Post::t($key);
                 if (mb_strtolower($new_names[$key]) != mb_strtolower($names[$key])) {
                     $update = false;
                 }
             }
             if ($update) {
                 if ($user->hasProfile()) {
                     update_public_names($user->profile()->id(), $new_names);
                     update_display_names($user->profile(), $new_names);
                 } else {
                     $new_names['full_name'] = build_full_name($new_names['firstname'], $new_names['lastname']);
                     $new_names['directory_name'] = build_directory_name($new_names['firstname'], $new_names['lastname']);
                     $new_names['sort_name'] = build_sort_name($new_names['firstname'], $new_names['lastname']);
                     XDB::execute('UPDATE  accounts
                                      SET  lastname = {?}, firstname = {?}, full_name = {?},
                                           directory_name = {?}, sort_name = {?}
                                    WHERE  uid = {?}', $new_names['lastname'], $new_names['firstname'], $new_names['full_name'], $new_names['directory_name'], $new_names['sort_name'], $user->id());
                 }
                 $page->trigSuccess('Mise à jour réussie.');
             } else {
                 $page->trigError('Seuls des changements de casse sont autorisés ici.');
             }
         }
         if ($user->hasProfile()) {
             $names = XDB::fetchOneAssoc('SELECT  lastname_main, lastname_marital, lastname_ordinary,
                                                  firstname_main, firstname_ordinary, pseudonym
                                            FROM  profile_public_names
                                           WHERE  pid = {?}', $user->profile()->id());
         } else {
             $names = XDB::fetchOneAssoc('SELECT  lastname, firstname
                                            FROM  accounts
                                           WHERE  uid = {?}', $user->id());
         }
         foreach ($names as $key => $name) {
             $names[$key] = array('value' => $name, 'standard' => capitalize_name($name));
             $names[$key]['different'] = $names[$key]['value'] != $names[$key]['standard'];
         }
         $page->assign('uid', $user->id());
         $page->assign('hruid', $user->hruid);
         $page->assign('names', $names);
         $page->assign('name_types', $name_types);
     }
 }
Exemplo n.º 2
0
 public function save(ProfilePage $page, $field, $value)
 {
     require_once 'name.func.inc.php';
     $old = XDB::fetchOneAssoc('SELECT  lastname_main, lastname_marital, lastname_ordinary,
                                        firstname_main, firstname_ordinary, pseudonym
                                  FROM  profile_public_names
                                 WHERE  pid = {?}', $page->pid());
     if ($has_diff = $this->diff($page->pid(), $old, $value['public_names'])) {
         $new_names = new NamesReq(S::user(), $page->profile, $value['public_names'], $old);
         $new_names->submit();
         Platal::page()->assign('validation', true);
         Platal::page()->trigWarning('La demande de modification des noms a bien été prise en compte.' . ' Un email sera envoyé dès que ces changements auront été effectués.');
     }
     XDB::execute('DELETE FROM  profile_private_names
                         WHERE  pid = {?}', $page->pid());
     $values = array();
     $nickname = $lastname = $firstname = 0;
     if (isset($value['private_names'])) {
         foreach ($value['private_names'] as $name) {
             $values[] = XDB::format('({?}, {?}, {?}, {?})', $page->pid(), $name['type'], ${$name}['type']++, $name['name']);
         }
     }
     if (count($values)) {
         XDB::rawExecute('INSERT INTO  profile_private_names (pid, type, id, name)
                               VALUES  ' . implode(',', $values));
     }
     if ($has_diff) {
         update_display_names($page->profile, $old, $value['private_names']);
     } else {
         update_display_names($page->profile, $value['public_names'], isset($value['private_names']) ? $value['private_names'] : null);
     }
 }
Exemplo n.º 3
0
 public function commit()
 {
     require_once 'name.func.inc.php';
     update_public_names($this->profile->id(), $this->public_names);
     update_display_names($this->profile, $this->public_names);
     if (!is_null($this->profileOwner)) {
         if (!is_null($this->old_alias)) {
             XDB::execute('DELETE FROM  email_source_account
                                 WHERE  FIND_IN_SET(\'usage\', flags) AND uid = {?} AND type = \'alias\'', $this->profileOwner->id());
         }
         if (!is_null($this->new_alias)) {
             XDB::execute('INSERT INTO  email_source_account (email, uid, type, flags, domain)
                                SELECT  {?}, {?}, \'alias\', \'usage\', id
                                  FROM  email_virtual_domains
                                 WHERE  name = {?}', $this->new_alias, $this->profileOwner->id(), $this->profileOwner->mainEmailDomain());
         }
         require_once 'emails.inc.php';
         fix_bestalias($this->profileOwner);
         // Update the local User object, to pick up the new bestalias.
         $this->profileOwner = User::getSilentWithUID($this->profileOwner->id());
     }
     return true;
 }
Exemplo n.º 4
0
#!/usr/bin/php5
<?php 
require_once 'connect.db.inc.php';
require_once '../../include/name.func.inc.php';
$pids = XDB::fetchOneRow("SELECT  pid\n                            FROM  profile_public_names\n                           WHERE  firstname_ordinary = '0' OR lastname_marital = '0' OR lastname_ordinary = '0'");
XDB::execute("UPDATE  profile_public_names\n                 SET  firstname_ordinary = ''\n               WHERE  firstname_ordinary = '0'");
XDB::execute("UPDATE  profile_public_names\n                 SET  lastname_ordinary = ''\n               WHERE  lastname_ordinary = '0'");
XDB::execute("UPDATE  profile_public_names\n                 SET  lastname_ordinary = ''\n               WHERE  lastname_ordinary = '0'");
foreach ($pids as $pid) {
    $profile = Profile::get($pid);
    $item = XDB::fetchOneAssoc('SELECT  *
                                  FROM  profile_public_names
                                 WHERE  pid = {?}', $pid);
    update_display_names($profile, $item);
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: