[freeside-commits] branch master updated. aa97e36a3bb5c92251ab14a47c710ffecb5b26c8

Ivan ivan at 420.am
Mon Jan 28 22:50:23 PST 2013


The branch, master has been updated
       via  aa97e36a3bb5c92251ab14a47c710ffecb5b26c8 (commit)
      from  52380fd490b228e5b2a7cdd3a98ea5185b44a7a9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit aa97e36a3bb5c92251ab14a47c710ffecb5b26c8
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Jan 28 22:50:22 2013 -0800

    username-exclamation, RT#18227

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index c14600b..9a064b6 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -5195,6 +5195,13 @@ and customer address. Include units.',
     'type'        => 'checkbox',
   },
 
+  { 
+    'key'         => 'username-exclamation',
+    'section'     => 'username',
+    'description' => 'Allow the exclamation character (!) in usernames.',
+    'type'        => 'checkbox',
+  },
+
   {
     'key'         => 'ie-compatibility_mode',
     'section'     => 'UI',
diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm
index 8e71d82..bd71b0b 100644
--- a/FS/FS/svc_acct.pm
+++ b/FS/FS/svc_acct.pm
@@ -15,6 +15,7 @@ use vars qw( $DEBUG $me $conf $skip_fuzzyfiles
              $username_noperiod $username_nounderscore $username_nodash
              $username_uppercase $username_percent $username_colon
              $username_slash $username_equals $username_pound
+             $username_exclamation
              $password_noampersand $password_noexclamation
              $warning_template $warning_from $warning_subject $warning_mimetype
              $warning_cc
@@ -85,6 +86,7 @@ FS::UID->install_callback( sub {
   $username_slash = $conf->exists('username-slash');
   $username_equals = $conf->exists('username-equals');
   $username_pound = $conf->exists('username-pound');
+  $username_exclamation = $conf->exists('username-exclamation');
   $password_noampersand = $conf->exists('password-noexclamation');
   $password_noexclamation = $conf->exists('password-noexclamation');
   $dirhash = $conf->config('dirhash') || 0;
@@ -1193,7 +1195,7 @@ sub check {
 
   my $ulen = $usernamemax || $self->dbdef_table->column('username')->length;
 
-  $recref->{username} =~ /^([a-z0-9_\-\.\&\%\:\/\=\#]{$usernamemin,$ulen})$/i
+  $recref->{username} =~ /^([a-z0-9_\-\.\&\%\:\/\=\#\!]{$usernamemin,$ulen})$/i
     or return gettext('illegal_username'). " ($usernamemin-$ulen): ". $recref->{username};
   $recref->{username} = $1;
 
@@ -1234,6 +1236,9 @@ sub check {
   unless ( $username_pound ) {
     $recref->{username} =~ /\#/ and return $uerror;
   }
+  unless ( $username_exclamation ) {
+    $recref->{username} =~ /\!/ and return $uerror;
+  }
 
 
   $recref->{popnum} =~ /^(\d*)$/ or return "Illegal popnum: ".$recref->{popnum};

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm     |    7 +++++++
 FS/FS/svc_acct.pm |    7 ++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)




More information about the freeside-commits mailing list