diff --git a/pam/edit_inc.cgi b/pam/edit_inc.cgi new file mode 100644 index 000000000..4f3fa3041 --- /dev/null +++ b/pam/edit_inc.cgi @@ -0,0 +1,55 @@ +#!/usr/local/bin/perl +# Edit a PAM include for some service + +require './pam-lib.pl'; +&ReadParse(); + +@pam = &get_pam_config(); +$pam = $pam[$in{'idx'}]; +if ($in{'midx'} ne '') { + $mod = $pam->{'mods'}->[$in{'midx'}]; + $inc = $mod->{'module'}; + $type = $mod->{'type'}; + &ui_print_header(undef, $text{'inc_edit'}, ""); + } +else { + &ui_print_header(undef, $text{'inc_create'}, ""); + $type = $in{'type'}; + } + + +print &ui_form_start("save_mod.cgi"); +print &ui_hidden("idx", $in{'idx'}); +print &ui_hidden("midx", $in{'midx'}); +print &ui_hidden("_type", $in{'type'}); +print &ui_table_start($text{'inc_header'}, undef, 2, [ "width=30%" ]); + +# PAM service name +$t = $text{'desc_'.$pam->{'name'}}; +print &ui_table_row($text{'mod_name'}, + "".&html_escape($pam->{'name'})." ". + ($pam->{'desc'} ? "($pam->{'desc'})" : $t ? "($t)" : "")); + +# Authentication step +print &ui_table_row($text{'mod_type'}, + $text{'mod_type_'.$type}); + +# Included service +print &ui_table_row($text{'inc_inc'}, + &ui_select("inc", $inc, + [ map { [ $_->{'name'}, $text{'desc_'.$_->{'name'}} || $_->{'name'} ] } + @pam ], 1, 0, $inc ? 1 : 0)); + +print &ui_table_end(); + +if ($in{'midx'} ne '') { + print &ui_form_end([ [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ]); + } +else { + print &ui_form_end([ [ undef, $text{'create'} ] ]); + } + +&ui_print_footer("edit_pam.cgi?idx=$in{'idx'}", $text{'edit_return'}, + "", $text{'index_return'}); + diff --git a/pam/edit_mod.cgi b/pam/edit_mod.cgi index b86068030..038dad184 100755 --- a/pam/edit_mod.cgi +++ b/pam/edit_mod.cgi @@ -4,6 +4,12 @@ require './pam-lib.pl'; &ReadParse(); +if ($in{'inc'}) { + # Redirect to include form + &redirect("edit_inc.cgi?idx=$in{'idx'}&type=$in{'type'}"); + return; + } + @pam = &get_pam_config(); $pam = $pam[$in{'idx'}]; if ($in{'midx'} ne '') { @@ -20,42 +26,39 @@ else { } -print "
\n"; &ui_print_footer("edit_pam.cgi?idx=$in{'idx'}", $text{'edit_return'}, - "", $text{'index_return'}); + "", $text{'index_return'}); diff --git a/pam/edit_pam.cgi b/pam/edit_pam.cgi index 24d37f266..ef2f005cb 100755 --- a/pam/edit_pam.cgi +++ b/pam/edit_pam.cgi @@ -9,82 +9,91 @@ require './pam-lib.pl'; @pams = &get_pam_config(); $pam = $pams[$in{'idx'}]; -print "| $text{'edit_header'} | ||||
| ||||