diff --git a/exports/CHANGELOG b/exports/CHANGELOG index dc49803d8..1ce0ddb31 100644 --- a/exports/CHANGELOG +++ b/exports/CHANGELOG @@ -3,3 +3,6 @@ Added an option to determine if NFS writes to an export are immediately written Added support for NFS version 4, thanks to code contributed by Frederic Jolly. ---- Changes since 1.270 ---- Added checkboxes and a button for deleting, disabling and enabling multiple exports at once. +---- Changes since 1.690 ---- +Re-wrote the UI to use the standard Webmin UI library for a consistent look, and converted all code to be Perl strict and warnings compliant. +Separated the pages for creating NFSv3 and v4 exports, to simplify the UI and make security options more understandable. diff --git a/exports/edit_export.cgi b/exports/edit_export.cgi index caadb0e06..af8bd625c 100755 --- a/exports/edit_export.cgi +++ b/exports/edit_export.cgi @@ -1,7 +1,6 @@ #!/usr/local/bin/perl # edit_export.cgi # Allow editing of one export to a client -# XXX security options use strict; use warnings; @@ -9,14 +8,14 @@ require './exports-lib.pl'; our (%text, %in, %gconfig); &ReadParse(); -my $via_pfs = 0; my $nfsv = $in{'ver'} || &nfs_max_version("localhost"); my ($exp, %opts); if ($in{'new'}) { &ui_print_header(undef, $text{'create_title'}, "", "create_export"); - $via_pfs = $nfsv == 4 ? 1 : 0; - $exp->{"pfs"} = "/export"; + if ($nfsv >= 4) { + $exp->{"pfs"} = "/export"; + } $exp->{'active'} = 1; } else { @@ -42,24 +41,21 @@ print &ui_hidden("idx", $in{'idx'}); print &ui_hidden("ver", $in{'ver'}); print &ui_table_start($text{'edit_details'}, "width=100%", 2); -# Show NFS pseudofilesystem (NFSv4) -if ($nfsv == 4) { - print " ",&hlink("$text{'edit_pfs'}","pfs"),"\n"; - printf "{'pfs'}\" onkeyup=set_pfs_dir()>"; - print &file_chooser_button2("pfs", 1, "pfs_button", ($via_pfs == 0))," \n"; -} else { - printf "\n"; -} - # Show directory input print &ui_table_row(&hlink($text{'edit_dir'}, "dir"), &ui_textbox("dir", $exp->{'dir'}, 60)." ". &file_chooser_button("dir", 1)); -# XXX -#if ($nfsv == 4) { -# print "$text{'edit_in'} \n"; -#} +# Show PFS directory +if ($nfsv == 4 && $in{'new'}) { + print &ui_table_row(&hlink($text{'edit_pfs'}, "pfs"), + &ui_textbox("pfs", $exp->{'pfs'}, 60)." ". + &file_chooser_button("dir", 1)); + } +elsif ($exp->{'pfs'}) { + print &ui_table_row(&hlink($text{'edit_pfs'}, "pfs"), + "".&html_escape($exp->{'pfs'}).""); + } # Show active input print &ui_table_row(&hlink($text{'edit_active'}, "active"), @@ -98,16 +94,6 @@ else { $host = $h; } -# Work out authentication type -# XXX how does this sys/etc stuff work? -my $auth = ""; -my $sec = ""; -if ($h =~ /^gss\/krb5/) { - $auth = "krb5"; - if ($h =~ /i$/) { $sec = "i"; } - if ($h =~ /p$/) { $sec = "p"; } - } - # Allowed hosts table my @table; push(@table, [ 3, $text{'edit_all'} ]); diff --git a/exports/exports-lib.pl b/exports/exports-lib.pl index e5e4575c7..3ab6c913f 100755 --- a/exports/exports-lib.pl +++ b/exports/exports-lib.pl @@ -236,19 +236,6 @@ foreach my $e (@_) { return ($_[0]->{'active'} ? "" : "#").$_[0]->{'dir'}."\t".join(" ", @htxt); } -# file_chooser_button2(input, type, name, disabled) -# A file_chooser_button which can be disabled -sub file_chooser_button2 -{ -my ($input, $type, $name, $disabled) = @_; -my $rv = &file_chooser_button(0, $input, $type); -$rv =~ s/