Enable/Disable Email service.

This commit is contained in:
usmannasir
2018-07-23 16:41:59 +05:00
parent 6f7dd8e3fc
commit d54e05ec4c
10 changed files with 425 additions and 1945 deletions

View File

@@ -20,6 +20,19 @@
</h3> </h3>
<div class="example-box-wrapper"> <div class="example-box-wrapper">
{% if not status %}
<div class="col-md-12 text-center" style="margin-bottom: 2%;">
<h3>{% trans "Postfix is disabled." %}
<a href="{% url 'managePostfix' %}"><button class="btn btn-alt btn-hover btn-blue-alt">
<span>{% trans "Enable Now" %}</span>
<i class="glyph-icon icon-arrow-right"></i>
</button></a></h3>
</div>
{% else %}
<form action="/" class="form-horizontal bordered-row"> <form action="/" class="form-horizontal bordered-row">
@@ -93,6 +106,8 @@
</form> </form>
{% endif %}

View File

@@ -20,6 +20,19 @@
</h3> </h3>
<div class="example-box-wrapper"> <div class="example-box-wrapper">
{% if not status %}
<div class="col-md-12 text-center" style="margin-bottom: 2%;">
<h3>{% trans "Postfix is disabled." %}
<a href="{% url 'managePostfix' %}"><button class="btn btn-alt btn-hover btn-blue-alt">
<span>{% trans "Enable Now" %}</span>
<i class="glyph-icon icon-arrow-right"></i>
</button></a></h3>
</div>
{% else %}
<form action="/" class="form-horizontal bordered-row"> <form action="/" class="form-horizontal bordered-row">
@@ -88,6 +101,8 @@
</form> </form>
{% endif %}

View File

@@ -20,6 +20,19 @@
</h3> </h3>
<div class="example-box-wrapper"> <div class="example-box-wrapper">
{% if not status %}
<div class="col-md-12 text-center" style="margin-bottom: 2%;">
<h3>{% trans "Postfix is disabled." %}
<a href="{% url 'managePostfix' %}"><button class="btn btn-alt btn-hover btn-blue-alt">
<span>{% trans "Enable Now" %}</span>
<i class="glyph-icon icon-arrow-right"></i>
</button></a></h3>
</div>
{% else %}
<form action="/" class="form-horizontal bordered-row"> <form action="/" class="form-horizontal bordered-row">
@@ -92,6 +105,8 @@
</form> </form>
{% endif %}

View File

@@ -20,6 +20,19 @@
</h3> </h3>
<div class="example-box-wrapper"> <div class="example-box-wrapper">
{% if not status %}
<div class="col-md-12 text-center" style="margin-bottom: 2%;">
<h3>{% trans "Postfix is disabled." %}
<a href="{% url 'managePostfix' %}"><button class="btn btn-alt btn-hover btn-blue-alt">
<span>{% trans "Enable Now" %}</span>
<i class="glyph-icon icon-arrow-right"></i>
</button></a></h3>
</div>
{% else %}
<form action="/" class="form-horizontal bordered-row"> <form action="/" class="form-horizontal bordered-row">
@@ -118,6 +131,8 @@
</form> </form>
{% endif %}

View File

