Better fix for virtualalias visibility.
authorStéphane Jacob <sj@m4x.org>
Mon, 24 Oct 2011 22:25:17 +0000 (00:25 +0200)
committerStéphane Jacob <sj@m4x.org>
Mon, 24 Oct 2011 22:25:17 +0000 (00:25 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
classes/profile.php
modules/email.php
templates/emails/alias.tpl
upgrade/1.1.4/10_virtual_alias_pub.sql [new file with mode: 0644]

index 953d1d9..d46b864 100644 (file)
@@ -483,7 +483,7 @@ class Profile implements PlExportable
 
         XDB::execute("UPDATE  profiles
                          SET  cv = NULL, freetext = NULL, freetext_pub = 'private',
-                              medals_pub = 'private', alias_pub = 'private',
+                              medals_pub = 'private', alias_pub = 'hidden',
                               email_directory = NULL
                        WHERE  pid = {?}",
                      $this->id());
index 86c2a7e..331eacf 100644 (file)
@@ -152,7 +152,7 @@ class EmailModule extends PLModule
                                                  INNER JOIN  email_virtual_domains AS d ON (s.domain = d.id)
                                                       WHERE  s.uid = {?} AND s.type = \'alias_aux\'',
                                                     $user->id());
-        $visibility = $user->hasProfile() && ($user->profile(true)->alias_pub == 'public');
+        $visibility = $user->hasProfile() && $user->profile()->isVisible($user->profile()->alias_pub);
         $page->assign('current', $alias);
         $page->assign('user', $user);
         $page->assign('mail_public', $visibility);
@@ -163,11 +163,11 @@ class EmailModule extends PLModule
             // Retrieves user request.
             $new_alias  = Env::v('alias');
             $reason = Env::v('reason');
-            $public = (Env::v('public', 'off') == 'on') ? 'public' : 'private';
+            $public = (Env::v('public', 'off') == 'on') ? 'private' : 'hidden';
 
             $page->assign('r_alias', $new_alias);
             $page->assign('r_reason', $reason);
-            if ($public == 'public') {
+            if ($public == 'private') {
                 $page->assign('r_public', true);
             }
 
index 8eb7b75..9ebb6bf 100644 (file)
@@ -41,7 +41,7 @@
     <tr>
       <td class="orange">
         <input type="checkbox" {if $mail_public}checked="checked"{/if}
-            onclick="$.xget('{$globals->baseurl}/emails/alias/set/'+(this.checked?'public':'private')+'?token={xsrf_token}');
+            onclick="$.xget('{$globals->baseurl}/emails/alias/set/'+(this.checked?'private':'hidden')+'?token={xsrf_token}');
                 $('#mail_public').html((this.checked?'public et apparaît donc sur ta fiche':'privé et n\'apparaît nulle part sur le site') + '.');
             " />
       </td>
diff --git a/upgrade/1.1.4/10_virtual_alias_pub.sql b/upgrade/1.1.4/10_virtual_alias_pub.sql
new file mode 100644 (file)
index 0000000..4151e8a
--- /dev/null
@@ -0,0 +1,4 @@
+UPDATE profiles SET alias_pub = 'hidden' WHERE alias_pub = 'private';
+UPDATE profiles SET alias_pub = 'private' WHERE alias_pub = 'public';
+
+-- vim:set syntax=mysql: