encryption fixes from huntsberg & jayce
[freeside.git] / FS / FS / access_user.pm
index 830d7f8..7529354 100644 (file)
@@ -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