Minor bug fix to API

This commit is contained in:
usmannasir
2018-07-19 22:38:37 +05:00
parent e29eac1257
commit a83686e39c
22 changed files with 507 additions and 96 deletions

View File

@@ -8,22 +8,16 @@ from plogical.virtualHostUtilities import virtualHostUtilities
from plogical import hashPassword
from plogical.installUtilities import installUtilities
from packages.models import Package
import shutil
from plogical.mysqlUtilities import mysqlUtilities
from databases.models import Databases
from baseTemplate.views import renderBase
from random import randint
from websiteFunctions.models import Websites,ChildDomains
import os
import signal
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
from shutil import rmtree
from baseTemplate.models import version
import subprocess
import shlex
import re
from dns.models import Domains,Records
from plogical.mailUtilities import mailUtilities
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
# Create your views here.
@@ -35,7 +29,6 @@ def verifyConn(request):
adminUser = data['adminUser']
adminPass = data['adminPass']
admin = Administrator.objects.get(userName=adminUser)
if hashPassword.check_password(admin.password, adminPass):
@@ -66,6 +59,9 @@ def createWebsite(request):
websiteOwner = data['websiteOwner']
ownerPassword = data['ownerPassword']
externalApp = "".join(re.findall("[a-zA-Z]+", domain))[:7]
data['ssl'] = 0
data['dkimCheck'] = 0
data['openBasedir'] = 1
phpSelection = "PHP 7.0"

View File

@@ -1139,9 +1139,7 @@ def submitRemoteBackups(request):
if data['getVersion'] == 1:
Version = version.objects.get(pk=1)
if data['currentVersion'] == Version.currentVersion and data['build'] >= 0:
if float(data['currentVersion']) >= 1.6 and data['build'] >= 0:
pass
else:
data_ret = {'status': 0,

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "ModSecurity Configurations!" %} </h2>
<h2>{% trans "ModSecurity Configurations!" %} - <a target="_blank" href="http://go.cyberpanel.net/modsec-docs" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "ModSec Docs" %}</span></a> </h2>
<p>{% trans "On this page you can configure ModSecurity settings." %}</p>
</div>

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "ModSecurity Rules!" %} </h2>
<h2>{% trans "ModSecurity Rules!" %} - <a target="_blank" href="http://go.cyberpanel.net/modsec-docs" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "ModSec Docs" %}</span></a> </h2>
<p>{% trans "On this page you can add/delete ModSecurity rules." %}</p>
</div>

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "ModSecurity Rules Packages!" %} </h2>
<h2>{% trans "ModSecurity Rules Packages!" %} - <a target="_blank" href="http://go.cyberpanel.net/modsec-docs" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "ModSec Docs" %}</span></a> </h2>
<p>{% trans "Install/Un-install ModSecurity rules packages." %}</p>
</div>

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "Secure SSH" %}</h2>
<h2>{% trans "Secure SSH" %} - <a target="_blank" href="http://go.cyberpanel.net/ssh-docs" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "SSH Docs" %}</span></a></h2>
<p>{% trans "Secure or harden SSH Configurations." %}</p>
</div>

View File

@@ -687,8 +687,8 @@ class preFlightsChecks:
count = 0
while (1):
#command = "wget http://cyberpanel.net/CyberPanel.1.6.4.tar.gz"
command = "wget http://cyberpanel.net/CyberPanelTemp.tar.gz"
command = "wget http://cyberpanel.net/CyberPanel.1.7.0.tar.gz"
#command = "wget http://cyberpanel.net/CyberPanelTemp.tar.gz"
res = subprocess.call(shlex.split(command))
if res == 1:
@@ -707,8 +707,8 @@ class preFlightsChecks:
count = 0
while(1):
#command = "tar zxf CyberPanel.1.6.4.tar.gz"
command = "tar zxf CyberPanelTemp.tar.gz"
command = "tar zxf CyberPanel.1.7.0.tar.gz"
#command = "tar zxf CyberPanelTemp.tar.gz"
res = subprocess.call(shlex.split(command))
@@ -1271,7 +1271,7 @@ class preFlightsChecks:
count = 0
while(1):
command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/postfix/key.pem -out /etc/postfix/cert.pem'
command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/postfix/key.pem -out /etc/postfix/cert.pem'
cmd = shlex.split(command)
@@ -1293,7 +1293,7 @@ class preFlightsChecks:
while(1):
command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/dovecot/key.pem -out /etc/dovecot/cert.pem'
command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/dovecot/key.pem -out /etc/dovecot/cert.pem'
cmd = shlex.split(command)
@@ -2048,6 +2048,10 @@ class preFlightsChecks:
break
######
command = 'systemctl restart dbus'
cmd = shlex.split(command)
subprocess.call(cmd)
count = 0

View File

@@ -762,7 +762,7 @@ class InstallCyberPanel:
count = 0
while(1):
command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem'
command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem'
res = subprocess.call(shlex.split(command))
if res == 1:
@@ -1128,7 +1128,7 @@ class InstallCyberPanel:
count = 0
while(1):
command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /usr/local/lscp/key.pem -out /usr/local/lscp/cert.pem'
command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /usr/local/lscp/key.pem -out /usr/local/lscp/cert.pem'
cmd = shlex.split(command)
res = subprocess.call(cmd)

View File

@@ -29,6 +29,6 @@ AltLog clf:/var/log/pureftpd.log
CreateHomeDir yes
MaxDiskUsage 99
CustomerProof yes
TLS 2
TLS 1
PassivePortRange 40110 40210

View File

@@ -29,6 +29,6 @@ AltLog clf:/var/log/pureftpd.log
CreateHomeDir yes
MaxDiskUsage 99
CustomerProof yes
TLS 2
TLS 1
PassivePortRange 40110 40210

View File

@@ -67,7 +67,7 @@
<div class="col-md-8 col-lg-6 clearfix center-margin">
<div class="row">
<div class="col-md-5">
<h3 class="text-transform-upr font-size-17">CyberPanel <span class="opacity-80">v 1.6</span></h3>
<h3 class="text-transform-upr font-size-17">CyberPanel <span class="opacity-80">v 1.7</span></h3>
<p class="font-gray">Web Hosting Control Panel</p>
<div class="divider"></div>
<ul class="reset-ul">

View File

@@ -132,7 +132,7 @@ def loadLoginPage(request):
firstName="Cyber",lastName="Panel")
admin.save()
vers = version(currentVersion="1.6",build=4)
vers = version(currentVersion="1.7",build=0)
vers.save()
package = Package(admin=admin, packageName="Default", diskSpace=1000,

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "Manage SSL" %}</h2>
<h2>{% trans "Manage SSL" %} - <a target="_blank" href="http://go.cyberpanel.net/ssl-docs" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "SSL Docs" %}</span></a></h2>
<p>{% trans "This page can be used to issue Lets Encrypt SSL for existing websites on server." %}</p>
</div>

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "Issue SSL For Hostname" %}</h2>
<h2>{% trans "Issue SSL For Hostname" %} - <a target="_blank" href="http://go.cyberpanel.net/hostname-ssl" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "SSL Docs" %}</span></a></h2>
<p>{% trans "Lets Encrypt SSL for hostname to access CyberPanel on verified SSL." %}</p>
</div>

View File

@@ -10,7 +10,7 @@
<div class="container">
<div id="page-title">
<h2>{% trans "Issue SSL For MailServer" %}</h2>
<h2>{% trans "Issue SSL For MailServer" %} - <a target="_blank" href="http://go.cyberpanel.net/mailserver-ssl" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "SSL Docs" %}</span></a></h2>
<p>{% trans "Lets Encrypt SSL for MailServer (Postfix/Dovecot)." %}</p>
</div>

View File

