X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Faccess_user.pm;h=de3c8847c080cb303f53d052b2759d5267c68750;hb=223baf5004076bc4bc67c8c5ac48b35d3d00a171;hp=509cc09505abfd065d9a4ceb05362ea35451069d;hpb=8c450aab9bae89373c2c1b35c85597bb52299de3;p=freeside.git diff --git a/FS/FS/access_user.pm b/FS/FS/access_user.pm index 509cc0950..de3c8847c 100644 --- a/FS/FS/access_user.pm +++ b/FS/FS/access_user.pm @@ -10,6 +10,8 @@ use FS::access_user_pref; use FS::access_usergroup; use FS::agent; use FS::cust_main; +use FS::sales; +use FS::sched_item; $DEBUG = 0; $me = '[FS::access_user]'; @@ -254,6 +256,7 @@ sub check { || $self->ut_text('last') || $self->ut_text('first') || $self->ut_foreign_keyn('user_custnum', 'cust_main', 'custnum') + || $self->ut_foreign_keyn('report_salesnum', 'sales', 'salesnum') || $self->ut_enum('disabled', [ '', 'Y' ] ) ; return $error if $error; @@ -286,6 +289,18 @@ sub user_cust_main { qsearchs( 'cust_main', { 'custnum' => $self->user_custnum } ); } +=item report_sales + +Returns the FS::sales object (see L), if any, for this +user. + +=cut + +sub report_sales { + my $self = shift; + qsearchs( 'sales', { 'salesnum' => $self->report_salesnum } ); +} + =item access_usergroup Returns links to the the groups this user is a part of, as FS::access_usergroup @@ -427,6 +442,7 @@ sub agents { 'table' => 'agent', 'hashref' => { disabled=>'' }, 'extra_sql' => ' AND '. $self->agentnums_sql(@_), + 'order_by' => 'ORDER BY agent', }); } @@ -454,7 +470,7 @@ sub access_right { unless ( grep !exists($self->{_ACLcache}{$_}), @$rightname ) { warn "$me ACL cache hit for ". join(', ', @$rightname). "\n" if $DEBUG; - return grep $self->{_ACLcache}{$_}, @$rightname + return scalar( grep $self->{_ACLcache}{$_}, @$rightname ); } warn "$me ACL cache miss for ". join(', ', @$rightname). "\n" @@ -566,6 +582,11 @@ sub is_system_user { ) ); } +sub sched_item { + my $self = shift; + qsearch( 'sched_item', { 'usernum' => $self->usernum } ); +} + =back =head1 BUGS