@@ -18,6 +18,7 @@ import thread
from dns.models import Domains as dnsDomains from dns.models import Domains as dnsDomains
from dns.models import Records as dnsRecords from dns.models import Records as dnsRecords
from mailServer.models import Forwardings from mailServer.models import Forwardings
import os
def loadEmailHome(request): def loadEmailHome(request):
try: try:
@@ -31,6 +32,10 @@ def createEmailAccount(request):
try: try:
val = request.session['userID'] val = request.session['userID']
try: try:
if not os.path.exists('/home/cyberpanel/postfix'):
return render(request, "mailServer/createEmailAccount.html", {"status": 0})
admin = Administrator.objects.get(pk=val) admin = Administrator.objects.get(pk=val)
if admin.type == 1: if admin.type == 1:
@@ -43,7 +48,7 @@ def createEmailAccount(request):
for items in websites: for items in websites:
websitesName.append(items.domain) websitesName.append(items.domain)
return render(request, 'mailServer/createEmailAccount.html', {'websiteList':websitesName}) return render(request, 'mailServer/createEmailAccount.html', {'websiteList':websitesName, "status": 1})
except BaseException, msg: except BaseException, msg:
logging.CyberCPLogFileWriter.writeToFile(str(msg)) logging.CyberCPLogFileWriter.writeToFile(str(msg))
return HttpResponse(str(msg)) return HttpResponse(str(msg))
@@ -97,6 +102,10 @@ def deleteEmailAccount(request):
try: try:
val = request.session['userID'] val = request.session['userID']
try: try:
if not os.path.exists('/home/cyberpanel/postfix'):
return render(request, "mailServer/deleteEmailAccount.html", {"status": 0})
admin = Administrator.objects.get(pk=val) admin = Administrator.objects.get(pk=val)
if admin.type == 1: if admin.type == 1:
@@ -109,7 +118,7 @@ def deleteEmailAccount(request):
for items in websites: for items in websites:
websitesName.append(items.domain) websitesName.append(items.domain)
return render(request, 'mailServer/deleteEmailAccount.html', {'websiteList':websitesName}) return render(request, 'mailServer/deleteEmailAccount.html', {'websiteList':websitesName, "status": 1})
except BaseException, msg: except BaseException, msg:
logging.CyberCPLogFileWriter.writeToFile(str(msg)) logging.CyberCPLogFileWriter.writeToFile(str(msg))
return HttpResponse(str(msg)) return HttpResponse(str(msg))
@@ -210,6 +219,10 @@ def emailForwarding(request):
try: try:
val = request.session['userID'] val = request.session['userID']
try: try:
if not os.path.exists('/home/cyberpanel/postfix'):
return render(request, "mailServer/emailForwarding.html", {"status": 0})
admin = Administrator.objects.get(pk=val) admin = Administrator.objects.get(pk=val)
if admin.type == 1: if admin.type == 1:
@@ -222,7 +235,7 @@ def emailForwarding(request):
for items in websites: for items in websites:
websitesName.append(items.domain) websitesName.append(items.domain)
return render(request, 'mailServer/emailForwarding.html', {'websiteList':websitesName}) return render(request, 'mailServer/emailForwarding.html', {'websiteList':websitesName, "status": 1})
except BaseException, msg: except BaseException, msg:
logging.CyberCPLogFileWriter.writeToFile(str(msg)) logging.CyberCPLogFileWriter.writeToFile(str(msg))
return HttpResponse(str(msg)) return HttpResponse(str(msg))
@@ -363,7 +376,11 @@ def changeEmailAccountPassword(request):
try: try:
val = request.session['userID'] val = request.session['userID']
try: try:
admin = Administrator.objects.get(pk=request.session['userID'])
if not os.path.exists('/home/cyberpanel/postfix'):
return render(request, "mailServer/changeEmailPassword.html", {"status": 0})
admin = Administrator.objects.get(pk=val)
if admin.type == 1: if admin.type == 1:
websites = Websites.objects.all() websites = Websites.objects.all()
@@ -375,7 +392,7 @@ def changeEmailAccountPassword(request):
for items in websites: for items in websites:
websitesName.append(items.domain) websitesName.append(items.domain)
return render(request, 'mailServer/changeEmailPassword.html', {'websiteList':websitesName}) return render(request, 'mailServer/changeEmailPassword.html', {'websiteList':websitesName, "status": 1})
except BaseException, msg: except BaseException, msg:
logging.CyberCPLogFileWriter.writeToFile(str(msg)) logging.CyberCPLogFileWriter.writeToFile(str(msg))
return HttpResponse(str(msg)) return HttpResponse(str(msg))

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{% extends "baseTemplate/index.html" %} {% extends "baseTemplate/index.html" %}
{% load i18n %} {% load i18n %}
{% block title %}{% trans "Email Policy Server - CyberPanel" %}{% endblock %} {% block title %}{% trans "Manage Email Server (Postfix) - CyberPanel" %}{% endblock %}
{% block content %} {% block content %}
{% load static %} {% load static %}
@@ -10,14 +10,16 @@
<div class="container"> <div class="container">
<div id="page-title"> <div id="page-title">
<h2>{% trans "Email Policy Server Configurations!" %} - <a target="_blank" href="http://go.cyberpanel.net/emailLimits" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "Emai Limits Docs" %}</span></a> </h2> <h2>{% trans "Manage Email Server (Postfix)!" %} - <a target="_blank" href="http://go.cyberpanel.net/emailLimits" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "Emai Limits Docs" %}</span></a> </h2>
<p>{% trans "Turn ON Email Policy Server to use Email Limits Feature. " %}</p> <p>{% trans "Enable or disable Email services. " %}</p>
</div> </div>
<div ng-controller="policyServer" class="example-box-wrapper"> {% if status %}
<div ng-controller="postfix" class="example-box-wrapper">
<div style="border-radius: 25px;border-color:#3498db" class="content-box"> <div style="border-radius: 25px;border-color:#3498db" class="content-box">
<h3 class="content-box-header bg-blue"> <h3 class="content-box-header bg-blue">
{% trans "Email Policy Server" %} <img ng-hide="policyServerLoading" src="/static/images/loading.gif"> {% trans "Manage Postfix" %} <img ng-hide="serviceLoading" src="/static/images/loading.gif">
</h3> </h3>
<div class="content-box-wrapper"> <div class="content-box-wrapper">
@@ -27,9 +29,9 @@
<form action="/" id="createPackages" class="form-horizontal bordered-row"> <form action="/" id="createPackages" class="form-horizontal bordered-row">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label">Server Status</label> <label class="col-sm-4 control-label">Postfix Status</label>
<div class="col-sm-6"> <div class="col-sm-6">
<input type="checkbox" id="policServerStatus" data-toggle="toggle"> <input type="checkbox" id="serviceStatus" data-toggle="toggle">
</div> </div>
</div> </div>
@@ -37,7 +39,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label"></label> <label class="col-sm-3 control-label"></label>
<div class="col-sm-4"> <div class="col-sm-4">
<button type="button" ng-click="savePolicServerStatus()" class="btn btn-primary btn-lg btn-block">{% trans "Save changes." %}</button> <button type="button" ng-click="saveStatus('postfix')" class="btn btn-primary btn-lg btn-block">{% trans "Save changes." %}</button>
</div> </div>
</div> </div>
@@ -74,6 +76,14 @@
</div> </div>
</div> </div>
{% else %}
<div class="alert alert-danger">
<p>{% trans "Only administrator can manage services." %}</p>
</div>
{% endif %}
</div> </div>

