mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-10-29 09:16:54 +01:00
201 lines
7.7 KiB
Python
201 lines
7.7 KiB
Python
#!/usr/local/CyberCP/bin/python2
|
|
import os.path
|
|
import sys
|
|
import django
|
|
sys.path.append('/usr/local/CyberCP')
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
|
|
django.setup()
|
|
from django.shortcuts import render,redirect
|
|
from django.http import HttpResponse
|
|
from loginSystem.views import loadLoginPage
|
|
from loginSystem.models import Administrator
|
|
import json
|
|
from .models import Package
|
|
from plogical.acl import ACLManager
|
|
|
|
class PackagesManager:
|
|
def __init__(self, request = None):
|
|
self.request = request
|
|
|
|
def packagesHome(self):
|
|
try:
|
|
val = self.request.session['userID']
|
|
return render(self.request, 'packages/index.html', {})
|
|
except BaseException, msg:
|
|
return HttpResponse(str(msg))
|
|
|
|
def createPacakge(self):
|
|
try:
|
|
userID = self.request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'createPackage') == 0:
|
|
return ACLManager.loadError()
|
|
|
|
admin = Administrator.objects.get(pk=userID)
|
|
return render(self.request, 'packages/createPackage.html', {"admin": admin.userName})
|
|
|
|
except KeyError:
|
|
return redirect(loadLoginPage)
|
|
|
|
def deletePacakge(self):
|
|
try:
|
|
userID = self.request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'deletePackage') == 0:
|
|
return ACLManager.loadError()
|
|
|
|
packageList = ACLManager.loadPackages(userID, currentACL)
|
|
return render(self.request, 'packages/deletePackage.html', {"packageList": packageList})
|
|
|
|
except BaseException, msg:
|
|
return HttpResponse(str(msg))
|
|
|
|
def submitPackage(self):
|
|
try:
|
|
|
|
userID = self.request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'createPackage') == 0:
|
|
return ACLManager.loadErrorJson('saveStatus', 0)
|
|
|
|
data = json.loads(self.request.body)
|
|
packageName = data['packageName']
|
|
packageSpace = int(data['diskSpace'])
|
|
packageBandwidth = int(data['bandwidth'])
|
|
packageDatabases = int(data['dataBases'])
|
|
ftpAccounts = int(data['ftpAccounts'])
|
|
emails = int(data['emails'])
|
|
allowedDomains = int(data['allowedDomains'])
|
|
|
|
if packageSpace < 0 or packageBandwidth < 0 or packageDatabases < 0 or ftpAccounts < 0 or emails < 0 or allowedDomains < 0:
|
|
data_ret = {'saveStatus': 0, 'error_message': "All values should be positive or 0."}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
admin = Administrator.objects.get(pk=userID)
|
|
|
|
packageName = admin.userName + "_" + packageName
|
|
|
|
package = Package(admin=admin, packageName=packageName, diskSpace=packageSpace,
|
|
bandwidth=packageBandwidth, ftpAccounts=ftpAccounts, dataBases=packageDatabases,
|
|
emailAccounts=emails, allowedDomains=allowedDomains)
|
|
|
|
package.save()
|
|
|
|
data_ret = {'saveStatus': 1, 'error_message': "None"}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
except BaseException, msg:
|
|
data_ret = {'saveStatus': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
def submitDelete(self):
|
|
try:
|
|
userID = self.request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'deletePackage') == 0:
|
|
return ACLManager.loadErrorJson('deleteStatus', 0)
|
|
|
|
data = json.loads(self.request.body)
|
|
packageName = data['packageName']
|
|
|
|
delPackage = Package.objects.get(packageName=packageName)
|
|
delPackage.delete()
|
|
|
|
data_ret = {'deleteStatus': 1, 'error_message': "None"}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
except BaseException, msg:
|
|
data_ret = {'deleteStatus': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
def modifyPackage(self):
|
|
try:
|
|
userID = self.request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'modifyPackage') == 0:
|
|
return ACLManager.loadError()
|
|
|
|
packageList = ACLManager.loadPackages(userID, currentACL)
|
|
return render(self.request, 'packages/modifyPackage.html', {"packList": packageList})
|
|
|
|
except BaseException, msg:
|
|
return HttpResponse(str(msg))
|
|
|
|
def submitModify(self):
|
|
try:
|
|
userID = self.request.session['userID']
|
|
data = json.loads(self.request.body)
|
|
packageName = data['packageName']
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'modifyPackage') == 0:
|
|
return ACLManager.loadErrorJson('modifyStatus', 0)
|
|
|
|
modifyPack = Package.objects.get(packageName=packageName)
|
|
|
|
diskSpace = modifyPack.diskSpace
|
|
bandwidth = modifyPack.bandwidth
|
|
ftpAccounts = modifyPack.ftpAccounts
|
|
dataBases = modifyPack.dataBases
|
|
emails = modifyPack.emailAccounts
|
|
|
|
data_ret = {'emails': emails, 'modifyStatus': 1, 'error_message': "None",
|
|
"diskSpace": diskSpace, "bandwidth": bandwidth, "ftpAccounts": ftpAccounts,
|
|
"dataBases": dataBases, "allowedDomains": modifyPack.allowedDomains}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
except BaseException, msg:
|
|
data_ret = {'modifyStatus': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
def saveChanges(self):
|
|
try:
|
|
|
|
userID = self.request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if ACLManager.currentContextPermission(currentACL, 'modifyPackage') == 0:
|
|
return ACLManager.loadErrorJson('saveStatus', 0)
|
|
|
|
data = json.loads(self.request.body)
|
|
packageName = data['packageName']
|
|
|
|
if data['diskSpace'] < 0 or data['bandwidth'] < 0 or data['ftpAccounts'] < 0 or data[
|
|
'dataBases'] < 0 or \
|
|
data['emails'] < 0 or data['allowedDomains'] < 0:
|
|
data_ret = {'saveStatus': 0, 'error_message': "All values should be positive or 0."}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
modifyPack = Package.objects.get(packageName=packageName)
|
|
|
|
modifyPack.diskSpace = data['diskSpace']
|
|
modifyPack.bandwidth = data['bandwidth']
|
|
modifyPack.ftpAccounts = data['ftpAccounts']
|
|
modifyPack.dataBases = data['dataBases']
|
|
modifyPack.emailAccounts = data['emails']
|
|
modifyPack.allowedDomains = data['allowedDomains']
|
|
modifyPack.save()
|
|
|
|
data_ret = {'saveStatus': 1, 'error_message': "None"}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
except BaseException, msg:
|
|
data_ret = {'saveStatus': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data) |