Added CGI args parser

This commit is contained in:
Jamie Cameron
2009-06-10 17:29:32 +00:00
parent 41991caf5f
commit 63b635715b
57 changed files with 95 additions and 55 deletions

View File

@@ -4,7 +4,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmpass'}")
unless $access{'maint_makepass'};

40
samba/cgi_args.pl Normal file
View File

@@ -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;
}

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_bind'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcn'}") unless $access{'conf_net'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcp'}") unless $access{'conf_pass'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcprint'}") unless $access{'conf_print'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcopy'}") unless $access{'copy'};

View File

@@ -3,7 +3,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmusers'}")
unless $access{'maint_users'} && $access{'view_users'};

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pds'}")
unless &can('rw', \%access, $in{share});

View File

@@ -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'});

View File

@@ -4,7 +4,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvusers'}")
unless $access{'view_users'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvusers'}")
unless $access{'view_users'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvfmisc'}")
unless &can('ro', \%access, $in{'share'});

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvfname'}")
unless &can('rn', \%access, $in{'share'});

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvperm'}")
unless &can('rp', \%access, $in{'share'});

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
$s = $in{'share'};
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if(!$s) {
&error("$text{'eacl_np'} $text{'eacl_pcfs'}")

View File

@@ -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'}) {

View File

@@ -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'}, "");

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvpopt'}")
unless &can('ro', \%access, $in{'share'});

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
$s = $in{'share'};
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if(!$s) {
&error("$text{'eacl_np'} $text{'eacl_pcps'}")

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvsec'}")
unless &can('rs', \%access, $in{'share'});

View File

@@ -4,7 +4,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmsync'}")
unless $access{'maint_sync'};

View File

@@ -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'}, "");

View File

@@ -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'}) {

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{share}) { # this may be cracked very easy, don't know how to do better :(
# per-share acls ...

View File

@@ -7,7 +7,7 @@ require './samba-lib.pl';
@d || &error($text{'viewu_enone'});
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{share}) { # this may be cracked very easy, don't know how to do better :(
# per-share acls ...

View File

@@ -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'}, "");

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmpass'}")
unless $access{'maint_makepass'};

View File

@@ -3,7 +3,7 @@
# Kill all smbd and nmdb processes and re-start them
require './samba-lib.pl';
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};

View File

@@ -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")) {

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
$global = &get_share("global");
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_bind'};

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcopy'}") unless $access{'copy'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmusers'}")
unless $access{'maint_users'} && $access{'view_users'};

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
&get_share($in{old_name});
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pufmisc'}")
unless &can('rwoO', \%access, $in{old_name});

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
&get_share($in{old_name});
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pufname'}")
unless &can('rwnN', \%access, $in{old_name});

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
&get_share($in{old_name});
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pufperm'}")
unless &can('rwpP', \%access, $in{old_name});

View File

@@ -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("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{old_name}) {
&error("$text{'eacl_np'} $text{'eacl_pus'}")

View File

@@ -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();

View File

@@ -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();

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
$global = &get_share("global");
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'};

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
$global = &get_share("global");
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcn'}") unless $access{'conf_net'};

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
$global = &get_share("global");
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcp'}") unless $access{'conf_pass'};

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
&get_share($in{'old_name'});
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pupopt'}")
unless &can('rwoO', \%access, $in{old_name});

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
$global = &get_share("global");
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcprint'}") unless $access{'conf_print'};

View File

@@ -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("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{old_name}) {
&error("$text{'eacl_np'} $text{'eacl_pus'}")

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
&get_share($in{old_name});
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pusec'}")
unless &can('rwsS', \%access, $in{old_name});

View File

@@ -8,7 +8,7 @@ require './samba-lib.pl';
$global = &get_share("global");
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'};

View File

@@ -5,7 +5,7 @@
require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmsync'}")
unless $access{'maint_sync'};

View File

@@ -3,7 +3,7 @@
# Bind to a domain
require './samba-lib.pl';
%access = &get_module_acl();
$access{'winbind'} || &error($text{'winbind_ecannot'});
&ReadParse();

View File

@@ -3,7 +3,7 @@
# Attempt to start the smbd and nmbd processes
require './samba-lib.pl';
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};

View File

@@ -3,7 +3,7 @@
# Kill all smbd and nmdb processes and re-start them
require './samba-lib.pl';
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'};

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'};

View File

@@ -6,7 +6,7 @@ require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{share}) { # this may be cracked very easy, don't know how to do better : # per-share acls ...
# per-share acls ...