X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fbrowse%2Faccess_user.html;h=446bfe0be4ec94c070294c7afa03e28443304b00;hp=05384289a8f572b2ee3cf4af07b28fdb33ca4127;hb=b71b1576c68bc40ad26592b354feace37a029f0e;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e diff --git a/httemplate/browse/access_user.html b/httemplate/browse/access_user.html index 05384289a..446bfe0be 100644 --- a/httemplate/browse/access_user.html +++ b/httemplate/browse/access_user.html @@ -1,99 +1,85 @@ -% -% -%my $html_init = -% "Internal users have access to the back-office interface. Typically, this is your employees and contractors, but in a VISP setup, you can also add accounts for your reseller's employees. It is highly recommended to add a separate account for each person rather than using role accounts.

". -% qq!Add an internal user

!; -% -%#false laziness w/part_pkg.cgi -%my %search = (); -%my $search = ''; -%unless ( $cgi->param('showdisabled') ) { -% %search = ( 'disabled' => '' ); -% $search = "( disabled = '' OR disabled IS NULL )"; -%} -% -%#false laziness w/access_group.html & agent_type.cgi -%my $groups_sub = sub { -% my $access_user = shift; -% -% [ map { -% my $access_usergroup = $_; -% my $access_group = $access_usergroup->access_group; -% [ -% { -% 'data' => $access_group->groupname, -% 'align' => 'left', -% 'link' => -% $p. 'edit/access_group.html?'. $access_usergroup->groupnum, -% }, -% ]; -% } -% grep { $_->access_group # and ! $_->access_group->disabled -% } -% $access_user->access_usergroup, -% -% ]; -% -%}; -% -%my $posttotal; -%if ( $cgi->param('showdisabled') ) { -% $cgi->param('showdisabled', 0); -% $posttotal = '( hide disabled users )'; -% $cgi->param('showdisabled', 1); -%} else { -% $cgi->param('showdisabled', 1); -% $posttotal = '( show disabled users )'; -% $cgi->param('showdisabled', 0); -%} -% -%my $count_query = 'SELECT COUNT(*) FROM access_user'; -%$count_query .= " WHERE $search" -% if $search; -% -%my $link = [ $p.'edit/access_user.html?', 'usernum' ]; -% -%my @header = ( '#', 'Username' ); -%my @fields = ( 'usernum', 'username' ); -%my $align = 'rl'; -%my @links = ( $link, $link ); -%my @style = ( '', '' ); -% -%#false laziness w/part_pkg.cgi -%#unless ( $cgi->param('showdisabled') ) { #its been reversed already -%if ( $cgi->param('showdisabled') ) { #its been reversed already -% push @header, 'Status'; -% push @fields, sub { shift->disabled -% ? 'DISABLED' -% : 'Active' -% }; -% push @links, ''; -% $align .= 'c'; -% push @style, 'b'; -%} -% -%push @header, 'Full name', 'Groups'; -%push @fields, 'name', $groups_sub; -%push @links, $link, ''; -%$align .= 'll'; -% -% <% include( 'elements/browse.html', - 'title' => 'Internal Users', - 'menubar' => [ #'Main menu' => $p, - 'Internal access groups' => $p.'browse/access_group.html', - ], - 'html_init' => $html_init, - 'html_posttotal' => $posttotal, - 'name' => 'internal users', - 'query' => { 'table' => 'access_user', - 'hashref' => \%search, - 'extra_sql' => 'ORDER BY last, first', - }, - 'count_query' => $count_query, - 'header' => \@header, - 'fields' => \@fields, - 'links' => \@links, - 'style' => \@style, + 'title' => 'Employees', + 'menubar' => [ 'View Employee groups' => $p.'browse/access_group.html', ], + 'html_init' => $html_init, + 'name' => 'employees', + 'disableable' => 1, + 'disabled_statuspos' => 2, + 'query' => { 'table' => 'access_user', + 'hashref' => {}, + 'order_by' => 'ORDER BY last, first' + }, + 'count_query' => $count_query, + 'header' => \@header, + 'fields' => \@fields, + 'links' => \@links, + 'align' => $align, ) %> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $html_init = + "Employees have access to the back-office interface. Typically, this is your employees and contractors. In a virtualized setup, you can also add accounts for your reseller's employees.

It is highly recommended to add a separate account for each person rather than using role accounts.

". + qq!Add an employee

!; + +#false laziness w/access_group.html & agent_type.cgi +my $groups_sub = sub { + my $access_user = shift; + + [ map { + my $access_usergroup = $_; + my $access_group = $access_usergroup->access_group; + [ + { + 'data' => $access_group->groupname, + 'align' => 'left', + 'link' => + $p. 'edit/access_group.html?'. $access_usergroup->groupnum, + }, + ]; + } + grep { $_->access_group # and ! $_->access_group->disabled + } + $access_user->access_usergroup, + + ]; + +}; + +my $installer_sub = sub { + my $access_user = shift; + my @sched_item = $access_user->sched_item or return ''; + $sched_item[0]->disabled ? '(disabled)' : 'Installer'; +}; + +my $cust_sub = sub { + my $access_user = shift; + $access_user->user_custnum ? $access_user->user_cust_main->name : ''; +}; +my $cust_link = [ $p.'view/cust_main.cgi?custnum=', 'user_custnum' ]; + +my $count_query = 'SELECT COUNT(*) FROM access_user'; + +my $link = [ $p.'edit/access_user.html?', 'usernum' ]; + +my @header = ( + 'Username', 'Full name', 'Groups', 'Installer', 'Customer' ); +my @fields = ( + 'username', 'name', $groups_sub, $installer_sub, $cust_sub, ); +my $align = 'lllcl'; +my @links = ( $link, $link, $link, '', '', $cust_link ); + +#if ( FS::Conf->new->config('ticket_system') ) { +# push @header, 'Ticketing'; +# push @fields, sub { +# my $access_user = shift; +# +# }; +# $align .= 'l'; +# push @links, ''; +#} + +