X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fbrowse%2Faccess_group.html;h=2df0ba053f06c2e78418918f758b61b2415deebc;hp=6ba89ea816ecc787ec4a400cbe3b03f015ac15ff;hb=833cfe5c9938d33c3e6b97ed610c25a7afa6eb04;hpb=2c757d7db4cb6a7b9655de13206fcc84fb7ce61f diff --git a/httemplate/browse/access_group.html b/httemplate/browse/access_group.html index 6ba89ea81..2df0ba053 100644 --- a/httemplate/browse/access_group.html +++ b/httemplate/browse/access_group.html @@ -1,33 +1,106 @@ -<% - -my $html_init = - "Internal access groups control access to the back-office interface.

". - qq!Add an internal access group

!; - -my $count_query = 'SELECT COUNT(*) FROM access_group'; - -my $link = [ $p.'edit/access_group.html?', 'groupnum' ]; - -%><%= include( 'elements/browse.html', - 'title' => 'Internal Access Groups', - 'menubar' => [ # 'Main menu' => $p, - 'Internal users' => $p.'browse/access_user.html', - ], +<% include( 'elements/browse.html', + 'title' => 'Employee Groups', + 'menubar' => [ 'View Employees' => $p.'browse/access_user.html', ], 'html_init' => $html_init, - 'name' => 'internal access groups', + 'name' => 'employee groups', 'query' => { 'table' => 'access_group', 'hashref' => {}, - 'extra_sql' => 'ORDER BY groupname', #?? + 'order_by' => '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 { + + ''. + ( ++$count % $columns ? '' : '') + + } keys %rights ). '
'. + ''. + '
'. $_. '
'. + + join('
', grep { $access_group->access_right($_); } + map { ref($_) ? $_->{'rightname'} : $_; } + @{ $rights{$_} } + ). + + '
'; + +}; + +my $count_query = 'SELECT COUNT(*) FROM access_group'; + +my $link = [ $p.'edit/access_group.html?', 'groupnum' ]; + + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +