From: ivan Date: Thu, 30 Jun 2005 13:20:33 +0000 (+0000) Subject: add username-percent config option X-Git-Tag: BEFORE_FINAL_MASONIZE~460 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=3eaa62920b3dd89525cea67d259f3f2210126f48;p=freeside.git add username-percent config option --- diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index a1fdd034e..d78135ad0 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -1050,6 +1050,13 @@ httemplate/docs/config.html 'type' => 'checkbox', }, + { + 'key' => 'username-percent', + 'section' => 'username', + 'description' => 'Allow the percent character (%) in usernames.', + 'type' => 'checkbox', + }, + { 'key' => 'username_policy', 'section' => 'deprecated', diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 496312062..1ec5429e9 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -6,7 +6,7 @@ use vars qw( @ISA $DEBUG $me $conf $skip_fuzzyfiles $usernamemax $passwordmin $passwordmax $username_ampersand $username_letter $username_letterfirst $username_noperiod $username_nounderscore $username_nodash - $username_uppercase + $username_uppercase $username_percent $password_noampersand $password_noexclamation $welcome_template $welcome_from $welcome_subject $welcome_mimetype $smtpmachine @@ -55,6 +55,7 @@ $FS::UID::callback{'FS::svc_acct'} = sub { $username_nodash = $conf->exists('username-nodash'); $username_uppercase = $conf->exists('username-uppercase'); $username_ampersand = $conf->exists('username-ampersand'); + $username_percent = $conf->exists('username-percent'); $password_noampersand = $conf->exists('password-noexclamation'); $password_noexclamation = $conf->exists('password-noexclamation'); $dirhash = $conf->config('dirhash') || 0; @@ -687,11 +688,11 @@ sub check { my $ulen = $usernamemax || $self->dbdef_table->column('username')->length; if ( $username_uppercase ) { - $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; } else { - $recref->{username} =~ /^([a-z0-9_\-\.\&]{$usernamemin,$ulen})$/ + $recref->{username} =~ /^([a-z0-9_\-\.\&\%]{$usernamemin,$ulen})$/ or return gettext('illegal_username'). " ($usernamemin-$ulen): ". $recref->{username}; $recref->{username} = $1; } @@ -719,6 +720,9 @@ sub check { if ( $password_noexclamation ) { $recref->{_password} =~ /\!/ and return gettext('illegal_password'); } + unless ( $username_percent ) { + $recref->{username} =~ /\%/ and return gettext('illegal_username'); + } $recref->{popnum} =~ /^(\d*)$/ or return "Illegal popnum: ".$recref->{popnum}; $recref->{popnum} = $1;