X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Faccess_user.pm;h=44d3beec1c197f521d12a113b20dde465d2f78a5;hb=96623c3c471fda6935bd57efeaa0ad484285b74b;hp=79e863bdeec19f26c0d1cee5095987ca56086194;hpb=19eef2ec0e68587304cd597fc5b2f8e1f151e424;p=freeside.git diff --git a/FS/FS/access_user.pm b/FS/FS/access_user.pm index 79e863bde..44d3beec1 100644 --- a/FS/FS/access_user.pm +++ b/FS/FS/access_user.pm @@ -1,16 +1,15 @@ package FS::access_user; +use base qw( FS::m2m_Common FS::option_Common ); use strict; -use base qw( FS::m2m_Common FS::option_Common ); -use vars qw( $DEBUG $me $conf ); +use vars qw( $DEBUG $me ); use FS::UID; use FS::Auth; use FS::Conf; use FS::Record qw( qsearch qsearchs dbh ); -use FS::access_user_pref; -use FS::access_usergroup; use FS::agent; use FS::cust_main; +use FS::sales; $DEBUG = 0; $me = '[FS::access_user]'; @@ -41,17 +40,37 @@ inherits from FS::Record. The following fields are currently supported: =over 4 -=item usernum - primary key +=item usernum + +primary key + +=item username + +=item _password + +=item _password_encoding + +Empty or bcrypt + +=item last + +Last name + +=item first -=item username - +First name -=item _password - +=item user_custnum -=item last - +Master customer for this employee (for commissions) -=item first - +=item report_salesnum -=item disabled - empty or 'Y' +Default sales person for this employee (for reports) + +=item disabled + +Empty or 'Y' =back @@ -209,10 +228,11 @@ sub check { my $error = $self->ut_numbern('usernum') || $self->ut_alpha_lower('username') - || $self->ut_text('_password') - || $self->ut_text('last') - || $self->ut_text('first') + || $self->ut_textn('_password') + || $self->ut_textn('last') + || $self->ut_textn('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; @@ -229,7 +249,8 @@ Returns a name string for this user: "Last, First". sub name { my $self = shift; return $self->username - if $self->get('last') eq 'Lastname' && $self->first eq 'Firstname'; + if $self->get('last') eq 'Lastname' && $self->first eq 'Firstname' + or $self->get('last') eq '' && $self->first eq ''; return $self->get('last'). ', '. $self->first; } @@ -245,33 +266,22 @@ sub user_cust_main { qsearchs( 'cust_main', { 'custnum' => $self->user_custnum } ); } -=item access_usergroup +=item report_sales -Returns links to the the groups this user is a part of, as FS::access_usergroup -objects (see L). +Returns the FS::sales object (see L), if any, for this +user. =cut -sub access_usergroup { +sub report_sales { my $self = shift; - qsearch( 'access_usergroup', { 'usernum' => $self->usernum } ); + qsearchs( 'sales', { 'salesnum' => $self->report_salesnum } ); } -#=item access_groups -# -#=cut -# -#sub access_groups { -# -#} -# -#=item access_groupnames -# -#=cut -# -#sub access_groupnames { -# -#} +=item access_usergroup + +Returns links to the the groups this user is a part of, as FS::access_usergroup +objects (see L). =item agentnums @@ -386,6 +396,7 @@ sub agents { 'table' => 'agent', 'hashref' => { disabled=>'' }, 'extra_sql' => ' AND '. $self->agentnums_sql(@_), + 'order_by' => 'ORDER BY agent', }); } @@ -413,7 +424,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" @@ -465,7 +476,7 @@ sub default_customer_view { my $self = shift; $self->option('default_customer_view') - || $conf->config('cust_main-default_view') + || FS::Conf->new->config('cust_main-default_view') || 'basics'; #s/jumbo/basics/ starting with 3.0 } @@ -500,7 +511,7 @@ sub spreadsheet_format { my $f = $override || $self->option('spreadsheet_format') - || $conf->config('spreadsheet_format') + || FS::Conf->new->config('spreadsheet_format') || 'XLS'; $formats{$f}; @@ -522,6 +533,7 @@ sub is_system_user { fs_signup fs_bootstrap fs_selfserv + fs_api ) ); }