Bearbeiten von Nutzern mit Umlauten im Namen gefixt
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 25 Feb 2011 17:03:27 +0000 (18:03 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 25 Feb 2011 17:03:27 +0000 (18:03 +0100)
HTML.url() nimmt Perls interne Stringrepräsentation und ersetzt darin
die Umlaute. In UTF-8-Installationen muss das Ersetzen aber auf einer
UTF-8-Repräsentation erfolgen (so wie es Form::escape() auch macht).

Zweiter Teil des Fixes für Bug 1606.

bin/mozilla/admin.pl
templates/webpages/admin/list_users.html

index e92de0c..ddb12b1 100755 (executable)
@@ -34,6 +34,7 @@
 
 use DBI;
 use CGI;
+use Encode;
 use English qw(-no_match_vars);
 use Fcntl;
 use File::Copy;
@@ -342,7 +343,10 @@ sub list_users {
 
   delete $members{"root login"};
 
-  map { $_->{templates} =~ s|.*/||; } values %members;
+  for (values %members) {
+    $_->{templates} =~ s|.*/||;
+    $_->{login_url} =  $::locale->is_utf8 ? Encode::encode('utf-8-strict', $_->{login}) : $_->{login_url};
+  }
 
   $form->{title}   = "Lx-Office ERP " . $locale->text('Administration');
   $form->{LOCKED}  = -e _nologin_file_name();
index 0828b00..eb55dc5 100644 (file)
@@ -21,7 +21,7 @@
 
     [% FOREACH row = MEMBERS %]
      <tr class="listrow[% loop.count % 2 %]">
-      <td>&nbsp;<a href="admin.pl?action=edit&login=[% HTML.url(row.login) %]">[% HTML.escape(row.login) %]</a></td>
+      <td>&nbsp;<a href="admin.pl?action=edit&login=[% HTML.url(row.login_url) %]">[% HTML.escape(row.login) %]</a></td>
       <td>&nbsp;[% HTML.escape(row.name) %]</td>
       <td>&nbsp;[% HTML.escape(row.company) %]</td>
       <td>&nbsp;[% HTML.escape(row.templates) %]</td>