<% 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, ) %> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); 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';