diff --git a/emailPremium/views.py b/emailPremium/views.py index ac230318e..47299efe9 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -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('
  • ') + else: + pages = ceil(pages) + finalPages = int(pages) + 1 - if pages <= 1.0: - pages = 1 - pagination.append('
  • ') - else: - pages = ceil(pages) - finalPages = int(pages) + 1 + for i in range(1, finalPages): + pagination.append('
  • ' + str(i) + '
  • ') - for i in range(1, finalPages): - pagination.append('
  • ' + str(i) + '
  • ') - - 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('
  • ') - else: - pages = ceil(pages) - finalPages = int(pages) + 1 - - for i in range(1, finalPages): - pagination.append('
  • ' + str(i) + '
  • ') - - 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('
  • ') 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('
  • ' + str(i) + '
  • ') + + 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('
  • ') + else: + pages = ceil(pages) + finalPages = int(pages) + 1 - pages = float(logEntries) / float(10) - pagination = [] + for i in range(1, finalPages): + pagination.append('
  • ' + str(i) + '
  • ') - if pages <= 1.0: - pages = 1 - pagination.append('
  • ') - else: - pages = ceil(pages) - finalPages = int(pages) + 1 + Data['pagination'] = pagination - for i in range(1, finalPages): - pagination.append('
  • ' + str(i) + '
  • ') - - 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: