File: //usr/local/CyberCP/plogical/httpProc.py
# -*- coding: utf-8 -*-
from django.shortcuts import render, HttpResponse
import json
from plogical.processUtilities import ProcessUtilities
class httpProc:
def __init__(self, request, templateName, data = None, function = None):
self.request = request
self.templateName = templateName
self.data = data
self.function = function
def render(self):
try:
userID = self.request.session['userID']
try:
from loginSystem.models import Administrator
from plogical.acl import ACLManager
currentACL = ACLManager.loadedACL(userID)
admin = Administrator.objects.get(pk=userID)
### Permissions Check
if self.function != None:
if not currentACL['admin']:
if not currentACL[self.function]:
templateName = 'baseTemplate/error.html'
return render(self.request, templateName, {'error_message': 'You are not authorized to access %s' % (self.function)})
###
if self.data == None:
self.data = {}
from IncBackups.models import OneClickBackups
if OneClickBackups.objects.filter(owner=admin).count() == 0:
self.data['backupDisplay'] = 1
else:
self.data['backupDisplay'] = 0
### Onboarding checks
if currentACL['admin']:
try:
admin = Administrator.objects.get(userName='admin')
config = json.loads(admin.config)
self.data['onboarding'] = config['onboarding']
except:
self.data['onboarding'] = 0
self.data['onboardingError'] = """
Please launch the <a href="/base/onboarding">set-up wizard</a> to get maximum out of your CyberPanel installation.
"""
else:
self.data['onboarding'] = 2
ipFile = "/etc/cyberpanel/machineIP"
f = open(ipFile)
ipData = f.read()
ipAddress = ipData.split('\n', 1)[0]
self.data['ipAddress'] = ipAddress
self.data['fullName'] = '%s %s' % (admin.firstName, admin.lastName)
# self.data['serverCheck'] = 1
if ProcessUtilities.decideServer() == ProcessUtilities.ent:
self.data['serverCheck'] = 1
### Load Custom CSS
try:
from baseTemplate.models import CyberPanelCosmetic
cosmetic = CyberPanelCosmetic.objects.get(pk=1)
self.data['cosmetic'] = cosmetic
except:
try:
from baseTemplate.models import CyberPanelCosmetic
cosmetic = CyberPanelCosmetic()
cosmetic.save()
self.data['cosmetic'] = cosmetic
except:
pass
ACLManager.GetServiceStatus(self.data)
self.data.update(currentACL)
return render(self.request, self.templateName, self.data)
except BaseException as msg:
templateName = 'baseTemplate/error.html'
return render(self.request, templateName, {'error_message': str(msg)})
except:
from loginSystem.views import loadLoginPage
from django.shortcuts import redirect
return redirect(loadLoginPage)
def renderPre(self):
if self.data == None:
return render(self.request, self.templateName)
else:
return render(self.request, self.templateName, self.data)
def ajaxPre(self, status, errorMessage, success = None):
final_dic = {'status': status, 'error_message': errorMessage, 'success': success}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
def ajax(self, status, errorMessage, data = None):
if data == None:
finalDic = {'status': status, 'error_message': errorMessage}
finalJson = json.dumps(finalDic)
return HttpResponse(finalJson)
else:
finalDic = {}
finalDic['status'] = status
finalDic['error_message'] = errorMessage
for key, value in data.items():
finalDic[key] = value
finalJson = json.dumps(finalDic)
return HttpResponse(finalJson)
@staticmethod
def AJAX(status, errorMessage, success = None):
final_dic = {'status': status, 'error_message': errorMessage, 'success': success}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)