% include( 'elements/browse.html',
'title' => 'Employee Groups',
'menubar' => [ 'View Employees' => $p.'browse/access_user.html', ],
'html_init' => $html_init,
'name' => 'employee groups',
'query' => { 'table' => 'access_group',
'hashref' => {},
'extra_sql' => 'ORDER BY groupname', #??
},
'count_query' => $count_query,
'header' => [ '#',
'Group name',
'Agents',
'Rights',
],
'fields' => [ 'groupnum',
'groupname',
$agents_sub,
$rights_sub,
],
'links' => [ $link,
$link,
'',
'',
],
)
%>
<%once>
my $html_init =
"Employee groups control access to the back-office interface. Each employee can be assigned to one or more groups.
".
qq!Add an employee group
!;
#false laziness w/access_user.html & agent_type.cgi
my $agents_sub = sub {
my $access_group = shift;
[ map {
my $access_groupagent = $_;
my $agent = $access_groupagent->agent;
[
{
'data' => $agent->agent,
'align' => 'left',
'link' => $p. 'edit/agent.cgi?'. $agent->agentnum,
},
];
}
grep { $_->agent } #?
$access_group->access_groupagent,
];
};
tie my %rights, 'Tie::IxHash', FS::AccessRight->rights_info;
my $rights_sub = sub {
my $access_group = shift;
#[ map { my $access_right = $_;
# [
# {
# 'data' => $access_right->rightname,
# 'align' => 'left',
# },
# ];
# }
# $access_group->access_rights,
#];
#some false laziness w/edit/access_group.html
my $columns = 3;
my $count = 0;
#include('/elements/table-grid.html', bgcolor=>'#cccccc' ).
'
'.
''. join( '', map {
''.
''. $_. ' | '.
''.
join(' ', grep { $access_group->access_right($_); }
map { ref($_) ? $_->{'rightname'} : $_; }
@{ $rights{$_} }
).
' | | '.
( ++$count % $columns ? '' : '
')
} keys %rights ). '
';
};
my $count_query = 'SELECT COUNT(*) FROM access_group';
my $link = [ $p.'edit/access_group.html?', 'groupnum' ];
%once>
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
%init>