mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-09 14:56:10 +01:00
Enable/Disable Email service.
This commit is contained in:
@@ -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 %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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'),
|
||||||
]
|
]
|
||||||
@@ -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
Reference in New Issue
Block a user