X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Faccess_user.pm;h=75293544c73ddade61b5291e696a6cbeedcca494;hb=2c8748ac26281934a1b75671c6a5d0125145660a;hp=830d7f8264b09a9c394931037521ce8d3743cbdd;hpb=e47e9758f480c664bfc3917d798cd69c7d354999;p=freeside.git diff --git a/FS/FS/access_user.pm b/FS/FS/access_user.pm index 830d7f826..75293544c 100644 --- a/FS/FS/access_user.pm +++ b/FS/FS/access_user.pm @@ -214,7 +214,7 @@ sub check { my $error = $self->ut_numbern('usernum') - || $self->ut_text('username') + || $self->ut_alpha('username') || $self->ut_text('_password') || $self->ut_text('last') || $self->ut_text('first') @@ -297,9 +297,14 @@ Returns an sql fragement to select only agentnums this user can view. sub agentnums_sql { my $self = shift; - '( '. - join( ' OR ', map "agentnum = $_", $self->agentnums ). - ' )'; + + my @agentnums = map { "agentnum = $_" } $self->agentnums; + + push @agentnums, 'agentnum IS NULL' + if $self->access_right('View/link unlinked services'); + + return ' 1 = 0 ' unless scalar(@agentnums); + '( '. join( ' OR ', @agentnums ). ' )'; } =item agentnum