Adds notion of directory name for users.
authorStéphane Jacob <sj@m4x.org>
Sat, 17 Jul 2010 11:47:34 +0000 (13:47 +0200)
committerStéphane Jacob <sj@m4x.org>
Sat, 17 Jul 2010 15:29:44 +0000 (17:29 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
classes/user.php
modules/admin.php
modules/xnetgrp.php
templates/admin/user.tpl
templates/xnetgrp/membres-edit.tpl
upgrade/1.0.1/02_accounts.sql [new file with mode: 0644]

index 2a399ad..55d8d1a 100644 (file)
@@ -179,7 +179,7 @@ class User extends PlUser
                                       CONCAT(af.alias, \'@' . $globals->mail->domain2 . '\') AS forlife_alternate,
                                       IF (ab.alias IS NULL, a.email, CONCAT(ab.alias, \'@' . $globals->mail->domain . '\')) AS bestalias,
                                       CONCAT(ab.alias, \'@' . $globals->mail->domain2 . '\') AS bestalias_alternate,
                                       CONCAT(af.alias, \'@' . $globals->mail->domain2 . '\') AS forlife_alternate,
                                       IF (ab.alias IS NULL, a.email, CONCAT(ab.alias, \'@' . $globals->mail->domain . '\')) AS bestalias,
                                       CONCAT(ab.alias, \'@' . $globals->mail->domain2 . '\') AS bestalias_alternate,
-                                      a.full_name, a.display_name, a.sex = \'female\' AS gender,
+                                      a.full_name, a.directory_name, a.display_name, a.sex = \'female\' AS gender,
                                       IF(a.state = \'active\', at.perms, \'\') AS perms,
                                       a.email_format, a.is_admin, a.state, a.type, a.skin,
                                       FIND_IN_SET(\'watch\', a.flags) AS watch, a.comment,
                                       IF(a.state = \'active\', at.perms, \'\') AS perms,
                                       a.email_format, a.is_admin, a.state, a.type, a.skin,
                                       FIND_IN_SET(\'watch\', a.flags) AS watch, a.comment,
@@ -307,7 +307,7 @@ class User extends PlUser
     public function directoryName()
     {
         if (!$this->hasProfile()) {
     public function directoryName()
     {
         if (!$this->hasProfile()) {
-            return $this->full_name;
+            return $this->directory_name;
         }
         return $this->profile()->directory_name;
     }
         }
         return $this->profile()->directory_name;
     }
index 5f3ba19..9621f21 100644 (file)
@@ -421,6 +421,10 @@ class AdminModule extends PLModule
                 // XXX: Update profile if a profile is associated
                 $to_update['display_name'] = Post::s('display_name');
             }
                 // XXX: Update profile if a profile is associated
                 $to_update['display_name'] = Post::s('display_name');
             }
+            if (Post::s('directory_name') != $user->directoryName()) {
+                // XXX: Update profile if a profile is associated
+                $to_update['directory_name'] = Post::s('directory_name');
+            }
             if (Post::s('sex') != ($user->isFemale() ? 'female' : 'male')) {
                 $to_update['sex'] = Post::s('sex');
             }
             if (Post::s('sex') != ($user->isFemale() ? 'female' : 'male')) {
                 $to_update['sex'] = Post::s('sex');
             }
index 7cf8d26..b46ffed 100644 (file)
@@ -867,9 +867,9 @@ class XnetGrpModule extends PLModule
             $from_email = $user->forlifeEmail();
             if (!$user->profile()) {
                 XDB::query('UPDATE  accounts
             $from_email = $user->forlifeEmail();
             if (!$user->profile()) {
                 XDB::query('UPDATE  accounts
-                               SET  full_name = {?}, display_name = {?}, sex = {?}, email = {?}, type = {?}
+                               SET  full_name = {?}, directory_name = {?}, display_name = {?}, sex = {?}, email = {?}, type = {?}
                              WHERE  uid = {?}',
                              WHERE  uid = {?}',
-                            Post::v('full_name'), Post::v('display_name'), (Post::v('sex') == 'male')?'male':'female', Post::v('email'), (Post::v('type') == 'xnet')?'xnet':'virtual',
+                            Post::t('full_name'), Post::t('directory_name'), Post::t('display_name'), (Post::v('sex') == 'male')?'male':'female', Post::v('email'), (Post::v('type') == 'xnet')?'xnet':'virtual',
                             $user->id());
                 if (XDB::affectedRows()) {
                     $page->trigSuccess('Données de l\'utilisateur mise à jour.');
                             $user->id());
                 if (XDB::affectedRows()) {
                     $page->trigSuccess('Données de l\'utilisateur mise à jour.');
index 9ee2da7..115b517 100644 (file)
@@ -130,6 +130,10 @@ $(document).ready(function() {
       <td><input type="text" name="full_name" maxlength="255" value="{$user->fullName()}" /></td>
     </tr>
     <tr>
       <td><input type="text" name="full_name" maxlength="255" value="{$user->fullName()}" /></td>
     </tr>
     <tr>
+      <td class="titre">Nom annuaire</td>
+      <td><input type="text" name="directory_name" maxlength="255" value="{$user->directoryName()}" /></td>
+    </tr>
+    <tr>
       <td class="titre">Nom affiché</td>
       <td><input type="text" name="display_name" maxlength="255" value="{$user->displayName()}" /></td>
     </tr>
       <td class="titre">Nom affiché</td>
       <td><input type="text" name="display_name" maxlength="255" value="{$user->displayName()}" /></td>
     </tr>
index 1b506c6..fe25f63 100644 (file)
         <input type="text" value="{$user->fullName()}" name="full_name" size="40"{if $user->profile()} disabled="disabled"{/if} />
       </td>
     </tr>
         <input type="text" value="{$user->fullName()}" name="full_name" size="40"{if $user->profile()} disabled="disabled"{/if} />
       </td>
     </tr>
+    <tr class="impair">
+      <td class="titre">
+        Nom annuaire&nbsp;:
+      </td>
+      <td>
+        <input type="text" value="{$user->directoryName()}" name="directory_name" size="40"{if $user->profile()} disabled="disabled"{/if} />
+      </td>
+    </tr>
     <tr id="sexe" class="impair" {if $user->type eq "virtual"}style="display: none"{/if}>
       <td class="titre">
         Sexe&nbsp;:
     <tr id="sexe" class="impair" {if $user->type eq "virtual"}style="display: none"{/if}>
       <td class="titre">
         Sexe&nbsp;:
diff --git a/upgrade/1.0.1/02_accounts.sql b/upgrade/1.0.1/02_accounts.sql
new file mode 100644 (file)
index 0000000..342e174
--- /dev/null
@@ -0,0 +1,8 @@
+ALTER TABLE accounts ADD COLUMN directory_name VARCHAR(255) DEFAULT NULL;
+UPDATE  accounts AS a
+   SET  a.directory_name = (SELECT  pd.directory_name
+                              FROM  profile_display  AS pd
+                        INNER JOIN  account_profiles AS ap ON (ap.uid = pd.pid AND FIND_IN_SET('owner', perms))
+                             WHERE  a.uid = ap.uid);
+
+-- vim:set syntax=mysql: