2017-10-24 19:16:36 +05:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
from django.shortcuts import render,redirect
|
|
|
|
|
from django.http import HttpResponse
|
|
|
|
|
from plogical.getSystemInformation import SystemInformation
|
|
|
|
|
import json
|
|
|
|
|
from loginSystem.views import loadLoginPage
|
|
|
|
|
from .models import version
|
|
|
|
|
import requests
|
|
|
|
|
import subprocess
|
|
|
|
|
import shlex
|
|
|
|
|
import os
|
|
|
|
|
import plogical.CyberCPLogFileWriter as logging
|
2018-08-18 00:39:10 +05:00
|
|
|
from plogical.acl import ACLManager
|
2019-06-26 03:57:16 +05:00
|
|
|
from manageServices.models import PDNSStatus
|
2019-07-16 23:23:16 +05:00
|
|
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
2019-07-25 14:12:54 +05:00
|
|
|
from plogical.processUtilities import ProcessUtilities
|
2021-02-22 10:18:50 +05:00
|
|
|
from plogical.httpProc import httpProc
|
2017-10-24 19:16:36 +05:00
|
|
|
# Create your views here.
|
|
|
|
|
|
2021-03-08 11:10:48 +05:00
|
|
|
VERSION = '2.1'
|
|
|
|
|
BUILD = 1
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2019-07-16 23:23:16 +05:00
|
|
|
@ensure_csrf_cookie
|
2017-10-24 19:16:36 +05:00
|
|
|
def renderBase(request):
|
2021-02-22 10:18:50 +05:00
|
|
|
template = 'baseTemplate/homePage.html'
|
|
|
|
|
cpuRamDisk = SystemInformation.cpuRamDisk()
|
|
|
|
|
finaData = {'ramUsage': cpuRamDisk['ramUsage'], 'cpuUsage': cpuRamDisk['cpuUsage'],
|
|
|
|
|
'diskUsage': cpuRamDisk['diskUsage']}
|
|
|
|
|
proc = httpProc(request, template, finaData)
|
|
|
|
|
return proc.render()
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
def getAdminStatus(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
val = request.session['userID']
|
|
|
|
|
currentACL = ACLManager.loadedACL(val)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2019-06-26 03:57:16 +05:00
|
|
|
if os.path.exists('/home/cyberpanel/postfix'):
|
|
|
|
|
currentACL['emailAsWhole'] = 1
|
|
|
|
|
else:
|
|
|
|
|
currentACL['emailAsWhole'] = 0
|
|
|
|
|
|
|
|
|
|
if os.path.exists('/home/cyberpanel/pureftpd'):
|
|
|
|
|
currentACL['ftpAsWhole'] = 1
|
|
|
|
|
else:
|
|
|
|
|
currentACL['ftpAsWhole'] = 0
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
pdns = PDNSStatus.objects.get(pk=1)
|
|
|
|
|
currentACL['dnsAsWhole'] = pdns.serverStatus
|
|
|
|
|
except:
|
2020-05-15 01:07:04 +05:00
|
|
|
if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20:
|
2019-07-25 14:12:54 +05:00
|
|
|
pdnsPath = '/etc/powerdns'
|
|
|
|
|
else:
|
|
|
|
|
pdnsPath = '/etc/pdns'
|
|
|
|
|
|
|
|
|
|
if os.path.exists(pdnsPath):
|
2019-06-26 03:57:16 +05:00
|
|
|
PDNSStatus(serverStatus=1).save()
|
|
|
|
|
currentACL['dnsAsWhole'] = 1
|
|
|
|
|
else:
|
|
|
|
|
currentACL['dnsAsWhole'] = 0
|
|
|
|
|
|
2018-08-18 00:39:10 +05:00
|
|
|
json_data = json.dumps(currentACL)
|
2017-10-24 19:16:36 +05:00
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
except KeyError:
|
|
|
|
|
return HttpResponse("Can not get admin Status")
|
|
|
|
|
|
|
|
|
|
def getSystemStatus(request):
|
|
|
|
|
try:
|
2021-06-09 12:30:50 +06:00
|
|
|
val = request.session['userID']
|
|
|
|
|
currentACL = ACLManager.loadedACL(val)
|
2017-10-24 19:16:36 +05:00
|
|
|
HTTPData = SystemInformation.getSystemInformation()
|
|
|
|
|
json_data = json.dumps(HTTPData)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
except KeyError:
|
|
|
|
|
return HttpResponse("Can not get admin Status")
|
|
|
|
|
|
|
|
|
|
def getLoadAverage(request):
|
|
|
|
|
loadAverage = SystemInformation.cpuLoad()
|
|
|
|
|
loadAverage = list(loadAverage)
|
|
|
|
|
one = loadAverage[0]
|
|
|
|
|
two = loadAverage[1]
|
|
|
|
|
three = loadAverage[2]
|
|
|
|
|
loadAvg = {"one": one, "two": two,"three": three}
|
|
|
|
|
json_data = json.dumps(loadAvg)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
2019-07-16 23:23:16 +05:00
|
|
|
@ensure_csrf_cookie
|
2017-10-24 19:16:36 +05:00
|
|
|
def versionManagment(request):
|
2021-02-23 23:38:58 +05:00
|
|
|
## Get latest version
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2021-02-23 23:38:58 +05:00
|
|
|
getVersion = requests.get('https://cyberpanel.net/version.txt')
|
|
|
|
|
latest = getVersion.json()
|
|
|
|
|
latestVersion = latest['version']
|
|
|
|
|
latestBuild = latest['build']
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2021-02-23 23:38:58 +05:00
|
|
|
## Get local version
|
2020-01-06 13:51:36 +05:00
|
|
|
|
2021-02-23 23:38:58 +05:00
|
|
|
currentVersion = VERSION
|
|
|
|
|
currentBuild = str(BUILD)
|
2020-01-06 13:51:36 +05:00
|
|
|
|
2021-02-23 23:38:58 +05:00
|
|
|
template = 'baseTemplate/versionManagment.html'
|
|
|
|
|
finalData = {'build': currentBuild, 'currentVersion': currentVersion, 'latestVersion': latestVersion,
|
|
|
|
|
'latestBuild': latestBuild}
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2021-02-23 23:38:58 +05:00
|
|
|
proc = httpProc(request, template, finalData, 'versionManagement')
|
|
|
|
|
return proc.render()
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
def upgrade(request):
|
|
|
|
|
try:
|
|
|
|
|
admin = request.session['userID']
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
os.remove('upgrade.py')
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
command = 'wget http://cyberpanel.net/upgrade.py'
|
|
|
|
|
|
|
|
|
|
cmd = shlex.split(command)
|
|
|
|
|
|
2019-03-26 16:19:03 +05:00
|
|
|
res = subprocess.call(cmd)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
vers = version.objects.get(pk=1)
|
|
|
|
|
|
|
|
|
|
from upgrade import Upgrade
|
|
|
|
|
|
|
|
|
|
Upgrade.initiateUpgrade(vers.currentVersion,vers.build)
|
|
|
|
|
|
|
|
|
|
adminData = {"upgrade":1}
|
|
|
|
|
|
|
|
|
|
json_data = json.dumps(adminData)
|
|
|
|
|
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except KeyError:
|
|
|
|
|
adminData = {"upgrade": 1,"error_message":"Please login or refresh this page."}
|
|
|
|
|
json_data = json.dumps(adminData)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
|
|
|
|
def upgradeStatus(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
|
|
|
|
path = "/usr/local/lscp/logs/upgradeLog"
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
upgradeLog = open(path, "r").read()
|
|
|
|
|
except:
|
|
|
|
|
final_json = json.dumps({'finished': 0, 'upgradeStatus': 1,
|
|
|
|
|
'error_message': "None",
|
|
|
|
|
'upgradeLog': "Upgrade Just started.."})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if upgradeLog.find("Upgrade Completed")>-1:
|
|
|
|
|
|
|
|
|
|
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()
|
|
|
|
|
|
|
|
|
|
os.remove(path)
|
|
|
|
|
|
|
|
|
|
final_json = json.dumps({'finished': 1, 'upgradeStatus': 1,
|
|
|
|
|
'error_message': "None",
|
|
|
|
|
'upgradeLog': upgradeLog})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
else:
|
|
|
|
|
final_json = json.dumps({'finished': 0, 'upgradeStatus': 1,
|
|
|
|
|
'error_message': "None",
|
|
|
|
|
'upgradeLog': upgradeLog})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
2019-12-10 15:09:10 +05:00
|
|
|
except BaseException as msg:
|
2017-10-24 19:16:36 +05:00
|
|
|
final_dic = {'upgradeStatus': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
except KeyError:
|
|
|
|
|
final_dic = {'upgradeStatus': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
def upgradeVersion(request):
|
|
|
|
|
try:
|
|
|
|
|
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()
|
|
|
|
|
return HttpResponse("Version upgrade OK.")
|
2019-12-10 15:09:10 +05:00
|
|
|
except BaseException as msg:
|
2017-10-24 19:16:36 +05:00
|
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
2021-06-09 12:30:50 +06:00
|
|
|
return HttpResponse(str(msg))
|