mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 16:50:24 +00:00
Use new UI library for acl editing
This commit is contained in:
@@ -5,47 +5,38 @@ require 'custom-lib.pl';
|
||||
# Output HTML for editing security options for the custom module
|
||||
sub acl_security_form
|
||||
{
|
||||
local $mode = $_[0]->{'cmds'} eq '*' ? 1 :
|
||||
$_[0]->{'cmds'} =~ /^\!/ ? 2 : 0;
|
||||
print "<tr> <td valign=top><b>$text{'acl_cmds'}</b></td> <td>\n";
|
||||
printf "<input type=radio name=cmds_def value=1 %s> %s\n",
|
||||
$mode == 1 ? 'checked' : '', $text{'acl_call'};
|
||||
printf "<input type=radio name=cmds_def value=0 %s> %s\n",
|
||||
$mode == 0 ? 'checked' : '', $text{'acl_csel'};
|
||||
printf "<input type=radio name=cmds_def value=2 %s> %s<br>\n",
|
||||
$mode == 2 ? 'checked' : '', $text{'acl_cexcept'};
|
||||
print "<select name=cmds size=10 multiple width=200>\n";
|
||||
local @cmds = &sort_commands(&list_commands());
|
||||
local ($c, %ccan);
|
||||
map { $ccan{$_}++ } split(/\s+/, $_[0]->{'cmds'});
|
||||
foreach $c (@cmds) {
|
||||
printf "<option value=%s %s>%s</option>\n",
|
||||
$c->{'id'},
|
||||
$ccan{$c->{'id'}} ? "selected" : "",
|
||||
$c->{'desc'};
|
||||
}
|
||||
print "</select></td> </tr>\n";
|
||||
my ($o) = @_;
|
||||
my $mode = $o->{'cmds'} eq '*' ? 1 :
|
||||
$o->{'cmds'} =~ /^\!/ ? 2 : 0;
|
||||
my @cmds = &sort_commands(&list_commands());
|
||||
print &ui_table_row($text{'acl_cmds'},
|
||||
&ui_radio("cmds_def", $mode,
|
||||
[ [ 1, $text{'acl_call'} ],
|
||||
[ 0, $text{'acl_csel'} ],
|
||||
[ 2, $text{'acl_cexcept'} ] ])."<br>\n".
|
||||
&ui_select("cmds",
|
||||
[ split(/\s+/, $o->{'cmds'}) ],
|
||||
[ map { [ $_->{'id'}, $_->{'desc'} ] } @cmds ],
|
||||
10, 1), 3);
|
||||
|
||||
print "<tr> <td><b>$text{'acl_edit'}</b></td> <td>\n";
|
||||
printf "<input type=radio name=edit value=1 %s> $text{'yes'}\n",
|
||||
$_[0]->{'edit'} ? "checked" : "";
|
||||
printf "<input type=radio name=edit value=0 %s> $text{'no'}</td> </tr>\n",
|
||||
$_[0]->{'edit'} ? "" : "checked";
|
||||
print &ui_table_row($text{'acl_edit'},
|
||||
&ui_yesno_radio("edit", $_[0]->{'edit'}));
|
||||
}
|
||||
|
||||
# acl_security_save(&options)
|
||||
# acl_security_save(&options, &in)
|
||||
# Parse the form for security options for the custom module
|
||||
sub acl_security_save
|
||||
{
|
||||
if ($in{'cmds_def'} == 1) {
|
||||
$_[0]->{'cmds'} = "*";
|
||||
my ($o, $in) = @_;
|
||||
if ($in->{'cmds_def'} == 1) {
|
||||
$o->{'cmds'} = "*";
|
||||
}
|
||||
elsif ($in{'cmds_def'} == 0) {
|
||||
$_[0]->{'cmds'} = join(" ", split(/\0/, $in{'cmds'}));
|
||||
elsif ($in->{'cmds_def'} == 0) {
|
||||
$o->{'cmds'} = join(" ", split(/\0/, $in->{'cmds'}));
|
||||
}
|
||||
else {
|
||||
$_[0]->{'cmds'} = join(" ", "!", split(/\0/, $in{'cmds'}));
|
||||
$o->{'cmds'} = join(" ", "!", split(/\0/, $in->{'cmds'}));
|
||||
}
|
||||
$_[0]->{'edit'} = $in{'edit'};
|
||||
$o->{'edit'} = $in->{'edit'};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user