finish username-slash and username-equals, RT#10452
authorivan <ivan>
Thu, 4 Nov 2010 17:38:35 +0000 (17:38 +0000)
committerivan <ivan>
Thu, 4 Nov 2010 17:38:35 +0000 (17:38 +0000)
FS/FS/Conf.pm
FS/FS/svc_acct.pm

index 542dcc9..8fce990 100644 (file)
@@ -1629,7 +1629,7 @@ and customer address. Include units.',
   { 
     'key'         => 'username-slash',
     'section'     => 'username',
-    'description' => 'Allow the slash character (/) in usernames.',
+    'description' => 'Allow the slash character (/) in usernames.  When using, make sure to set "Home directory" to fixed and blank in all svc_acct service definitions.',
     'type'        => 'checkbox',
   },
 
index 43ff2a5..94a839b 100644 (file)
@@ -1243,16 +1243,14 @@ sub check {
   }
 
   my $ulen = $usernamemax || $self->dbdef_table->column('username')->length;
-  if ( $username_uppercase ) {
-    $recref->{username} =~ /^([a-z0-9_\-\.\&\%\:\/\=]{$usernamemin,$ulen})$/i
-      or return gettext('illegal_username'). " ($usernamemin-$ulen): ". $recref->{username};
-    $recref->{username} = $1;
-  } else {
-    $recref->{username} =~ /^([a-z0-9_\-\.\&\%\:]{$usernamemin,$ulen})$/
-      or return gettext('illegal_username'). " ($usernamemin-$ulen): ". $recref->{username};
-    $recref->{username} = $1;
-  }
 
+  $recref->{username} =~ /^([a-z0-9_\-\.\&\%\:\/\=]{$usernamemin,$ulen})$/i
+    or return gettext('illegal_username'). " ($usernamemin-$ulen): ". $recref->{username};
+  $recref->{username} = $1;
+
+  unless ( $username_uppercase ) {
+    $recref->{username} =~ /[A-Z]/ and return gettext('illegal_username');
+  }
   if ( $username_letterfirst ) {
     $recref->{username} =~ /^[a-z]/ or return gettext('illegal_username');
   } elsif ( $username_letter ) {