From: mark Date: Fri, 11 Nov 2011 02:00:00 +0000 (+0000) Subject: RADIUS groups for svc_broadband, #14695 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=7d964ae317fc7405a9428f3e06dbdd5dcdecf07f RADIUS groups for svc_broadband, #14695 --- diff --git a/FS/FS/part_export/sqlradius.pm b/FS/FS/part_export/sqlradius.pm index 07f6cf05c..736b34e99 100644 --- a/FS/FS/part_export/sqlradius.pm +++ b/FS/FS/part_export/sqlradius.pm @@ -12,7 +12,7 @@ use Carp qw( cluck ); @ISA = qw(FS::part_export); @EXPORT_OK = qw( sqlradius_connect ); -$DEBUG = 0; +$DEBUG = 1; my %groups; tie %options, 'Tie::IxHash', @@ -119,18 +119,28 @@ sub _groups_susp_reason_map { map { reverse( /^\s*(\S+)\s*(.*)$/ ) } sub rebless { shift; } -sub export_username { +sub export_username { # override for other svcdb my($self, $svc_acct) = (shift, shift); warn "export_username called on $self with arg $svc_acct" if $DEBUG > 1; $svc_acct->username; } +sub radius_reply { #override for other svcdb + my($self, $svc_acct) = (shift, shift); + $svc_acct->radius_reply; +} + +sub radius_check { #override for other svcdb + my($self, $svc_acct) = (shift, shift); + $svc_acct->radius_check; +} + sub _export_insert { my($self, $svc_x) = (shift, shift); foreach my $table (qw(reply check)) { my $method = "radius_$table"; - my %attrib = $svc_x->$method(); + my %attrib = $self->$method($svc_x); next unless keys %attrib; my $err_or_queue = $self->sqlradius_queue( $svc_x->svcnum, 'insert', $table, $self->export_username($svc_x), %attrib ); diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index 964e08821..10b4c77fb 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -126,7 +126,11 @@ Service
% ) % } fields($layer); % } -% push @fields, 'usergroup' if $layer eq 'svc_acct'; #kludge +% push @fields, 'usergroup' +% if $layer eq 'svc_acct' +% or ( $layer eq 'svc_broadband' and +% $conf->exists('svc_broadband-radius') ); # double kludge +% # (but we do want to check the config, right?) % $part_svc->svcpart($clone) if $clone; #haha, undone below % % @@ -307,7 +311,9 @@ Service
% 'curr_value' => $value, % 'element_name' => "${layer}__${field}", % 'element_etc' => $disabled, -% 'multiple' => ($flag eq 'S'), +% 'multiple' => ($def->{multiple} || +% $flag eq 'S'), +% # allow the table def to force 'multiple' % ); % % } elsif ( $def->{type} eq 'communigate_pro-accessmodes' ) { @@ -387,6 +393,7 @@ Table <% $widget->html %> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); +my $conf = FS::Conf->new; my $part_svc; my $clone = ''; if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {#clone