diff options
Diffstat (limited to 'httemplate/edit/radius_group.html')
| -rw-r--r-- | httemplate/edit/radius_group.html | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/httemplate/edit/radius_group.html b/httemplate/edit/radius_group.html new file mode 100644 index 000000000..164f0a581 --- /dev/null +++ b/httemplate/edit/radius_group.html @@ -0,0 +1,57 @@ +<& elements/edit.html, + 'name' => 'RADIUS Group', + 'table' => 'radius_group', + 'labels' => { + 'groupnum' => 'Group', + 'groupname' => 'RADIUS Group', + 'description' => 'Description', + 'attrnum' => 'Attribute', + 'priority' => 'Priority', + }, + 'viewall_dir' => 'browse', + 'fields' => [ + { 'field' => 'groupname', + 'type' => 'text', + 'size' => 20, + 'colspan' => 6, # just to not interfere with radius_attr columns + }, + { 'field' => 'description', + 'type' => 'text', + 'size' => 40, + 'colspan' => 6, + }, + { 'field' => 'priority', + 'type' => 'text', + 'size' => 2, + 'colspan' => 6, # just to not interfere with radius_attr columns + }, + { + 'field' => 'attrnum', + 'type' => 'radius_attr', + 'o2m_table' => 'radius_attr', + 'm2_label' => 'Attribute', + 'm2_error_callback' => $m2_error_callback, + }, + ], + #debug => 1 +&> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $m2_error_callback = sub { # reconstruct the list + my ($cgi, $object) = @_; + + my @fields = qw(attrname attrtype op value); + map { + my $k = $_; + next if !length($cgi->param($k.'_attrname')); + new FS::radius_attr { + 'groupnum' => $object->groupnum, + 'attrnum' => scalar( $cgi->param($k) ), + map { $_ => scalar( $cgi->param($k.'_'.$_) ) } @fields, + }; + } grep /^attrnum\d+$/, ($cgi->param); +}; +</%init> |
