mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-03-01 09:50:44 +01:00
further refoctor default render emailPremium
This commit is contained in:
@@ -1,10 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
from django.shortcuts import render,redirect
|
||||
from django.shortcuts import redirect
|
||||
from django.http import HttpResponse
|
||||
from mailServer.models import Domains, EUsers
|
||||
# Create your views here.
|
||||
from websiteFunctions.models import Websites
|
||||
from loginSystem.views import loadLoginPage
|
||||
import plogical.CyberCPLogFileWriter as logging
|
||||
@@ -12,33 +10,19 @@ import json
|
||||
from .models import DomainLimits, EmailLimits
|
||||
from math import ceil
|
||||
from postfixSenderPolicy.client import cacheClient
|
||||
import _thread
|
||||
from plogical.mailUtilities import mailUtilities
|
||||
from plogical.virtualHostUtilities import virtualHostUtilities
|
||||
from random import randint
|
||||
from plogical.acl import ACLManager
|
||||
from plogical.processUtilities import ProcessUtilities
|
||||
from plogical.httpProc import httpProc
|
||||
# Create your views here.
|
||||
|
||||
## Email Policy Server
|
||||
|
||||
def emailPolicyServer(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
|
||||
proc = httpProc(request, 'emailPremium/policyServer.html',
|
||||
None, 'admin')
|
||||
return proc.render()
|
||||
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
proc = httpProc(request, 'emailPremium/policyServer.html',
|
||||
None, 'admin')
|
||||
return proc.render()
|
||||
|
||||
def fetchPolicyServerStatus(request):
|
||||
try:
|
||||
@@ -130,59 +114,43 @@ def savePolicyServerStatus(request):
|
||||
## Email Policy Server configs
|
||||
|
||||
def listDomains(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
websites = DomainLimits.objects.all()
|
||||
|
||||
try:
|
||||
websites = DomainLimits.objects.all()
|
||||
## Check if Policy Server is installed.
|
||||
|
||||
## Check if Policy Server is installed.
|
||||
command = 'sudo cat /etc/postfix/main.cf'
|
||||
output = ProcessUtilities.outputExecutioner(command).split('\n')
|
||||
|
||||
command = 'sudo cat /etc/postfix/main.cf'
|
||||
output = ProcessUtilities.outputExecutioner(command).split('\n')
|
||||
installCheck = 0
|
||||
|
||||
installCheck = 0
|
||||
for items in output:
|
||||
if items.find('check_policy_service unix:/var/log/policyServerSocket') > -1:
|
||||
installCheck = 1
|
||||
break
|
||||
|
||||
for items in output:
|
||||
if items.find('check_policy_service unix:/var/log/policyServerSocket') > -1:
|
||||
installCheck = 1
|
||||
break
|
||||
if installCheck == 0:
|
||||
proc = httpProc(request, 'emailPremium/listDomains.html', {"installCheck": installCheck}, 'admin')
|
||||
return proc.render()
|
||||
|
||||
if installCheck == 0:
|
||||
proc = httpProc(request, 'emailPremium/listDomains.html', {"installCheck": installCheck})
|
||||
return proc.render()
|
||||
###
|
||||
|
||||
###
|
||||
pages = float(len(websites)) / float(10)
|
||||
pagination = []
|
||||
|
||||
pages = float(len(websites)) / float(10)
|
||||
pagination = []
|
||||
if pages <= 1.0:
|
||||
pages = 1
|
||||
pagination.append('<li><a href="\#"></a></li>')
|
||||
else:
|
||||
pages = ceil(pages)
|
||||
finalPages = int(pages) + 1
|
||||
|
||||
if pages <= 1.0:
|
||||
pages = 1
|
||||
pagination.append('<li><a href="\#"></a></li>')
|
||||
else:
|
||||
pages = ceil(pages)
|
||||
finalPages = int(pages) + 1
|
||||
for i in range(1, finalPages):
|
||||
pagination.append('<li><a href="\#">' + str(i) + '</a></li>')
|
||||
|
||||
for i in range(1, finalPages):
|
||||
pagination.append('<li><a href="\#">' + str(i) + '</a></li>')
|
||||
|
||||
proc = httpProc(request, 'emailPremium/listDomains.html',
|
||||
{"pagination":pagination, "installCheck": installCheck}, 'admin')
|
||||
return proc.render()
|
||||
|
||||
except BaseException as msg:
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||
return HttpResponse("See CyberCP main log file.")
|
||||
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
proc = httpProc(request, 'emailPremium/listDomains.html',
|
||||
{"pagination": pagination, "installCheck": installCheck}, 'admin')
|
||||
return proc.render()
|
||||
|
||||
def getFurtherDomains(request):
|
||||
try:
|
||||
@@ -307,60 +275,47 @@ def enableDisableEmailLimits(request):
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def emailLimits(request,domain):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
if Websites.objects.filter(domain=domain).exists():
|
||||
website = Websites.objects.get(domain=domain)
|
||||
domainEmail = Domains.objects.get(domainOwner=website)
|
||||
domainLimits = DomainLimits.objects.get(domain=domainEmail)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
Data = {}
|
||||
Data['domain'] = domain
|
||||
Data['monthlyLimit'] = domainLimits.monthlyLimit
|
||||
Data['monthlyUsed'] = domainLimits.monthlyUsed
|
||||
Data['emailAccounts'] = domainEmail.eusers_set.count()
|
||||
|
||||
if domainLimits.limitStatus == 1:
|
||||
Data['limitsOn'] = 1
|
||||
Data['limitsOff'] = 0
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
Data['limitsOn'] = 0
|
||||
Data['limitsOff'] = 1
|
||||
|
||||
## Pagination for emails
|
||||
|
||||
if Websites.objects.filter(domain=domain).exists():
|
||||
website = Websites.objects.get(domain=domain)
|
||||
domainEmail = Domains.objects.get(domainOwner=website)
|
||||
domainLimits = DomainLimits.objects.get(domain=domainEmail)
|
||||
|
||||
Data = {}
|
||||
Data['domain'] = domain
|
||||
Data['monthlyLimit'] = domainLimits.monthlyLimit
|
||||
Data['monthlyUsed'] = domainLimits.monthlyUsed
|
||||
Data['emailAccounts'] = domainEmail.eusers_set.count()
|
||||
|
||||
if domainLimits.limitStatus == 1:
|
||||
Data['limitsOn'] = 1
|
||||
Data['limitsOff'] = 0
|
||||
else:
|
||||
Data['limitsOn'] = 0
|
||||
Data['limitsOff'] = 1
|
||||
|
||||
## Pagination for emails
|
||||
|
||||
|
||||
pages = float(Data['emailAccounts']) / float(10)
|
||||
pagination = []
|
||||
|
||||
if pages <= 1.0:
|
||||
pages = 1
|
||||
pagination.append('<li><a href="\#"></a></li>')
|
||||
else:
|
||||
pages = ceil(pages)
|
||||
finalPages = int(pages) + 1
|
||||
|
||||
for i in range(1, finalPages):
|
||||
pagination.append('<li><a href="\#">' + str(i) + '</a></li>')
|
||||
|
||||
Data['pagination'] = pagination
|
||||
|
||||
proc = httpProc(request, 'emailPremium/emailLimits.html', Data, 'admin')
|
||||
return proc.render()
|
||||
pages = float(Data['emailAccounts']) / float(10)
|
||||
pagination = []
|
||||
|
||||
if pages <= 1.0:
|
||||
pages = 1
|
||||
pagination.append('<li><a href="\#"></a></li>')
|
||||
else:
|
||||
proc = httpProc(request, 'emailPremium/emailLimits.html', {"error":1,"domain": "This domain does not exists"}, 'admin')
|
||||
return proc.render()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
pages = ceil(pages)
|
||||
finalPages = int(pages) + 1
|
||||
|
||||
for i in range(1, finalPages):
|
||||
pagination.append('<li><a href="\#">' + str(i) + '</a></li>')
|
||||
|
||||
Data['pagination'] = pagination
|
||||
|
||||
proc = httpProc(request, 'emailPremium/emailLimits.html', Data, 'admin')
|
||||
return proc.render()
|
||||
else:
|
||||
proc = httpProc(request, 'emailPremium/emailLimits.html', {"error": 1, "domain": "This domain does not exists"},
|
||||
'admin')
|
||||
return proc.render()
|
||||
|
||||
def changeDomainLimit(request):
|
||||
try:
|
||||
@@ -501,41 +456,29 @@ def enableDisableIndividualEmailLimits(request):
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def emailPage(request, emailAddress):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
Data = {}
|
||||
Data['emailAddress'] = emailAddress
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
email = EUsers.objects.get(email=emailAddress)
|
||||
logEntries = email.emaillogs_set.all().count()
|
||||
|
||||
Data = {}
|
||||
Data['emailAddress'] = emailAddress
|
||||
pages = float(logEntries) / float(10)
|
||||
pagination = []
|
||||
|
||||
email = EUsers.objects.get(email=emailAddress)
|
||||
logEntries = email.emaillogs_set.all().count()
|
||||
if pages <= 1.0:
|
||||
pages = 1
|
||||
pagination.append('<li><a href="\#"></a></li>')
|
||||
else:
|
||||
pages = ceil(pages)
|
||||
finalPages = int(pages) + 1
|
||||
|
||||
pages = float(logEntries) / float(10)
|
||||
pagination = []
|
||||
for i in range(1, finalPages):
|
||||
pagination.append('<li><a href="\#">' + str(i) + '</a></li>')
|
||||
|
||||
if pages <= 1.0:
|
||||
pages = 1
|
||||
pagination.append('<li><a href="\#"></a></li>')
|
||||
else:
|
||||
pages = ceil(pages)
|
||||
finalPages = int(pages) + 1
|
||||
Data['pagination'] = pagination
|
||||
|
||||
for i in range(1, finalPages):
|
||||
pagination.append('<li><a href="\#">' + str(i) + '</a></li>')
|
||||
|
||||
Data['pagination'] = pagination
|
||||
|
||||
proc = httpProc(request, 'emailPremium/emailPage.html', Data, 'admin')
|
||||
return proc.render()
|
||||
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
proc = httpProc(request, 'emailPremium/emailPage.html', Data, 'admin')
|
||||
return proc.render()
|
||||
|
||||
def getEmailStats(request):
|
||||
try:
|
||||
@@ -779,24 +722,14 @@ def flushEmailLogs(request):
|
||||
### SpamAssassin
|
||||
|
||||
def spamAssassinHome(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
checkIfSpamAssassinInstalled = 0
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
if mailUtilities.checkIfSpamAssassinInstalled() == 1:
|
||||
checkIfSpamAssassinInstalled = 1
|
||||
|
||||
checkIfSpamAssassinInstalled = 0
|
||||
|
||||
if mailUtilities.checkIfSpamAssassinInstalled() == 1:
|
||||
checkIfSpamAssassinInstalled = 1
|
||||
|
||||
proc = httpProc(request, 'emailPremium/SpamAssassin.html', {'checkIfSpamAssassinInstalled': checkIfSpamAssassinInstalled}, 'admin')
|
||||
return proc.render()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
proc = httpProc(request, 'emailPremium/SpamAssassin.html',
|
||||
{'checkIfSpamAssassinInstalled': checkIfSpamAssassinInstalled}, 'admin')
|
||||
return proc.render()
|
||||
|
||||
def installSpamAssassin(request):
|
||||
try:
|
||||
@@ -959,10 +892,6 @@ def fetchSpamAssassinSettings(request):
|
||||
final_dic = {'fetchStatus': 0, 'error_message': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
proc = httpProc(request,'managePHP/editPHPConfig.html')
|
||||
return proc.render()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
@@ -1037,20 +966,9 @@ def saveSpamAssassinConfigurations(request):
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def mailQueue(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
|
||||
proc = httpProc(request, 'emailPremium/mailQueue.html',
|
||||
None, 'admin')
|
||||
return proc.render()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
proc = httpProc(request, 'emailPremium/mailQueue.html',
|
||||
None, 'admin')
|
||||
return proc.render()
|
||||
|
||||
def fetchMailQueue(request):
|
||||
try:
|
||||
@@ -1186,31 +1104,19 @@ def delete(request):
|
||||
## MailScanner
|
||||
|
||||
def MailScanner(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
checkIfMailScannerInstalled = 0
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
ipFile = "/etc/cyberpanel/machineIP"
|
||||
f = open(ipFile)
|
||||
ipData = f.read()
|
||||
ipAddress = ipData.split('\n', 1)[0]
|
||||
|
||||
checkIfMailScannerInstalled = 0
|
||||
if mailUtilities.checkIfMailScannerInstalled() == 1:
|
||||
checkIfMailScannerInstalled = 1
|
||||
|
||||
ipFile = "/etc/cyberpanel/machineIP"
|
||||
f = open(ipFile)
|
||||
ipData = f.read()
|
||||
ipAddress = ipData.split('\n', 1)[0]
|
||||
|
||||
if mailUtilities.checkIfMailScannerInstalled() == 1:
|
||||
checkIfMailScannerInstalled = 1
|
||||
|
||||
proc = httpProc(request, 'emailPremium/MailScanner.html',
|
||||
{'checkIfMailScannerInstalled': checkIfMailScannerInstalled, 'ipAddress': ipAddress}, 'admin')
|
||||
return proc.render()
|
||||
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
proc = httpProc(request, 'emailPremium/MailScanner.html',
|
||||
{'checkIfMailScannerInstalled': checkIfMailScannerInstalled, 'ipAddress': ipAddress}, 'admin')
|
||||
return proc.render()
|
||||
|
||||
def installMailScanner(request):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user