mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-04 20:36:07 +01:00
229 lines
7.9 KiB
Python
229 lines
7.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.shortcuts import render
|
|
from loginSystem.models import Administrator
|
|
from django.shortcuts import HttpResponse, redirect
|
|
import plogical.CyberCPLogFileWriter as logging
|
|
from loginSystem.views import loadLoginPage
|
|
import os
|
|
import json
|
|
from plogical.mailUtilities import mailUtilities
|
|
import subprocess, shlex
|
|
from plogical.acl import ACLManager
|
|
# Create your views here.
|
|
|
|
|
|
# Create your views here.
|
|
|
|
def managePowerDNS(request):
|
|
try:
|
|
userID = request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if currentACL['admin'] == 1:
|
|
pass
|
|
else:
|
|
return ACLManager.loadError()
|
|
try:
|
|
return render(request, 'manageServices/managePowerDNS.html', {"status": 1})
|
|
except BaseException, msg:
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
|
return HttpResponse("See CyberCP main log file.")
|
|
|
|
except KeyError:
|
|
return redirect(loadLoginPage)
|
|
|
|
def managePostfix(request):
|
|
try:
|
|
userID = request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if currentACL['admin'] == 1:
|
|
pass
|
|
else:
|
|
return ACLManager.loadError()
|
|
try:
|
|
|
|
return render(request, 'manageServices/managePostfix.html', {"status": 1})
|
|
|
|
except BaseException, msg:
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
|
return HttpResponse("See CyberCP main log file.")
|
|
|
|
except KeyError:
|
|
return redirect(loadLoginPage)
|
|
|
|
def managePureFtpd(request):
|
|
try:
|
|
userID = request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if currentACL['admin'] == 1:
|
|
pass
|
|
else:
|
|
return ACLManager.loadError()
|
|
try:
|
|
return render(request, 'manageServices/managePureFtpd.html', {"status": 1})
|
|
except BaseException, msg:
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
|
return HttpResponse("See CyberCP main log file.")
|
|
|
|
except KeyError:
|
|
return redirect(loadLoginPage)
|
|
|
|
def fetchStatus(request):
|
|
try:
|
|
userID = request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if currentACL['admin'] == 1:
|
|
pass
|
|
else:
|
|
return ACLManager.loadErrorJson()
|
|
try:
|
|
if request.method == 'POST':
|
|
|
|
mailUtilities.checkHome()
|
|
|
|
data = json.loads(request.body)
|
|
service = data['service']
|
|
|
|
if service == 'powerdns':
|
|
if os.path.exists('/home/cyberpanel/powerdns'):
|
|
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 1}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
else:
|
|
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 0}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
elif service == 'postfix':
|
|
if os.path.exists('/home/cyberpanel/postfix'):
|
|
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 1}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
else:
|
|
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 0}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
elif service == 'pureftpd':
|
|
if os.path.exists('/home/cyberpanel/pureftpd'):
|
|
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 1}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
else:
|
|
data_ret = {'status': 1, 'error_message': 'None', 'installCheck': 0}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
except BaseException,msg:
|
|
data_ret = {'status': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
except KeyError,msg:
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
|
data_ret = {'status': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
def saveStatus(request):
|
|
try:
|
|
userID = request.session['userID']
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
if currentACL['admin'] == 1:
|
|
pass
|
|
else:
|
|
return ACLManager.loadErrorJson()
|
|
try:
|
|
if request.method == 'POST':
|
|
|
|
data = json.loads(request.body)
|
|
|
|
status = data['status']
|
|
service = data['service']
|
|
|
|
mailUtilities.checkHome()
|
|
|
|
if service == 'powerdns':
|
|
|
|
servicePath = '/home/cyberpanel/powerdns'
|
|
if status == True:
|
|
writeToFile = open(servicePath, 'w+')
|
|
writeToFile.close()
|
|
command = 'sudo systemctl start pdns'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
|
|
else:
|
|
command = 'sudo systemctl stop pdns'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
command = 'sudo systemctl disable pdns'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
try:
|
|
os.remove(servicePath)
|
|
except:
|
|
pass
|
|
|
|
|
|
elif service == 'postfix':
|
|
|
|
servicePath = '/home/cyberpanel/postfix'
|
|
if status == True:
|
|
writeToFile = open(servicePath, 'w+')
|
|
writeToFile.close()
|
|
command = 'sudo systemctl start postfix'
|
|
subprocess.call(shlex.split(command))
|
|
else:
|
|
command = 'sudo systemctl stop postfix'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
command = 'sudo systemctl disable postfix'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
try:
|
|
os.remove(servicePath)
|
|
except:
|
|
pass
|
|
|
|
elif service == 'pureftpd':
|
|
|
|
servicePath = '/home/cyberpanel/pureftpd'
|
|
if status == True:
|
|
writeToFile = open(servicePath, 'w+')
|
|
writeToFile.close()
|
|
command = 'sudo systemctl start pure-ftpd'
|
|
subprocess.call(shlex.split(command))
|
|
else:
|
|
command = 'sudo systemctl stop pure-ftpd'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
command = 'sudo systemctl disable pure-ftpd'
|
|
subprocess.call(shlex.split(command))
|
|
|
|
try:
|
|
os.remove(servicePath)
|
|
except:
|
|
pass
|
|
|
|
data_ret = {'status': 1, 'error_message': "None"}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
except BaseException,msg:
|
|
data_ret = {'status': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data)
|
|
|
|
except KeyError,msg:
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
|
data_ret = {'status': 0, 'error_message': str(msg)}
|
|
json_data = json.dumps(data_ret)
|
|
return HttpResponse(json_data) |