View File

@@ -3,6 +3,7 @@ import views
urlpatterns = [ urlpatterns = [
url(r'^managePowerDNS$', views.managePowerDNS, name='managePowerDNS'), url(r'^managePowerDNS$', views.managePowerDNS, name='managePowerDNS'),
url(r'^managePostfix$', views.managePostfix, name='managePostfix'),
url(r'^fetchStatus$', views.fetchStatus, name='fetchStatus'), url(r'^fetchStatus$', views.fetchStatus, name='fetchStatus'),
url(r'^saveStatus$', views.saveStatus, name='saveStatus'), url(r'^saveStatus$', views.saveStatus, name='saveStatus'),
] ]

View File

@@ -33,6 +33,24 @@ def managePowerDNS(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def managePostfix(request):
try:
val = request.session['userID']
try:
admin = Administrator.objects.get(pk=val)
if admin.type == 1:
return render(request, 'manageServices/managePostfix.html', {"status": 1})
else:
return render(request, 'manageServices/managePostfix.html', {"status": 0})
except BaseException, msg:
logging.CyberCPLogFileWriter.writeToFile(str(msg))
return HttpResponse("See CyberCP main log file.")
except KeyError:
return redirect(loadLoginPage)
def fetchStatus(request): def fetchStatus(request):
try: try:
@@ -61,6 +79,16 @@ def fetchStatus(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
elif service == 'postfix':
if os.path.exists('/home/cyberpanel/postfix'):
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 1}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
else:
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 0}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException,msg: except BaseException,msg:
@@ -94,9 +122,10 @@ def saveStatus(request):
mailUtilities.checkHome() mailUtilities.checkHome()
if service == 'powerdns': if service == 'powerdns':
pdnsPath = '/home/cyberpanel/powerdns'
servicePath = '/home/cyberpanel/powerdns'
if status == True: if status == True:
writeToFile = open(pdnsPath, 'w+') writeToFile = open(servicePath, 'w+')
writeToFile.close() writeToFile.close()
command = 'sudo systemctl start pdns' command = 'sudo systemctl start pdns'
subprocess.call(shlex.split(command)) subprocess.call(shlex.split(command))
@@ -104,7 +133,24 @@ def saveStatus(request):
command = 'sudo systemctl stop pdns' command = 'sudo systemctl stop pdns'
subprocess.call(shlex.split(command)) subprocess.call(shlex.split(command))
try: try:
os.remove(pdnsPath) os.remove(servicePath)
except:
pass
elif service == 'postfix':
servicePath = '/home/cyberpanel/postfix'
if status == True:
writeToFile = open(servicePath, 'w+')
writeToFile.close()
command = 'sudo systemctl start postfix'
subprocess.call(shlex.split(command))
else:
command = 'sudo systemctl stop postfix'
subprocess.call(shlex.split(command))
try:
os.remove(servicePath)
except: except:
pass pass

File diff suppressed because it is too large Load Diff