| Server IP : 172.67.134.114 / Your IP : 104.23.197.123 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/libexec/webmin/virtual-server/ |
Upload File : |
#!/usr/bin/perl
# Save custom shells
require './virtual-server-lib.pl';
&ReadParse();
&licence_status();
&error_setup($text{'newshells_err'});
&can_edit_templates() || &error($text{'newshells_ecannot'});
if ($in{'defs'}) {
# Reverting to defaults
&save_available_shells(undef);
}
else {
# Validate and save shells. Must be at least one for mailboxes and
# admins, and one default for each
for($i=0; defined($in{"shell_$i"}); $i++) {
next if (!$in{"shell_$i"});
-r $in{"shell_$i"} || &error(&text('newshells_eshell', $i+1));
$in{"desc_$i"} =~ /\S/ || &error(&text('newshells_edesc',$i+1));
local %shell = ( 'shell' => $in{"shell_$i"},
'desc' => $in{"desc_$i"},
'owner' => $in{"owner_$i"},
'mailbox' => $in{"mailbox_$i"},
'reseller' => $in{"reseller_$i"},
'default' => $in{"default_$i"},
'id' => $in{"id_$i"},
'avail' => $in{"avail_$i"} );
$shell{'owner'} || $shell{'mailbox'} || $shell{'reseller'} ||
&error(&text('newshells_eowner', $i+1));
push(@shells, \%shell);
}
@oshells = grep { $_->{'owner'} && $_->{'avail'} } @shells;
@oshells || &error($text{'newshells_eowners'});
@mshells = grep { $_->{'mailbox'} && $_->{'avail'} } @shells;
@mshells || &error($text{'newshells_emailboxes'});
@rshells = grep { $_->{'reseller'} && $_->{'avail'} } @shells;
@rshells || &error($text{'newshells_eresellers'});
@doshells = grep { $_->{'default'} } @oshells;
@doshells == 1 || &error($text{'newshells_eownerdef'});
@dmshells = grep { $_->{'default'} } @mshells;
@dmshells == 1 || &error($text{'newshells_emailboxdef'});
@drshells = grep { $_->{'default'} } @rshells;
@drshells == 1 || &error($text{'newshells_eresellerdef'});
# Save them
&save_available_shells(\@shells);
}
&run_post_actions_silently();
&webmin_log("shells", undef, $in{'defs'});
&redirect("");