@@ -1,22 +1,285 @@
import os
import os.path
import sys
import django
sys.path.append('/usr/local/CyberCP')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
django.setup()
import shlex
import subprocess
import shutil
import requests
import json
import time
from baseTemplate.models import version
class Upgrade:
logPath = "/usr/local/lscp/logs/upgradeLog"
@staticmethod
def stdOut(message):
print("\n\n")
print ("[" + time.strftime(
"%I-%M-%S-%a-%b-%Y") + "] #########################################################################\n")
print("[" + time.strftime("%I-%M-%S-%a-%b-%Y") + "] " + message + "\n")
print ("[" + time.strftime(
"%I-%M-%S-%a-%b-%Y") + "] #########################################################################\n")
@staticmethod
def downloadLink():
try:
url = "https://cyberpanel.net/version.txt"
r = requests.get(url, verify=True)
data = json.loads(r.text)
version_number = str(data['version'])
version_build = str(data['build'])
return ("Temp.tar.gz")
return (version_number + "." + version_build + ".tar.gz")
except BaseException, msg:
Upgrade.stdOut(str(msg) + ' [downloadLink]')
os._exit(0)
@staticmethod
def setupVirtualEnv():
try:
##
count = 0
while (1):
command = "yum install -y libattr-devel xz-devel gpgme-devel mariadb-devel curl-devel"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to install project dependant modules, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to install project dependant modules! [setupVirtualEnv]")
os._exit(0)
else:
Upgrade.stdOut("Project dependant modules installed successfully!!")
break
##
count = 0
while (1):
command = "pip install virtualenv"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to install virtualenv, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed install virtualenv! [setupVirtualEnv]")
os._exit(0)
else:
Upgrade.stdOut("virtualenv installed successfully!")
break
####
count = 0
while (1):
command = "virtualenv --system-site-packages /usr/local/CyberCP"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to setup virtualenv, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to setup virtualenv! [setupVirtualEnv]")
os._exit(0)
else:
Upgrade.stdOut("virtualenv setuped successfully!")
break
##
env_path = '/usr/local/CyberCP'
subprocess.call(['virtualenv', env_path])
activate_this = os.path.join(env_path, 'bin', 'activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
##
count = 0
while (1):
command = "pip install --ignore-installed -r /usr/local/CyberCP/requirments.txt"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to install project dependant modules, trying again, try number: " + str(count))
if count == 3:
Upgrade.InstallLog.writeToFile(
"Failed to install project dependant modules! [setupVirtualEnv]")
break
else:
Upgrade.stdOut("Project dependant modules installed successfully!!")
break
command = "systemctl stop gunicorn.socket"
res = subprocess.call(shlex.split(command))
command = "virtualenv --system-site-packages /usr/local/CyberCP"
res = subprocess.call(shlex.split(command))
except OSError, msg:
Upgrade.stdOut(str(msg) + " [setupVirtualEnv]")
os._exit(0)
@staticmethod
def upgradeOpenLiteSpeed():
try:
##
count = 0
while (1):
command = "yum upgrade -y openlitespeed"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to upgrade OpenLiteSpeed, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to upgrade OpenLiteSpeed! [upgradeOpenLiteSpeed]")
else:
Upgrade.stdOut("OpenLiteSpeed successfully upgraded!")
break
##
except OSError, msg:
Upgrade.stdOut(str(msg) + " [upgradeOpenLiteSpeed]")
os._exit(0)
@staticmethod
def updateGunicornConf():
try:
path = '/etc/systemd/system/gunicorn.service'
cont = """[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
PIDFile=/run/gunicorn/pid
User=cyberpanel
Group=cyberpanel
RuntimeDirectory=gunicorn
WorkingDirectory=/usr/local/CyberCP
ExecStart=/usr/local/CyberCP/bin/gunicorn --pid /run/gunicorn/gucpid \
--bind 127.0.0.1:5003 CyberCP.wsgi
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target"""
writeToFile = open(path, 'w')
writeToFile.write(cont)
writeToFile.close()
command = 'systemctl daemon-reload'
subprocess.call(shlex.split(command))
command = 'systemctl restart gunicorn.socket'
subprocess.call(shlex.split(command))
except BaseException, msg:
Upgrade.stdOut(str(msg) + " [updateGunicornConf]")
os._exit(0)
@staticmethod
def fileManager():
## Copy File manager files
count = 1
while (1):
command = "rm -rf /usr/local/lsws/Example/html/FileManager"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to remove old File manager files, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to remove old File manager files! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Old File Manager files successfully removed!")
break
count = 1
while (1):
command = "mv /usr/local/CyberCP/install/FileManager /usr/local/lsws/Example/html"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to upgrade File manager, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to upgrade File manager! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("File manager successfully upgraded!")
break
command = "chmod -R 777 /usr/local/lsws/Example/html/FileManager"
subprocess.call(shlex.split(command))
@staticmethod
def staticContent():
count = 1
while (1):
command = "rm -rf /usr/local/lscp/cyberpanel/static"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to remove old static content, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to remove old static content! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Static content successfully removed!")
break
count = 1
while (1):
command = "mv /usr/local/CyberCP/static /usr/local/lscp/cyberpanel"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to update static content, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to update static content! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Static content in place!")
break
@staticmethod
def upgradeVersion():
vers = version.objects.get(pk=1)
getVersion = requests.get('https://cyberpanel.net/version.txt')
latest = getVersion.json()
vers.currentVersion = latest['version']
vers.build = latest['build']
vers.save()
@@ -25,83 +288,221 @@ class Upgrade:
os.chdir("/usr/local")
## Current Version
Version = version.objects.get(pk=1)
##
versionNumbring = Upgrade.downloadLink()
if float(Version.currentVersion) < 1.6:
Upgrade.stdOut('Upgrades works for version 1.6 onwards.')
os._exit(0)
## RC Check
rcCheck = 1
if os.path.exists('/usr/local/CyberCP/postfixSenderPolicy'):
rcCheck = 0
## Download latest version.
command = "wget https://cyberpanel.net/CyberPanel" + versionNumbring
subprocess.call(shlex.split(command))
count = 0
while (1):
command = "wget https://cyberpanel.net/CyberPanel." + versionNumbring
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Downloading latest version, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to download latest version! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Latest version successfully downloaded!")
break
## Backup settings file.
Upgrade.stdOut("Backing up settings file.")
shutil.copy("/usr/local/CyberCP/CyberCP/settings.py","/usr/local/settings.py")
Upgrade.stdOut("Settings file backed up.")
## Remove Core Files
count = 1
while (1):
command = "rm -rf /usr/local/CyberCP"
subprocess.call(shlex.split(command))
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to remove old version, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to remove old version! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Old version successfully removed!")
break
## Extract Latest files
command = "tar zxf CyberPanel" + versionNumbring
subprocess.call(shlex.split(command))
count = 1
while (1):
command = "tar zxf CyberPanel." + versionNumbring
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to extract new version, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut("Failed to extract new version! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("New version successfully extracted!")
break
## Copy settings file
shutil.copy("/usr/local/settings.py", "/usr/local/CyberCP/CyberCP/")
Upgrade.stdOut('Restoring settings file!')
data = open("/usr/local/settings.py", 'r').readlines()
writeToFile = open("/usr/local/CyberCP/CyberCP/settings.py", 'w')
for items in data:
if items.find("'filemanager',") > -1:
writeToFile.writelines(items)
if Version.currentVersion == '1.6':
writeToFile.writelines(" 'emailPremium'\n")
else:
writeToFile.writelines(items)
writeToFile.close()
Upgrade.stdOut('Settings file restored!')
## Move static files
command = "rm -rf /usr/local/lscp/cyberpanel/static"
subprocess.call(shlex.split(command))
Upgrade.staticContent()
command = "mv /usr/local/CyberCP/static /usr/local/lscp/cyberpanel"
subprocess.call(shlex.split(command))
## Upgrade File Manager
## Copy File manager files
command = "rm -rf /usr/local/lsws/Example/html/FileManager"
subprocess.call(shlex.split(command))
command = "mv /usr/local/CyberCP/install/FileManager /usr/local/lsws/Example/html"
subprocess.call(shlex.split(command))
Upgrade.fileManager()
## Install TLDExtract
count = 1
while (1):
command = "pip install tldextract"
subprocess.call(shlex.split(command))
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to install tldextract, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut(
"Failed to install tldextract! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("tldextract successfully installed! [pip]")
break
## Install dnspython
#command = "pip install dnspython"
#subprocess.call(shlex.split(command))
## Change File manager permissions
command = "chmod -R 777 /usr/local/lsws/Example/html/FileManager"
subprocess.call(shlex.split(command))
## MailServer Model Changes
if Version.currentVersion == '1.6' and rcCheck :
os.chdir('/usr/local/CyberCP')
count = 1
while (1):
command = "echo 'ALTER TABLE e_forwardings DROP PRIMARY KEY;ALTER TABLE e_forwardings ADD id INT AUTO_INCREMENT PRIMARY KEY;' | python manage.py dbshell"
subprocess.check_output(command, shell=True)
res = subprocess.check_output(command, shell=True)
## Restart Gunicorn
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to patch database for email forwarding, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut(
"Failed to patch database for email forwarding! [upgrade]")
os._exit(0)
command = "systemctl restart gunicorn.socket"
else:
Upgrade.stdOut("Database successfully patched for email forwarding!")
break
count = 1
while (1):
command = "python manage.py makemigrations emailPremium"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to setup migration file for email limits, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut(
"Failed to setup migration file for email limits! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Migrations file for email limits successfully prepared!")
break
count = 1
while (1):
command = "python manage.py migrate emailPremium"
res = subprocess.call(shlex.split(command))
if res == 1:
count = count + 1
Upgrade.stdOut(
"Trying to execute migration file for email limits, trying again, try number: " + str(count))
if count == 3:
Upgrade.stdOut(
"Failed to execute migration file for email limits! [upgrade]")
os._exit(0)
else:
Upgrade.stdOut("Migrations file for email limits successfully executed!")
break
Upgrade.stdOut('Setting up virtual enviroment for CyberPanel.')
Upgrade.setupVirtualEnv()
Upgrade.stdOut('Virtual enviroment for CyberPanel successfully installed.')
if Version.currentVersion == '1.6':
Upgrade.updateGunicornConf()
command = 'systemctl restart gunicorn.socket'
subprocess.call(shlex.split(command))
## Upgrade OpenLiteSpeed
Upgrade.upgradeOpenLiteSpeed()
time.sleep(3)
## Upgrade version
r = requests.post("http://localhost:5003/base/upgradeVersion")
Upgrade.upgradeVersion()
print("Upgrade Completed.")
Upgrade.stdOut("Upgrade Completed.")

View File

@@ -34,15 +34,22 @@ class HandleRequest(multi.Thread):
while True:
Data = self.connection.recv(64)
# Wait for a connection
try:
if os.path.exists(HandleRequest.cleaningPath):
readFromFile = open(HandleRequest.cleaningPath, 'r')
command = readFromFile.read()
cacheManager.handlePurgeRequest(command)
readFromFile.close()
os.remove(HandleRequest.cleaningPath)
cacheManager.flushCache()
except:
pass
if Data:
if len(Data) < 64:
@@ -62,16 +69,22 @@ class HandleRequest(multi.Thread):
def manageRequest(self, completeData):
try:
completeData = completeData.split('\n')
for items in completeData:
tempData = items.split('=')
if tempData[0] == 'sender':
if tempData[0] == 'sasl_username':
if len(tempData[1]) == 0:
self.connection.sendall('action=dunno\n\n')
return
emailAddress = tempData[1]
domainName = emailAddress.split('@')[1]
elif tempData[0] == 'recipient':
destination = tempData[1]
if domainName in cacheManager.domains:
domainObj = cacheManager.domains[domainName]
emailObj = domainObj.findEmailOBJ(emailAddress)
@@ -95,9 +108,11 @@ class HandleRequest(multi.Thread):
#logging.writeToFile('Email Monthly Used: ' + str(emailObj.monthlyUsed))
if domainObj.limitStatus == 1 and emailObj.limitStatus == 1:
if domainObj.monthlyLimits <= domainObj.monthlyUsed or emailObj.monthlyLimits <= emailObj.monthlyUsed or emailObj.hourlyLimits <= emailObj.hourlyUsed:
logging.writeToFile(emailAddress + ' either exceeded monthly or hourly sending limit.')
self.connection.sendall('action=defer_if_permit Service temporarily unavailable\n\n')
return
else:
email = EUsers.objects.get(email=emailAddress)
if emailObj.logStatus == 1:
@@ -113,8 +128,10 @@ class HandleRequest(multi.Thread):
logEntry = EmailLogs(email=email, destination=destination,
timeStamp=time.strftime("%I-%M-%S-%a-%b-%Y"))
logEntry.save()
emailObj.monthlyUsed = emailObj.monthlyUsed + 1
emailObj.hourlyUsed = emailObj.hourlyUsed + 1
domainObj.monthlyUsed = domainObj.monthlyUsed + 1
self.connection.sendall('action=dunno\n\n')

View File

@@ -123,7 +123,6 @@ class cacheManager:
@staticmethod
def hourlyCleanUP():
try:
for domain, domainOBJ in cacheManager.domains.iteritems():
for email, emailOBJ in domainOBJ.emails.iteritems():
@@ -133,12 +132,8 @@ class cacheManager:
dbEmail.hourlyUsed = 0
dbEmail.save()
emailID = EUsers.objects.get(email=email)
dbEmail = EmailLimits.objects.get(email=emailID)
dbEmail.hourlyUsed = 0
emailOBJ.hourlyUsed = 0
dbEmail.save()
except BaseException, msg:
logging.writeToFile(str(msg) + ' [cacheManager.hourlyCleanUP]')

View File

@@ -23,7 +23,6 @@ class policyConstraints:
def findEmailOBJ(self, emailAddress):
if emailAddress in self.emails:
return self.emails[emailAddress]
else:
email = EUsers.objects.get(email=emailAddress)
emailLTS = EmailLimits.objects.get(email=email)

View File

@@ -50,6 +50,7 @@ class SetupConn:
try:
self.sock.listen(5)
while True:
try:
# Wait for a connection
if os.path.exists(SetupConn.cleaningPath):
readFromFile = open(SetupConn.cleaningPath, 'r')
@@ -57,6 +58,8 @@ class SetupConn:
cacheManager.handlePurgeRequest(command)
readFromFile.close()
os.remove(SetupConn.cleaningPath)
except:
pass
connection, client_address = self.sock.accept()
background = handle.HandleRequest(connection)

View File

@@ -102,7 +102,7 @@
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Username" %}</label>
<div class="col-sm-6">
<input name="username" ng-pattern="/^[a-zA-Z0-9]+$/" ng-change="hideSomeThings()" type="text" class="form-control" ng-model="userName" required>
<input name="username" ng-change="hideSomeThings()" type="text" class="form-control" ng-model="userName" required>
</div>
<div ng-show="createUser.username.$error.pattern" class="current-pack">{% trans "Username should be lowercase alphanumeric." %}</div>
</div>
@@ -112,7 +112,7 @@
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Password" %}</label>
<div class="col-sm-6">
<input name="password" ng-pattern="/^(?=.*?[a-zA-Z])(?=.*\d)([a-zA-Z0-9])+$/" type="password" class="form-control" ng-model="password" required>
<input name="password" type="password" class="form-control" ng-model="password" required>
</div>
<div ng-show="createUser.password.$error.pattern" class="current-pack">{% trans "Must contain one number and one special character." %}</div>
@@ -123,9 +123,7 @@
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button ng-disabled="createUser.password.$error.pattern ||
createUser.username.$error.pattern ||
createUser.websitesLimit.$error.number ||
<button ng-disabled="createUser.websitesLimit.$error.number ||
createUser.userAccountsLimit.$error.number ||
createUser.email.$error.email ||
createUser.firstName.$error.pattern ||