Files
CyberPanel/databases/views.py
Usman Nasir 8d77c7336f update to p3
2019-12-10 23:04:24 +05:00

158 lines
4.5 KiB
Python
Executable File

# -*- coding: utf-8 -*-
from django.shortcuts import redirect, HttpResponse
from loginSystem.views import loadLoginPage
from databaseManager import DatabaseManager
from pluginManager import pluginManager
import json
from plogical.processUtilities import ProcessUtilities
from loginSystem.models import Administrator
import CyberCP.settings as settings
# Create your views here.
def loadDatabaseHome(request):
try:
userID = request.session['userID']
dm = DatabaseManager()
return dm.loadDatabaseHome(request, userID)
except KeyError:
return redirect(loadLoginPage)
def createDatabase(request):
try:
result = pluginManager.preCreateDatabase(request)
if result != 200:
return result
userID = request.session['userID']
dm = DatabaseManager()
coreResult = dm.createDatabase(request, userID)
result = pluginManager.postCreateDatabase(request, coreResult)
if result != 200:
return result
return coreResult
except KeyError:
return redirect(loadLoginPage)
def submitDBCreation(request):
try:
userID = request.session['userID']
result = pluginManager.preSubmitDBCreation(request)
if result != 200:
return result
dm = DatabaseManager()
coreResult = dm.submitDBCreation(userID, json.loads(request.body))
result = pluginManager.postSubmitDBCreation(request, coreResult)
if result != 200:
return result
return coreResult
except KeyError:
return redirect(loadLoginPage)
def deleteDatabase(request):
try:
userID = request.session['userID']
dm = DatabaseManager()
return dm.deleteDatabase(request, userID)
except KeyError:
return redirect(loadLoginPage)
def fetchDatabases(request):
try:
userID = request.session['userID']
dm = DatabaseManager()
return dm.fetchDatabases(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
def submitDatabaseDeletion(request):
try:
userID = request.session['userID']
result = pluginManager.preSubmitDatabaseDeletion(request)
if result != 200:
return result
dm = DatabaseManager()
coreResult = dm.submitDatabaseDeletion(userID, json.loads(request.body))
result = pluginManager.postSubmitDatabaseDeletion(request, coreResult)
if result != 200:
return result
return coreResult
except KeyError:
return redirect(loadLoginPage)
def listDBs(request):
try:
userID = request.session['userID']
dm = DatabaseManager()
return dm.listDBs(request, userID)
except KeyError:
return redirect(loadLoginPage)
def changePassword(request):
try:
userID = request.session['userID']
result = pluginManager.preChangePassword(request)
if result != 200:
return result
dm = DatabaseManager()
coreResult = dm.changePassword(userID, json.loads(request.body))
result = pluginManager.postChangePassword(request, coreResult)
if result != 200:
return result
return coreResult
except KeyError:
return redirect(loadLoginPage)
def phpMyAdmin(request):
try:
userID = request.session['userID']
dm = DatabaseManager()
return dm.phpMyAdmin(request, userID)
except KeyError:
return redirect(loadLoginPage)
def setupPHPMYAdminSession(request):
try:
userID = request.session['userID']
admin = Administrator.objects.get(id = userID)
execPath = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/databases/databaseManager.py"
execPath = execPath + " generatePHPMYAdminData --userID " + str(userID)
output = ProcessUtilities.outputExecutioner(execPath)
if output.find("1,") > -1:
request.session['PMA_single_signon_user'] = admin.userName
request.session['PMA_single_signon_password'] = output.split(',')[1]
data_ret = {'status': 1}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
else:
data_ret = {'status': 1}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'status': 0, 'createDBStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)