mirror of
https://github.com/waytotheweb/scripts.git
synced 2026-03-29 15:37:06 +00:00
141 lines
3.9 KiB
Plaintext
141 lines
3.9 KiB
Plaintext
|
|
#!/usr/bin/perl
|
||
|
|
#WHMADDON:addonupdates:ConfigServer Mail Queues
|
||
|
|
#ACLS:configserver
|
||
|
|
###############################################################################
|
||
|
|
# Copyright (C) 2006-2025 Jonathan Michaelson
|
||
|
|
#
|
||
|
|
# https://github.com/waytotheweb/scripts
|
||
|
|
#
|
||
|
|
# This program is free software; you can redistribute it and/or modify it under
|
||
|
|
# the terms of the GNU General Public License as published by the Free Software
|
||
|
|
# Foundation; either version 3 of the License, or (at your option) any later
|
||
|
|
# version.
|
||
|
|
#
|
||
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||
|
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||
|
|
# details.
|
||
|
|
#
|
||
|
|
# You should have received a copy of the GNU General Public License along with
|
||
|
|
# this program; if not, see <https://www.gnu.org/licenses>.
|
||
|
|
###############################################################################
|
||
|
|
## no critic (RequireUseWarnings, ProhibitExplicitReturnUndef, ProhibitMixedBooleanOperators, RequireBriefOpen)
|
||
|
|
use strict;
|
||
|
|
use Sys::Hostname qw(hostname);
|
||
|
|
use IPC::Open3;
|
||
|
|
use Fcntl qw(:DEFAULT :flock);
|
||
|
|
use Storable();
|
||
|
|
use lib '/etc/cmq/Modules';
|
||
|
|
use ConfigServer::cmqUI;
|
||
|
|
|
||
|
|
use lib '/usr/local/cpanel';
|
||
|
|
require Cpanel::Form;
|
||
|
|
require Cpanel::Config;
|
||
|
|
require Whostmgr::ACLS;
|
||
|
|
require Cpanel::Template;
|
||
|
|
require Cpanel::Rlimit;
|
||
|
|
require Cpanel::Version::Tiny;
|
||
|
|
#
|
||
|
|
###############################################################################
|
||
|
|
# start main
|
||
|
|
|
||
|
|
our ($images, $myv, $script, %FORM, %queue, $expcnt, %cookie, $script_da);
|
||
|
|
|
||
|
|
%FORM = Cpanel::Form::parseform();
|
||
|
|
|
||
|
|
Whostmgr::ACLS::init_acls();
|
||
|
|
if (!Whostmgr::ACLS::hasroot()) {
|
||
|
|
print "Content-type: text/html\r\n\r\n";
|
||
|
|
print "You do not have access to this option.\n";
|
||
|
|
exit();
|
||
|
|
}
|
||
|
|
|
||
|
|
Cpanel::Rlimit::set_rlimit_to_infinity();
|
||
|
|
|
||
|
|
$script = "cmq.cgi";
|
||
|
|
$script_da = "cmq.cgi";
|
||
|
|
$images = "cmq";
|
||
|
|
|
||
|
|
my $config = "";
|
||
|
|
my @config;
|
||
|
|
my $viewqueue = "Pending Queue";
|
||
|
|
if (-e "/etc/exim_outgoing.conf" and $FORM{config} !~ /^exim/) {
|
||
|
|
$config = "-C /etc/exim_outgoing.conf";
|
||
|
|
push @config, "-C", "/etc/exim_outgoing.conf";
|
||
|
|
$viewqueue = "Delivery Queue";
|
||
|
|
}
|
||
|
|
|
||
|
|
open (my $IN, "<", "/etc/cmq/cmqversion.txt") or die $!;
|
||
|
|
$myv = <$IN>;
|
||
|
|
close ($IN);
|
||
|
|
chomp $myv;
|
||
|
|
|
||
|
|
my $thisapp = "cmq";
|
||
|
|
|
||
|
|
print "Content-type: text/html\r\n\r\n";
|
||
|
|
|
||
|
|
my $bootstrapcss = "<link rel='stylesheet' href='$images/bootstrap/css/bootstrap.min.css'>";
|
||
|
|
my $jqueryjs = "<script src='$images/jquery.min.js'></script>";
|
||
|
|
my $bootstrapjs = "<script src='$images/bootstrap/js/bootstrap.min.js'></script>";
|
||
|
|
|
||
|
|
my $templatehtml;
|
||
|
|
unless ($FORM{action} eq "view" or $FORM{action} eq "viewdelivery" or $FORM{action} eq "deliver" or $FORM{action} eq "delete") {
|
||
|
|
open SCRIPTOUT, '>', \$templatehtml;
|
||
|
|
select SCRIPTOUT;
|
||
|
|
|
||
|
|
print <<EOF;
|
||
|
|
<!-- $bootstrapcss -->
|
||
|
|
<link href='$images/configserver.css' rel='stylesheet' type='text/css'>
|
||
|
|
$jqueryjs
|
||
|
|
$bootstrapjs
|
||
|
|
EOF
|
||
|
|
} else {
|
||
|
|
print <<EOF;
|
||
|
|
<!doctype html>
|
||
|
|
<html lang='en'>
|
||
|
|
<head>
|
||
|
|
$bootstrapcss
|
||
|
|
<link href='$images/configserver.css' rel='stylesheet' type='text/css'>
|
||
|
|
$jqueryjs
|
||
|
|
$bootstrapjs
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div class='container-fluid'>
|
||
|
|
EOF
|
||
|
|
}
|
||
|
|
|
||
|
|
print <<EOF;
|
||
|
|
<div id="loader"></div><br />
|
||
|
|
<div class='panel panel-default'>
|
||
|
|
<h4><img src='$images/cmq.png' style='padding-left: 10px'> ConfigServer Mail Queues - cmq v$myv</h4></div>
|
||
|
|
EOF
|
||
|
|
|
||
|
|
ConfigServer::cmqUI::displayUI(\%FORM,$script,$script_da,$images,$myv);
|
||
|
|
|
||
|
|
print <<EOF;
|
||
|
|
<script>
|
||
|
|
\$("#loader").hide();
|
||
|
|
\$("#docs-link").hide();
|
||
|
|
</script>
|
||
|
|
EOF
|
||
|
|
unless ($FORM{action} eq "view" or $FORM{action} eq "viewdelivery" or $FORM{action} eq "deliver" or $FORM{action} eq "delete") {
|
||
|
|
close SCRIPTOUT;
|
||
|
|
select STDOUT;
|
||
|
|
Cpanel::Template::process_template(
|
||
|
|
'whostmgr',
|
||
|
|
{
|
||
|
|
"template_file" => "${thisapp}.tmpl",
|
||
|
|
"${thisapp}_output" => $templatehtml,
|
||
|
|
"print" => 1,
|
||
|
|
}
|
||
|
|
);
|
||
|
|
} else {
|
||
|
|
print "</div>\n";
|
||
|
|
print "</body>\n";
|
||
|
|
print "</html>\n";
|
||
|
|
}
|
||
|
|
# end main
|
||
|
|
###############################################################################
|
||
|
|
|
||
|
|
1;
|