Files
CyberPanel/packages/views.py

259 lines
9.1 KiB
Python
Raw Normal View History

2017-10-24 19:16:36 +05:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
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
import plogical.CyberCPLogFileWriter as logging
2018-08-18 00:39:10 +05:00
from plogical.acl import ACLManager
2017-10-24 19:16:36 +05:00
# Create your views here.
def packagesHome(request):
try:
val = request.session['userID']
except KeyError:
return redirect(loadLoginPage)
return render(request,'packages/index.html',{})
def createPacakge(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
admin = Administrator.objects.get(pk=userID)
currentACL = ACLManager.loadedACL(userID)
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['createPackage'] == 1:
pass
else:
return ACLManager.loadError()
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
return render(request, 'packages/createPackage.html', {"admin": admin.userName})
2017-10-24 19:16:36 +05:00
except KeyError:
return redirect(loadLoginPage)
def deletePacakge(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['deletePackage'] == 1:
pass
2017-10-24 19:16:36 +05:00
else:
2018-08-18 00:39:10 +05:00
return ACLManager.loadError()
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
packageList = ACLManager.loadPackages(userID, currentACL)
return render(request, 'packages/deletePackage.html', {"packageList": packageList})
2017-10-24 19:16:36 +05:00
except BaseException,msg:
2018-08-18 00:39:10 +05:00
logging.CyberCPLogFileWriter.writeToFile(str(msg))
2017-10-24 19:16:36 +05:00
return HttpResponse("Please see CyberCP Main Log File")
except KeyError:
return redirect(loadLoginPage)
def submitPackage(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
elif currentACL['createPackage'] == 1:
pass
else:
return ACLManager.loadErrorJson('saveStatus', 0)
2017-10-24 19:16:36 +05:00
try:
if request.method == 'POST':
data = json.loads(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'])
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
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)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
admin = Administrator.objects.get(pk=userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
packageName = admin.userName + "_" + packageName
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
package = Package(admin=admin, packageName=packageName, diskSpace=packageSpace,
bandwidth=packageBandwidth, ftpAccounts=ftpAccounts, dataBases=packageDatabases,
emailAccounts=emails, allowedDomains=allowedDomains)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
package.save()
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
data_ret = {'saveStatus': 1, 'error_message': "None"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2017-10-24 19:16:36 +05:00
except BaseException,msg:
data_ret = {'saveStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except KeyError:
return redirect(loadLoginPage)
def submitDelete(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['deletePackage'] == 1:
pass
2018-06-30 15:29:56 +05:00
else:
2018-08-18 00:39:10 +05:00
return ACLManager.loadErrorJson('deleteStatus', 0)
if request.method == 'POST':
data = json.loads(request.body)
packageName = data['packageName']
delPackage = Package.objects.get(packageName=packageName)
delPackage.delete()
data_ret = {'deleteStatus': 1, 'error_message': "None"}
2017-10-24 19:16:36 +05:00
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)
except KeyError,msg:
data_ret = {'deleteStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def modifyPackage(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['modifyPackage'] == 1:
pass
2017-10-24 19:16:36 +05:00
else:
2018-08-18 00:39:10 +05:00
return ACLManager.loadError()
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
packageList = ACLManager.loadPackages(userID, currentACL)
return render(request, 'packages/modifyPackage.html', {"packList": packageList})
2017-10-24 19:16:36 +05:00
except BaseException,msg:
2018-06-30 15:29:56 +05:00
logging.CyberCPLogFileWriter.writeToFile(str(msg))
2017-10-24 19:16:36 +05:00
return HttpResponse("Please see CyberCP Main Log File")
except KeyError:
2018-08-18 00:39:10 +05:00
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
def submitModify(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
if request.method == 'POST':
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
data = json.loads(request.body)
packageName = data['packageName']
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['modifyPackage'] == 1:
pass
else:
return ACLManager.loadErrorJson('modifyStatus', 0)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
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}
2017-10-24 19:16:36 +05:00
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2018-06-30 15:29:56 +05:00
2017-10-24 19:16:36 +05:00
except BaseException,msg:
data_ret = {'modifyStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except KeyError,msg:
data_ret = {'modifyStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def saveChanges(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
if request.method == 'POST':
data = json.loads(request.body)
packageName = data['packageName']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
elif currentACL['modifyPackage'] == 1:
pass
else:
return ACLManager.loadErrorJson('saveStatus', 0)
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)
2018-08-18 00:39:10 +05:00
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"}
2017-10-24 19:16:36 +05:00
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)
except KeyError,msg:
data_ret = {'saveStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)