From 63b635715bd50f7de00245ed4cb0cbc9ad96cb69 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Wed, 10 Jun 2009 17:29:32 +0000 Subject: [PATCH] Added CGI args parser --- samba/ask_epass.cgi | 2 +- samba/cgi_args.pl | 40 ++++++++++++++++++++++++++++++++++++++++ samba/conf_bind.cgi | 2 +- samba/conf_misc.cgi | 2 +- samba/conf_net.cgi | 2 +- samba/conf_pass.cgi | 2 +- samba/conf_print.cgi | 2 +- samba/conf_smb.cgi | 2 +- samba/create_copy.cgi | 2 +- samba/delete_euser.cgi | 2 +- samba/delete_share.cgi | 2 +- samba/delete_shares.cgi | 2 +- samba/edit_epass.cgi | 2 +- samba/edit_euser.cgi | 2 +- samba/edit_fmisc.cgi | 2 +- samba/edit_fname.cgi | 2 +- samba/edit_fperm.cgi | 2 +- samba/edit_fshare.cgi | 2 +- samba/edit_group.cgi | 2 +- samba/edit_gsync.cgi | 2 +- samba/edit_popts.cgi | 2 +- samba/edit_pshare.cgi | 2 +- samba/edit_sec.cgi | 2 +- samba/edit_sync.cgi | 2 +- samba/edit_winbind.cgi | 2 +- samba/index.cgi | 1 - samba/kill_user.cgi | 2 +- samba/kill_users.cgi | 2 +- samba/list_groups.cgi | 2 +- samba/logout.cgi | 2 +- samba/make_epass.cgi | 2 +- samba/restart.cgi | 2 +- samba/samba-lib.pl | 1 + samba/save_bind.cgi | 2 +- samba/save_copy.cgi | 2 +- samba/save_euser.cgi | 2 +- samba/save_fmisc.cgi | 2 +- samba/save_fname.cgi | 2 +- samba/save_fperm.cgi | 2 +- samba/save_fshare.cgi | 2 +- samba/save_group.cgi | 2 +- samba/save_gsync.cgi | 2 +- samba/save_misc.cgi | 2 +- samba/save_net.cgi | 2 +- samba/save_pass.cgi | 2 +- samba/save_popts.cgi | 2 +- samba/save_print.cgi | 2 +- samba/save_pshare.cgi | 2 +- samba/save_sec.cgi | 2 +- samba/save_smb.cgi | 2 +- samba/save_sync.cgi | 2 +- samba/save_winbind.cgi | 2 +- samba/start.cgi | 2 +- samba/stop.cgi | 2 +- samba/swat.cgi | 2 +- samba/swat_save.cgi | 2 +- samba/view_users.cgi | 2 +- 57 files changed, 95 insertions(+), 55 deletions(-) create mode 100644 samba/cgi_args.pl diff --git a/samba/ask_epass.cgi b/samba/ask_epass.cgi index 633339ab1..2a43a770c 100755 --- a/samba/ask_epass.cgi +++ b/samba/ask_epass.cgi @@ -4,7 +4,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pmpass'}") unless $access{'maint_makepass'}; diff --git a/samba/cgi_args.pl b/samba/cgi_args.pl new file mode 100644 index 000000000..e6e19d244 --- /dev/null +++ b/samba/cgi_args.pl @@ -0,0 +1,40 @@ + +do 'samba-lib.pl'; + +sub cgi_args +{ +my ($cgi) = @_; +my @shares = &list_shares(); +if ($cgi eq 'edit_pshare.cgi' || $cgi eq 'edit_popts.cgi') { + # First printer share + foreach my $s (@shares) { + next if (!&can('r', \%access, $s) || $s eq 'global'); + local %share; + &get_share($s); + if (&istrue("printable")) { + return 'share='.&urlize($s); + } + } + return $access{'c_ps'} ? '' : 'none'; # Create if allowed + } +elsif ($cgi eq 'edit_fshare.cgi' || $cgi eq 'edit_sec.cgi' || + $cgi eq 'edit_fperm.cgi' || $cgi eq 'edit_fname.cgi' || + $cgi eq 'edit_fmisc.cgi') { + # First non-printer share + foreach my $s (@shares) { + next if (!&can('r', \%access, $s) || $s eq 'global'); + local %share; + &get_share($s); + if (!&istrue("printable")) { + return 'share='.&urlize($s); + } + } + return $access{'c_fs'} ? '' : 'none'; # Create if allowed + } +elsif ($cgi eq 'edit_euser.cgi') { + # First user, if any + my @ulist = &list_users(); + return @ulist ? 'idx='.$ulist[0]->{'index'} : 'none'; + } +return undef; +} diff --git a/samba/conf_bind.cgi b/samba/conf_bind.cgi index 1b5a01e5d..88ab91d16 100755 --- a/samba/conf_bind.cgi +++ b/samba/conf_bind.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_bind'}; diff --git a/samba/conf_misc.cgi b/samba/conf_misc.cgi index a5e263d1d..733d81a1a 100755 --- a/samba/conf_misc.cgi +++ b/samba/conf_misc.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'}; diff --git a/samba/conf_net.cgi b/samba/conf_net.cgi index 04350eb58..2596c1736 100755 --- a/samba/conf_net.cgi +++ b/samba/conf_net.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcn'}") unless $access{'conf_net'}; diff --git a/samba/conf_pass.cgi b/samba/conf_pass.cgi index 9ca321b37..8953c94d9 100755 --- a/samba/conf_pass.cgi +++ b/samba/conf_pass.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcp'}") unless $access{'conf_pass'}; diff --git a/samba/conf_print.cgi b/samba/conf_print.cgi index f203f5307..cf67d4524 100755 --- a/samba/conf_print.cgi +++ b/samba/conf_print.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcprint'}") unless $access{'conf_print'}; diff --git a/samba/conf_smb.cgi b/samba/conf_smb.cgi index 6d550ae45..4f76b1a99 100755 --- a/samba/conf_smb.cgi +++ b/samba/conf_smb.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'}; diff --git a/samba/create_copy.cgi b/samba/create_copy.cgi index 44bfedcd5..022b6d038 100755 --- a/samba/create_copy.cgi +++ b/samba/create_copy.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcopy'}") unless $access{'copy'}; diff --git a/samba/delete_euser.cgi b/samba/delete_euser.cgi index f5653c3f6..1d7add75a 100755 --- a/samba/delete_euser.cgi +++ b/samba/delete_euser.cgi @@ -3,7 +3,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pmusers'}") unless $access{'maint_users'} && $access{'view_users'}; diff --git a/samba/delete_share.cgi b/samba/delete_share.cgi index 403e6a561..3b3e62bd4 100755 --- a/samba/delete_share.cgi +++ b/samba/delete_share.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pds'}") unless &can('rw', \%access, $in{share}); diff --git a/samba/delete_shares.cgi b/samba/delete_shares.cgi index 2f57c9eda..61075f551 100755 --- a/samba/delete_shares.cgi +++ b/samba/delete_shares.cgi @@ -4,7 +4,7 @@ require './samba-lib.pl'; &ReadParse(); &error_setup($text{'delete_err'}); -%access = &get_module_acl(); + @d = split(/\0/, $in{'d'}); @d || &error($text{'delete_enone'}); diff --git a/samba/edit_epass.cgi b/samba/edit_epass.cgi index 2b95e691d..5211d6713 100755 --- a/samba/edit_epass.cgi +++ b/samba/edit_epass.cgi @@ -4,7 +4,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvusers'}") unless $access{'view_users'}; diff --git a/samba/edit_euser.cgi b/samba/edit_euser.cgi index 505b70656..11579e040 100755 --- a/samba/edit_euser.cgi +++ b/samba/edit_euser.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvusers'}") unless $access{'view_users'}; diff --git a/samba/edit_fmisc.cgi b/samba/edit_fmisc.cgi index 945451186..76f3c023f 100755 --- a/samba/edit_fmisc.cgi +++ b/samba/edit_fmisc.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvfmisc'}") unless &can('ro', \%access, $in{'share'}); diff --git a/samba/edit_fname.cgi b/samba/edit_fname.cgi index b7c79056f..b37cb15d6 100755 --- a/samba/edit_fname.cgi +++ b/samba/edit_fname.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvfname'}") unless &can('rn', \%access, $in{'share'}); diff --git a/samba/edit_fperm.cgi b/samba/edit_fperm.cgi index ae4d03cfe..61540be8a 100755 --- a/samba/edit_fperm.cgi +++ b/samba/edit_fperm.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvperm'}") unless &can('rp', \%access, $in{'share'}); diff --git a/samba/edit_fshare.cgi b/samba/edit_fshare.cgi index 16f7caebc..888d411ec 100755 --- a/samba/edit_fshare.cgi +++ b/samba/edit_fshare.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); $s = $in{'share'}; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if(!$s) { &error("$text{'eacl_np'} $text{'eacl_pcfs'}") diff --git a/samba/edit_group.cgi b/samba/edit_group.cgi index e9625533b..eb746824c 100755 --- a/samba/edit_group.cgi +++ b/samba/edit_group.cgi @@ -3,7 +3,7 @@ # Show a form for editing an existing groups require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'maint_groups'} || &error($text{'groups_ecannot'}); &ReadParse(); if ($in{'new'}) { diff --git a/samba/edit_gsync.cgi b/samba/edit_gsync.cgi index f3f359c23..20a0d4dd6 100755 --- a/samba/edit_gsync.cgi +++ b/samba/edit_gsync.cgi @@ -3,7 +3,7 @@ # Allow the user to edit auto updating of Samba groups by useradmin require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'maint_gsync'} || &error($text{'gsync_ecannot'}); &ui_print_header(undef, $text{'gsync_title'}, ""); diff --git a/samba/edit_popts.cgi b/samba/edit_popts.cgi index b5daa773e..4db6dddf9 100755 --- a/samba/edit_popts.cgi +++ b/samba/edit_popts.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvpopt'}") unless &can('ro', \%access, $in{'share'}); diff --git a/samba/edit_pshare.cgi b/samba/edit_pshare.cgi index 2a8be957b..f30bca155 100755 --- a/samba/edit_pshare.cgi +++ b/samba/edit_pshare.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); $s = $in{'share'}; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if(!$s) { &error("$text{'eacl_np'} $text{'eacl_pcps'}") diff --git a/samba/edit_sec.cgi b/samba/edit_sec.cgi index 72a7608c3..04e15ec02 100755 --- a/samba/edit_sec.cgi +++ b/samba/edit_sec.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pvsec'}") unless &can('rs', \%access, $in{'share'}); diff --git a/samba/edit_sync.cgi b/samba/edit_sync.cgi index fc83034d7..123de7d79 100755 --- a/samba/edit_sync.cgi +++ b/samba/edit_sync.cgi @@ -4,7 +4,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pmsync'}") unless $access{'maint_sync'}; diff --git a/samba/edit_winbind.cgi b/samba/edit_winbind.cgi index 73401d28a..9d95f3c55 100755 --- a/samba/edit_winbind.cgi +++ b/samba/edit_winbind.cgi @@ -3,7 +3,7 @@ # Show form for binding to a domain require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'winbind'} || &error($text{'winbind_ecannot'}); &ui_print_header(undef, $text{'winbind_title'}, ""); diff --git a/samba/index.cgi b/samba/index.cgi index ac6fc3414..9cd179a94 100755 --- a/samba/index.cgi +++ b/samba/index.cgi @@ -4,7 +4,6 @@ # [printers]) are included as well. require './samba-lib.pl'; -%access = &get_module_acl(); # Check for Samba executable if (!-x $config{'samba_server'}) { diff --git a/samba/kill_user.cgi b/samba/kill_user.cgi index 02770e505..cb3b66852 100755 --- a/samba/kill_user.cgi +++ b/samba/kill_user.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if ($in{share}) { # this may be cracked very easy, don't know how to do better :( # per-share acls ... diff --git a/samba/kill_users.cgi b/samba/kill_users.cgi index e7b29e22b..7664e70cf 100755 --- a/samba/kill_users.cgi +++ b/samba/kill_users.cgi @@ -7,7 +7,7 @@ require './samba-lib.pl'; @d || &error($text{'viewu_enone'}); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if ($in{share}) { # this may be cracked very easy, don't know how to do better :( # per-share acls ... diff --git a/samba/list_groups.cgi b/samba/list_groups.cgi index acf7e1c0a..57283cb0e 100755 --- a/samba/list_groups.cgi +++ b/samba/list_groups.cgi @@ -3,7 +3,7 @@ # List all existing Samba groups require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'maint_groups'} || &error($text{'groups_ecannot'}); &ui_print_header(undef, $text{'groups_title'}, ""); diff --git a/samba/logout.cgi b/samba/logout.cgi index ed3cb360a..d4ceec901 100755 --- a/samba/logout.cgi +++ b/samba/logout.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'}; diff --git a/samba/make_epass.cgi b/samba/make_epass.cgi index b16ab30a8..a3ce5dd96 100755 --- a/samba/make_epass.cgi +++ b/samba/make_epass.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pmpass'}") unless $access{'maint_makepass'}; diff --git a/samba/restart.cgi b/samba/restart.cgi index a9b433ab5..0ae716278 100755 --- a/samba/restart.cgi +++ b/samba/restart.cgi @@ -3,7 +3,7 @@ # Kill all smbd and nmdb processes and re-start them require './samba-lib.pl'; -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'}; diff --git a/samba/samba-lib.pl b/samba/samba-lib.pl index cb997b3a0..c872ad136 100644 --- a/samba/samba-lib.pl +++ b/samba/samba-lib.pl @@ -5,6 +5,7 @@ BEGIN { push(@INC, ".."); }; use WebminCore; &init_config(); +%access = &get_module_acl(); # Get the samba version if (open(VERSION, "$module_config_directory/version")) { diff --git a/samba/save_bind.cgi b/samba/save_bind.cgi index c35a8ab2e..880c29333 100755 --- a/samba/save_bind.cgi +++ b/samba/save_bind.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; $global = &get_share("global"); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_bind'}; diff --git a/samba/save_copy.cgi b/samba/save_copy.cgi index 5477a8b44..c7a0a1939 100755 --- a/samba/save_copy.cgi +++ b/samba/save_copy.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcopy'}") unless $access{'copy'}; diff --git a/samba/save_euser.cgi b/samba/save_euser.cgi index 5fe80829a..fe9324e0a 100755 --- a/samba/save_euser.cgi +++ b/samba/save_euser.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pmusers'}") unless $access{'maint_users'} && $access{'view_users'}; diff --git a/samba/save_fmisc.cgi b/samba/save_fmisc.cgi index 5d09227c7..663d83471 100755 --- a/samba/save_fmisc.cgi +++ b/samba/save_fmisc.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{old_name}); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pufmisc'}") unless &can('rwoO', \%access, $in{old_name}); diff --git a/samba/save_fname.cgi b/samba/save_fname.cgi index 5155a4cdf..6ce4d83a8 100755 --- a/samba/save_fname.cgi +++ b/samba/save_fname.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{old_name}); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pufname'}") unless &can('rwnN', \%access, $in{old_name}); diff --git a/samba/save_fperm.cgi b/samba/save_fperm.cgi index ed38c8dd7..a0133184d 100755 --- a/samba/save_fperm.cgi +++ b/samba/save_fperm.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{old_name}); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pufperm'}") unless &can('rwpP', \%access, $in{old_name}); diff --git a/samba/save_fshare.cgi b/samba/save_fshare.cgi index f68e6c84d..c6744aa57 100755 --- a/samba/save_fshare.cgi +++ b/samba/save_fshare.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{old_name}) if $in{old_name}; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if ($in{old_name}) { &error("$text{'eacl_np'} $text{'eacl_pus'}") diff --git a/samba/save_group.cgi b/samba/save_group.cgi index 12ec56918..06825a28c 100755 --- a/samba/save_group.cgi +++ b/samba/save_group.cgi @@ -3,7 +3,7 @@ # Update or delete a Samba group require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'maint_groups'} || &error($text{'groups_ecannot'}); &ReadParse(); @groups = &list_groups(); diff --git a/samba/save_gsync.cgi b/samba/save_gsync.cgi index 9a1ba4dd2..2b13510ad 100755 --- a/samba/save_gsync.cgi +++ b/samba/save_gsync.cgi @@ -3,7 +3,7 @@ # Save unix-samba group synchronisation options require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'maint_gsync'} || &error($text{'gsync_ecannot'}); &ReadParse(); diff --git a/samba/save_misc.cgi b/samba/save_misc.cgi index 6a14d7d1e..b1022d9d6 100755 --- a/samba/save_misc.cgi +++ b/samba/save_misc.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; $global = &get_share("global"); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'}; diff --git a/samba/save_net.cgi b/samba/save_net.cgi index c3f68b5a3..b04d3e819 100755 --- a/samba/save_net.cgi +++ b/samba/save_net.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; $global = &get_share("global"); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcn'}") unless $access{'conf_net'}; diff --git a/samba/save_pass.cgi b/samba/save_pass.cgi index 017379fd0..41d31dda5 100755 --- a/samba/save_pass.cgi +++ b/samba/save_pass.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; $global = &get_share("global"); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcp'}") unless $access{'conf_pass'}; diff --git a/samba/save_popts.cgi b/samba/save_popts.cgi index 631e68a00..0451a54f5 100755 --- a/samba/save_popts.cgi +++ b/samba/save_popts.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{'old_name'}); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pupopt'}") unless &can('rwoO', \%access, $in{old_name}); diff --git a/samba/save_print.cgi b/samba/save_print.cgi index 1d12404ae..71fcd581b 100755 --- a/samba/save_print.cgi +++ b/samba/save_print.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; $global = &get_share("global"); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcprint'}") unless $access{'conf_print'}; diff --git a/samba/save_pshare.cgi b/samba/save_pshare.cgi index 6a011980d..4e0990bc2 100755 --- a/samba/save_pshare.cgi +++ b/samba/save_pshare.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{old_name}) if $in{old_name}; # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if ($in{old_name}) { &error("$text{'eacl_np'} $text{'eacl_pus'}") diff --git a/samba/save_sec.cgi b/samba/save_sec.cgi index 782785caf..64879342b 100755 --- a/samba/save_sec.cgi +++ b/samba/save_sec.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; &get_share($in{old_name}); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pusec'}") unless &can('rwsS', \%access, $in{old_name}); diff --git a/samba/save_smb.cgi b/samba/save_smb.cgi index 50ef1de69..fbd6b164c 100755 --- a/samba/save_smb.cgi +++ b/samba/save_smb.cgi @@ -8,7 +8,7 @@ require './samba-lib.pl'; $global = &get_share("global"); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'}; diff --git a/samba/save_sync.cgi b/samba/save_sync.cgi index d8e439d62..3b8c261a7 100755 --- a/samba/save_sync.cgi +++ b/samba/save_sync.cgi @@ -5,7 +5,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pmsync'}") unless $access{'maint_sync'}; diff --git a/samba/save_winbind.cgi b/samba/save_winbind.cgi index da63dcc2b..d0cab77f4 100755 --- a/samba/save_winbind.cgi +++ b/samba/save_winbind.cgi @@ -3,7 +3,7 @@ # Bind to a domain require './samba-lib.pl'; -%access = &get_module_acl(); + $access{'winbind'} || &error($text{'winbind_ecannot'}); &ReadParse(); diff --git a/samba/start.cgi b/samba/start.cgi index d47a767d5..73b349485 100755 --- a/samba/start.cgi +++ b/samba/start.cgi @@ -3,7 +3,7 @@ # Attempt to start the smbd and nmbd processes require './samba-lib.pl'; -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'}; diff --git a/samba/stop.cgi b/samba/stop.cgi index ada6eb1f7..cfadf9843 100755 --- a/samba/stop.cgi +++ b/samba/stop.cgi @@ -3,7 +3,7 @@ # Kill all smbd and nmdb processes and re-start them require './samba-lib.pl'; -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'}; diff --git a/samba/swat.cgi b/samba/swat.cgi index db9cc0d61..597613e36 100755 --- a/samba/swat.cgi +++ b/samba/swat.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'}; diff --git a/samba/swat_save.cgi b/samba/swat_save.cgi index 02fbb8c37..0aac09919 100755 --- a/samba/swat_save.cgi +++ b/samba/swat_save.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); &error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'}; diff --git a/samba/view_users.cgi b/samba/view_users.cgi index 4bd03be2f..edd1c7f59 100755 --- a/samba/view_users.cgi +++ b/samba/view_users.cgi @@ -6,7 +6,7 @@ require './samba-lib.pl'; &ReadParse(); # check acls -%access = &get_module_acl(); + &error_setup("$text{'eacl_aviol'}"); if ($in{share}) { # this may be cracked very easy, don't know how to do better : # per-share acls ... # per-share acls ...