add mailscanner page

This commit is contained in:
Usman Nasir
2020-05-28 13:30:25 +05:00
parent 44ac1fe006
commit 7fe18a4461
6 changed files with 150 additions and 18 deletions

View File

@@ -60,7 +60,6 @@
} }
</style> </style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]--> <!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]-->
<title>{% block title %}Page Title{% endblock %}</title> <title>{% block title %}Page Title{% endblock %}</title>
@@ -73,20 +72,7 @@
<script src="https://code.angularjs.org/1.6.5/angular.min.js"></script> <script src="https://code.angularjs.org/1.6.5/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<!-- HELPERS --> <link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/assets/finalBase/finalBase.css' %}"
<link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/assets/finalBase/finalBase.css' %}">
<!-- ELEMENTS -->
<!-- ICONS -->
<!-- WIDGETS -->
<!-- SNIPPETS -->
<!-- APPLICATIONS -->
<!-- Admin theme -->
<link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/assets/finalBase/finalBaseTheme.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/assets/finalBase/finalBaseTheme.css' %}">
@@ -877,6 +863,9 @@
<li><a href="{% url 'emailMarketing' %}" <li><a href="{% url 'emailMarketing' %}"
title="{% trans 'Email Marketing' %}"><span>{% trans "Email Marketing" %}</span></a> title="{% trans 'Email Marketing' %}"><span>{% trans "Email Marketing" %}</span></a>
</li> </li>
<li><a href="{% url 'MailScanner' %}"
title="{% trans 'MailScanner' %}"><span>{% trans "MailScanner" %}</span></a>
</li>
</ul> </ul>
</div><!-- .sidebar-submenu --> </div><!-- .sidebar-submenu -->

View File

@@ -13,6 +13,4 @@ urlpatterns = [
url(r'^UpgradeStatus',views.upgradeStatus, name='UpgradeStatus'), url(r'^UpgradeStatus',views.upgradeStatus, name='UpgradeStatus'),
url(r'^upgradeVersion',views.upgradeVersion, name='upgradeVersion'), url(r'^upgradeVersion',views.upgradeVersion, name='upgradeVersion'),
] ]

View File

@@ -0,0 +1,106 @@
{% extends "baseTemplate/index.html" %}
{% load i18n %}
{% block title %}{% trans "MailScanner - CyberPanel" %}{% endblock %}
{% block content %}
{% load static %}
{% get_current_language as LANGUAGE_CODE %}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<div class="container">
<div id="page-title">
<h2>{% trans "MailScanner" %}</h2>
<p>{% trans "Install/Access MailScanner" %}</p>
</div>
<div ng-controller="MailScanner" class="example-box-wrapper">
<div class="panel panel-body">
<h3 class="content-box-header">
{% trans "SpamAssassin" %} <img ng-hide="SpamAssassinLoading" src="/static/images/loading.gif">
</h3>
<div class="content-box-wrapper">
<div class="row">
{% if checkIfMailScannerInstalled == 0 %}
<div class="col-md-12 text-center" style="margin-bottom: 2%;">
<h4 class="mb-10">{% trans "MailScanner is not installed " %}
</h4>
<button ng-click="installSpamAssassin()" class="btn btn-alt btn-hover btn-blue-alt">
<span>{% trans "Install Now." %}</span>
<i class="glyph-icon icon-arrow-right"></i>
</button>
</div>
<!------ SpamAssassin Install Log box ----------------->
<div ng-hide="SpamAssassinNotifyBox" class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-6">
<div ng-hide="failedToStartInallation" class="alert alert-danger">
<p>{% trans "Failed to start installation, Error message: " %} {$ errorMessage
$}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could not connect. Please refresh this page." %} </p>
</div>
<div ng-hide="installationFailed" class="alert alert-danger">
<p>{% trans "Installation failed." %} {$ errorMessage $}</p>
</div>
<div ng-hide="SpamAssassinSuccessfullyInstalled" class="alert alert-success">
<p>{% trans "SpamAssassin successfully installed, refreshing page in 3 seconds.." %}</p>
</div>
</div>
</div>
<div ng-hide="SpamAssassinInstallBox" class="col-md-12">
<form action="/" id="" class="form-horizontal bordered-row">
<div class="form-group">
<div class="col-sm-12 text-center">
<h3><img
src="{% static 'firewall/icons/firewall.png' %}"> {% trans "Winter is coming, but so is SpamAssassin." %}
<img ng-hide="SpamAssassinLoading" src="/static/images/loading.gif">
</h3>
</div>
<div style="margin-top: 2%;" class="col-sm-12">
<textarea ng-model="requestData" rows="15"
class="form-control">{{ requestData }}</textarea>
</div>
</div>
</form>
</div>
<!----- SpamAssassin Install Log box ----------------->
{% else %}
<div class="col-md-12 text-center" style="margin-bottom: 2%;">
<h4 class="mb-10">{% trans "MailScanner is not installed " %}
</h4>
<button ng-click="installSpamAssassin()" class="btn btn-alt btn-hover btn-blue-alt">
<span>{% trans "Install Now." %}</span>
<i class="glyph-icon icon-arrow-right"></i>
</button>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -38,6 +38,7 @@ urlpatterns = [
url(r'^fetchMessage$', views.fetchMessage, name='fetchMessage'), url(r'^fetchMessage$', views.fetchMessage, name='fetchMessage'),
url(r'^flushQueue$', views.flushQueue, name='flushQueue'), url(r'^flushQueue$', views.flushQueue, name='flushQueue'),
url(r'^delete$', views.delete, name='delete'), url(r'^delete$', views.delete, name='delete'),
url(r'^MailScanner$', views.MailScanner, name='MailScanner'),
url(r'^(?P<domain>(.*))$', views.emailLimits, name='emailLimits'), url(r'^(?P<domain>(.*))$', views.emailLimits, name='emailLimits'),

View File

@@ -1166,4 +1166,26 @@ def delete(request):
except KeyError as msg: except KeyError as msg:
dic = {'status': 0, 'error_message': str(msg)} dic = {'status': 0, 'error_message': str(msg)}
json_data = json.dumps(dic) json_data = json.dumps(dic)
return HttpResponse(json_data) return HttpResponse(json_data)
## MailScanner
def MailScanner(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadError()
checkIfMailScannerInstalled = 0
if mailUtilities.checkIfMailScannerInstalled() == 1:
checkIfMailScannerInstalled = 1
return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled})
except KeyError:
return redirect(loadLoginPage)

View File

@@ -666,6 +666,22 @@ milter_default_action = accept
str(msg) + " [savePolicyServerStatus]") str(msg) + " [savePolicyServerStatus]")
print("0," + str(msg)) print("0," + str(msg))
@staticmethod
def checkIfMailScannerInstalled():
try:
path = "/usr/local/CyberCP/public/mailscanner"
if os .path.exists(path):
return 1
else:
return 0
except BaseException as msg:
logging.CyberCPLogFileWriter.writeToFile(
str(msg) + " [checkIfMailScannerInstalled]")
return 0
def main(): def main():