diff options
Diffstat (limited to 'FS/FS/access_user.pm')
-rw-r--r-- | FS/FS/access_user.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/FS/FS/access_user.pm b/FS/FS/access_user.pm index 8e4ad46bd..e3a677b11 100644 --- a/FS/FS/access_user.pm +++ b/FS/FS/access_user.pm @@ -323,6 +323,8 @@ Options are passed as a hashref or a list. Available options are: =item null_right - The fragment will also allow the selection of null agentnums if the current user has the provided access right +=item table - Optional table name in which agentnum is being checked. Sometimes required to resolve 'column reference "agentnum" is ambiguous' errors. + =back =cut @@ -331,9 +333,11 @@ sub agentnums_sql { my( $self ) = shift; my %opt = ref($_[0]) ? %{$_[0]} : @_; - my @agentnums = map { "agentnum = $_" } $self->agentnums; + my $agentnum = $opt{'table'} ? $opt{'table'}.'.agentnum' : 'agentnum'; + + my @agentnums = map { "$agentnum = $_" } $self->agentnums; - push @agentnums, 'agentnum IS NULL' + push @agentnums, "$agentnum IS NULL" if $opt{'null'} || ( $opt{'null_right'} && $self->access_right($opt{'null_right'}) ); |