From: ivan Date: Thu, 13 Nov 2008 02:22:04 +0000 (+0000) Subject: add ability to view/edit access groups of an agent X-Git-Tag: root_of_webpay_support~254 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=8a00b4c10743a314f4a298879141b60d6096eb3b add ability to view/edit access groups of an agent --- diff --git a/FS/FS/access_groupagent.pm b/FS/FS/access_groupagent.pm index 3de8feeed..bacc01331 100644 --- a/FS/FS/access_groupagent.pm +++ b/FS/FS/access_groupagent.pm @@ -4,6 +4,7 @@ use strict; use vars qw( @ISA ); use FS::Record qw( qsearch qsearchs ); use FS::agent; +use FS::access_group; @ISA = qw(FS::Record); @@ -120,6 +121,17 @@ sub agent { qsearchs('agent', { 'agentnum' => $self->agentnum } ); } +=item access_group + +Returns the associated FS::access_group object. + +=cut + +sub access_group { + my $self = shift; + qsearchs('access_group', { 'groupnum' => $self->groupnum } ); +} + =back =head1 BUGS diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index 4166a7cac..ff0a2b1f6 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -10,7 +10,7 @@ use FS::agent_type; use FS::reg_code; use FS::TicketSystem; -@ISA = qw( FS::Record ); +@ISA = qw( FS::m2m_Common FS::Record ); =head1 NAME diff --git a/httemplate/browse/agent.cgi b/httemplate/browse/agent.cgi index b25b1faca..7648915e6 100755 --- a/httemplate/browse/agent.cgi +++ b/httemplate/browse/agent.cgi @@ -27,6 +27,7 @@ full offerings (via their type).

param('showdisabled') || !dbdef->table('agent')->column('disabled') ) ? 2 : 3 %>>Agent Type Master Customer + Access Groups Invoice
Template
Customers Customer
packages
@@ -97,6 +98,15 @@ full offerings (via their type).

+% foreach my $access_group ( +% map $_->access_group, +% qsearch('access_groupagent', { 'agentnum' => $agent->agentnum }) +% ) { + <% $access_group->groupname |h %>
+% } + + + <% $agent->invoice_template || '(Default)' %> diff --git a/httemplate/edit/agent.cgi b/httemplate/edit/agent.cgi index 0c2520510..215542de3 100755 --- a/httemplate/edit/agent.cgi +++ b/httemplate/edit/agent.cgi @@ -77,6 +77,19 @@ Agent #<% $agent->agentnum ? $agent->agentnum : "(NEW)" %> % } + + Access Groups + <% include('/elements/checkboxes-table.html', + 'source_obj' => $agent, + 'link_table' => 'access_groupagent', + 'target_table' => 'access_group', + 'name_col' => 'groupname', + 'target_link' => $p. 'edit/access_group.html?', + ) + %> + + +
diff --git a/httemplate/edit/process/agent.cgi b/httemplate/edit/process/agent.cgi index ad550cc37..3cdf40c9b 100755 --- a/httemplate/edit/process/agent.cgi +++ b/httemplate/edit/process/agent.cgi @@ -1,30 +1,16 @@ -%if ( $error ) { -% $cgi->param('error', $error); -<% $cgi->redirect(popurl(2). "agent.cgi?". $cgi->query_string ) %> -%} else { -<% $cgi->redirect(popurl(3). "browse/agent.cgi") %> -%} +<% include( 'elements/process.html', + 'table' => 'agent', + 'viewall_dir' => 'browse', + 'viewall_ext' => 'cgi', + 'process_m2m' => { 'link_table' => 'access_groupagent', + 'target_table' => 'access_group', + }, + 'edit_ext' => 'cgi', + ) +%> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); -my $agentnum = $cgi->param('agentnum'); - -my $old = qsearchs('agent',{'agentnum'=>$agentnum}) if $agentnum; - -my $new = new FS::agent ( { - map { - $_, scalar($cgi->param($_)); - } fields('agent') -} ); - -my $error; -if ( $agentnum ) { - $error=$new->replace($old); -} else { - $error=$new->insert; - $agentnum=$new->getfield('agentnum'); -} -