#!/usr/local/bin/perl # Show a form for editing an LDAP switch if (-r 'ldap-client-lib.pl') { require './ldap-client-lib.pl'; } else { require './nis-lib.pl'; } require './switch-lib.pl'; &ReadParse(); &ui_print_header(undef, $text{'eswitch_title'}, ""); # Get the current service $conf = &get_nsswitch_config(); ($switch) = grep { $_->{'name'} eq $in{'name'} } @$conf; $switch || &error($text{'eswitch_egone'}); print &ui_form_start("save_switch.cgi", "post"); print &ui_hidden("name", $in{'name'}),"\n"; print &ui_table_start($text{'eswitch_header'}, undef, 2); # Show service name $desc = $text{'desc_'.$switch->{'name'}}; print &ui_table_row($text{'eswitch_name'}, $desc ? "$desc ($switch->{'name'})" : $switch->{'name'}); # Show sources in order, with fallback modes for each $i = 0; ($allsrcs, $allowed) = &list_switch_sources(); foreach $s (@{$switch->{'srcs'}}, { }) { @cansrcs = grep { !$allowed->{$_} || &indexof($switch->{'name'}, @{$allowed->{$_}}) >= 0 } @$allsrcs; $stable = &ui_select("src_$i", $s->{'src'}, [ [ "", "<$text{'eswitch_none'}>" ], map { [ $_, $text{'order_'.$_} || $_ ] } @cansrcs ], 1, 0, 1)."
\n"; $stable .= "\n"; foreach $st (&list_switch_statuses()) { $stable .= "\n"; @acts = &list_switch_actions($st); $stable .= "\n"; } $stable .= "
".$text{'eswitch_'.$st}."".&ui_select( "status_".$st."_".$i, $s->{$st}, [ [ "", "<$text{'default'}>" ], map { [ $_, $text{'eswitch_'.$_} ] } @acts ]). "
\n"; print &ui_table_row($text{'eswitch_'.$i} || &text('eswitch_nth', $i+1), $stable); $i++; } print &ui_table_end(); print &ui_form_end([ [ "save", $text{'save'} ] ]); &ui_print_footer("list_switches.cgi", $text{'switch_return'});