2017-10-24 19:16:36 +05:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
2018-11-16 14:41:40 +05:00
from django . shortcuts import render , redirect
2017-10-24 19:16:36 +05:00
from django . http import HttpResponse
from loginSystem . views import loadLoginPage
2018-08-18 00:39:10 +05:00
from loginSystem . models import Administrator , ACL
2017-10-24 19:16:36 +05:00
import json
from plogical import hashPassword
from plogical import CyberCPLogFileWriter as logging
2018-08-18 00:39:10 +05:00
from plogical . acl import ACLManager
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
# Create your views here.
def loadUserHome ( request ) :
try :
val = request . session [ ' userID ' ]
try :
admin = Administrator . objects . get ( pk = val )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/index.html ' , { " type " : admin . type } )
2017-10-24 19:16:36 +05:00
except BaseException , msg :
logging . CyberCPLogFileWriter . writeToFile ( str ( msg ) )
return HttpResponse ( str ( msg ) )
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def viewProfile ( request ) :
try :
userID = request . session [ ' userID ' ]
admin = Administrator . objects . get ( pk = userID )
AdminData = { }
AdminData [ ' userName ' ] = admin . userName
AdminData [ ' firstName ' ] = admin . firstName
AdminData [ ' lastName ' ] = admin . lastName
AdminData [ ' websitesLimit ' ] = admin . initWebsitesLimit
AdminData [ ' email ' ] = admin . email
2018-08-18 00:39:10 +05:00
AdminData [ ' accountACL ' ] = admin . acl . name
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/userProfile.html ' , AdminData )
2017-10-24 19:16:36 +05:00
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def createUser ( request ) :
try :
userID = request . session [ ' userID ' ]
2018-08-18 00:39:10 +05:00
currentACL = ACLManager . loadedACL ( userID )
if currentACL [ ' admin ' ] == 1 :
aclNames = ACLManager . unFileteredACLs ( )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/createUser.html ' , { ' aclNames ' : aclNames } )
2018-08-18 00:39:10 +05:00
elif currentACL [ ' changeUserACL ' ] == 1 :
aclNames = ACLManager . unFileteredACLs ( )
return render ( request , ' userManagment/createUser.html ' , { ' aclNames ' : aclNames } )
elif currentACL [ ' createNewUser ' ] == 1 :
aclNames = [ ' user ' ]
return render ( request , ' userManagment/createUser.html ' , { ' aclNames ' : aclNames } )
else :
return ACLManager . loadError ( )
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +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 redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def submitUserCreation ( request ) :
try :
2018-08-18 00:39:10 +05:00
try :
userID = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( userID )
data = json . loads ( request . body )
firstName = data [ ' firstName ' ]
lastName = data [ ' lastName ' ]
email = data [ ' email ' ]
userName = data [ ' userName ' ]
password = data [ ' password ' ]
websitesLimit = data [ ' websitesLimit ' ]
selectedACL = data [ ' selectedACL ' ]
selectedACL = ACL . objects . get ( name = selectedACL )
if selectedACL . adminStatus == 1 :
type = 1
2017-10-24 19:16:36 +05:00
else :
2018-08-18 00:39:10 +05:00
type = 3
2018-11-20 15:43:43 +05:00
token = hashPassword . generateToken ( userName , password )
2018-08-18 00:39:10 +05:00
password = hashPassword . hash_password ( password )
currentAdmin = Administrator . objects . get ( pk = userID )
2018-11-20 15:43:43 +05:00
2018-08-18 00:39:10 +05:00
if ACLManager . websitesLimitCheck ( currentAdmin , websitesLimit ) == 0 :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' createStatus ' : 0 ,
2018-08-18 00:39:10 +05:00
' error_message ' : " You ' ve reached maximum websites limit as a reseller. " }
final_json = json . dumps ( data_ret )
return HttpResponse ( final_json )
if currentACL [ ' admin ' ] == 1 :
newAdmin = Administrator ( firstName = firstName ,
lastName = lastName ,
email = email ,
type = type ,
userName = userName ,
password = password ,
initWebsitesLimit = websitesLimit ,
owner = currentAdmin . pk ,
2018-11-20 15:43:43 +05:00
acl = selectedACL ,
token = token
2018-08-18 00:39:10 +05:00
)
newAdmin . save ( )
elif currentACL [ ' changeUserACL ' ] == 1 :
newAdmin = Administrator ( firstName = firstName ,
lastName = lastName ,
email = email ,
type = type ,
userName = userName ,
password = password ,
initWebsitesLimit = websitesLimit ,
owner = currentAdmin . pk ,
2018-11-20 15:43:43 +05:00
acl = selectedACL ,
token = token
2018-08-18 00:39:10 +05:00
)
newAdmin . save ( )
elif currentACL [ ' createNewUser ' ] == 1 :
newAdmin = Administrator ( firstName = firstName ,
lastName = lastName ,
email = email ,
type = type ,
userName = userName ,
password = password ,
initWebsitesLimit = websitesLimit ,
owner = currentAdmin . pk ,
2018-11-20 15:43:43 +05:00
acl = selectedACL ,
token = token
2018-08-18 00:39:10 +05:00
)
newAdmin . save ( )
else :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' createStatus ' : 0 ,
2018-08-18 00:39:10 +05:00
' error_message ' : " You are not authorized to access this resource. " }
2017-10-30 14:34:07 +05:00
2018-08-18 00:39:10 +05:00
final_json = json . dumps ( data_ret )
return HttpResponse ( final_json )
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 1 , ' createStatus ' : 1 ,
2018-08-18 00:39:10 +05:00
' error_message ' : " None " }
final_json = json . dumps ( data_ret )
return HttpResponse ( final_json )
2017-10-24 19:16:36 +05:00
except BaseException , msg :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' createStatus ' : 0 , ' error_message ' : str ( msg ) }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
except KeyError :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' createStatus ' : 0 , ' error_message ' : " Not logged in as admin " , }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def modifyUsers ( request ) :
try :
userID = request . session [ ' userID ' ]
2018-08-18 00:39:10 +05:00
adminNames = ACLManager . loadAllUsers ( userID )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/modifyUser.html ' , { " acctNames " : adminNames } )
2017-10-24 19:16:36 +05:00
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def fetchUserDetails ( request ) :
try :
val = request . session [ ' userID ' ]
try :
if request . method == ' POST ' :
data = json . loads ( request . body )
accountUsername = data [ ' accountUsername ' ]
user = Administrator . objects . get ( userName = accountUsername )
firstName = user . firstName
lastName = user . lastName
email = user . email
websitesLimit = user . initWebsitesLimit
2018-11-16 14:41:40 +05:00
userDetails = {
" id " : user . id ,
" firstName " : firstName ,
" lastName " : lastName ,
" email " : email ,
" acl " : user . acl . name ,
" websitesLimit " : websitesLimit
}
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
data_ret = { ' fetchStatus ' : 1 , ' error_message ' : ' None ' , " userDetails " : userDetails }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
except BaseException , msg :
data_ret = { ' fetchStatus ' : 0 , ' error_message ' : str ( msg ) }
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
except KeyError :
2018-11-16 14:41:40 +05:00
data_ret = { ' fetchStatus ' : 0 , ' error_message ' : " Not logged in as admin " , }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def saveModifications ( request ) :
try :
val = request . session [ ' userID ' ]
try :
if request . method == ' POST ' :
data = json . loads ( request . body )
accountUsername = data [ ' accountUsername ' ]
firstName = data [ ' firstName ' ]
lastName = data [ ' lastName ' ]
email = data [ ' email ' ]
2018-06-30 15:29:56 +05:00
admin = Administrator . objects . get ( pk = val )
2017-10-24 19:16:36 +05:00
user = Administrator . objects . get ( userName = accountUsername )
2018-11-20 15:43:43 +05:00
token = hashPassword . generateToken ( accountUsername , data [ ' password ' ] )
2017-10-24 19:16:36 +05:00
password = hashPassword . hash_password ( data [ ' password ' ] )
2018-08-18 00:39:10 +05:00
user . firstName = firstName
user . lastName = lastName
user . email = email
user . password = password
2018-11-20 15:43:43 +05:00
user . token = token
2018-08-18 00:39:10 +05:00
user . type = 0
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
user . save ( )
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 1 , ' 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 :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' saveStatus ' : 0 , ' error_message ' : str ( msg ) }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
except KeyError :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' saveStatus ' : 0 , ' error_message ' : " Not logged in as admin " , }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def deleteUser ( request ) :
try :
userID = request . session [ ' userID ' ]
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 :
adminNames = ACLManager . loadDeletionUsers ( userID , currentACL )
return render ( request , ' userManagment/deleteUser.html ' , { " acctNames " : adminNames } )
elif currentACL [ ' deleteUser ' ] == 1 :
adminNames = ACLManager . loadDeletionUsers ( userID , currentACL )
return render ( request , ' userManagment/deleteUser.html ' , { " acctNames " : adminNames } )
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
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2017-10-24 19:16:36 +05:00
def submitUserDeletion ( request ) :
try :
2018-08-18 00:39:10 +05:00
userID = request . session [ ' userID ' ]
2017-10-24 19:16:36 +05:00
try :
if request . method == ' POST ' :
data = json . loads ( request . body )
accountUsername = data [ ' accountUsername ' ]
2018-08-18 00:39:10 +05:00
currentACL = ACLManager . loadedACL ( userID )
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
if accountUsername == ' admin ' :
data_ret = { ' status ' : 0 , ' deleteStatus ' : 0 , ' error_message ' : ' You can not delete the super user. ' }
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
2018-08-18 00:39:10 +05:00
if currentACL [ ' admin ' ] == 1 :
2018-06-30 15:29:56 +05:00
user = Administrator . objects . get ( userName = accountUsername )
user . delete ( )
2017-10-24 19:16:36 +05:00
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 1 , ' deleteStatus ' : 1 , ' error_message ' : ' None ' }
2018-06-30 15:29:56 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
else :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' deleteStatus ' : 1 , ' error_message ' : ' Not enough privileges ' }
2018-06-30 15:29:56 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
2017-10-24 19:16:36 +05:00
except BaseException , msg :
2018-11-16 14:41:40 +05:00
data_ret = { ' status ' : 0 , ' deleteStatus ' : 0 , ' error_message ' : str ( msg ) }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
except KeyError :
2018-11-16 14:41:40 +05:00
data_ret = { ' deleteStatus ' : 0 , ' error_message ' : " Not logged in as admin " , }
2017-10-24 19:16:36 +05:00
json_data = json . dumps ( data_ret )
return HttpResponse ( json_data )
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def createNewACL ( request ) :
try :
userID = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( userID )
if currentACL [ ' admin ' ] == 1 :
return render ( request , ' userManagment/createACL.html ' )
else :
return ACLManager . loadError ( )
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def createACLFunc ( request ) :
try :
val = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( val )
if currentACL [ ' admin ' ] == 1 :
data = json . loads ( request . body )
## Version Management
newACL = ACL ( name = data [ ' aclName ' ] ,
2018-11-16 14:41:40 +05:00
adminStatus = int ( data [ ' makeAdmin ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
versionManagement = int ( data [ ' versionManagement ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## User Management
createNewUser = int ( data [ ' createNewUser ' ] ) ,
resellerCenter = int ( data [ ' resellerCenter ' ] ) ,
deleteUser = int ( data [ ' deleteUser ' ] ) ,
changeUserACL = int ( data [ ' changeUserACL ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## Website Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createWebsite = int ( data [ ' createWebsite ' ] ) ,
modifyWebsite = int ( data [ ' modifyWebsite ' ] ) ,
suspendWebsite = int ( data [ ' suspendWebsite ' ] ) ,
deleteWebsite = int ( data [ ' deleteWebsite ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## Package Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createPackage = int ( data [ ' createPackage ' ] ) ,
deletePackage = int ( data [ ' deletePackage ' ] ) ,
modifyPackage = int ( data [ ' modifyPackage ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## Database Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createDatabase = int ( data [ ' createDatabase ' ] ) ,
deleteDatabase = int ( data [ ' deleteDatabase ' ] ) ,
listDatabases = int ( data [ ' listDatabases ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## DNS Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createNameServer = int ( data [ ' createNameServer ' ] ) ,
createDNSZone = int ( data [ ' createDNSZone ' ] ) ,
deleteZone = int ( data [ ' deleteZone ' ] ) ,
addDeleteRecords = int ( data [ ' addDeleteRecords ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## Email Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createEmail = int ( data [ ' createEmail ' ] ) ,
deleteEmail = int ( data [ ' deleteEmail ' ] ) ,
emailForwarding = int ( data [ ' emailForwarding ' ] ) ,
changeEmailPassword = int ( data [ ' changeEmailPassword ' ] ) ,
dkimManager = int ( data [ ' dkimManager ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## FTP Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createFTPAccount = int ( data [ ' createFTPAccount ' ] ) ,
deleteFTPAccount = int ( data [ ' deleteFTPAccount ' ] ) ,
listFTPAccounts = int ( data [ ' listFTPAccounts ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## Backup Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
createBackup = int ( data [ ' createBackup ' ] ) ,
restoreBackup = int ( data [ ' restoreBackup ' ] ) ,
addDeleteDestinations = int ( data [ ' addDeleteDestinations ' ] ) ,
scheDuleBackups = int ( data [ ' scheDuleBackups ' ] ) ,
remoteBackups = int ( data [ ' remoteBackups ' ] ) ,
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
## SSL Management
2018-08-18 00:39:10 +05:00
2018-11-16 14:41:40 +05:00
manageSSL = int ( data [ ' manageSSL ' ] ) ,
hostnameSSL = int ( data [ ' hostnameSSL ' ] ) ,
mailServerSSL = int ( data [ ' mailServerSSL ' ] ) ,
)
2018-08-18 00:39:10 +05:00
newACL . save ( )
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 1 }
2018-08-18 00:39:10 +05:00
else :
2018-08-21 13:10:40 +05:00
return ACLManager . loadErrorJson ( )
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
except BaseException , msg :
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 0 , ' errorMessage ' : str ( msg ) , ' error_message ' : str ( msg ) }
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def deleteACL ( request ) :
try :
userID = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( userID )
if currentACL [ ' admin ' ] == 1 :
aclNames = ACLManager . findAllACLs ( )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/deleteACL.html ' , { ' aclNames ' : aclNames } )
2018-08-18 00:39:10 +05:00
else :
return ACLManager . loadError ( )
except KeyError :
return redirect ( loadLoginPage )
def deleteACLFunc ( request ) :
try :
val = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( val )
if currentACL [ ' admin ' ] == 1 :
data = json . loads ( request . body )
acl = ACL . objects . get ( name = data [ ' aclToBeDeleted ' ] )
if acl . administrator_set . all ( ) . count ( ) == 0 :
acl . delete ( )
finalResponse = { ' status ' : 1 }
else :
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 0 , ' errorMesssage ' : ' This ACL is currently in used by existing users. ' , ' error_message ' : ' This ACL is currently in used by existing users. ' }
2018-08-18 00:39:10 +05:00
else :
2018-08-21 13:10:40 +05:00
return ACLManager . loadErrorJson ( )
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
except BaseException , msg :
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 0 , ' errorMessage ' : str ( msg ) , ' error_message ' : str ( msg ) }
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def modifyACL ( request ) :
try :
userID = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( userID )
if currentACL [ ' admin ' ] == 1 :
aclNames = ACLManager . findAllACLs ( )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/modifyACL.html ' , { ' aclNames ' : aclNames } )
2018-08-18 00:39:10 +05:00
else :
return ACLManager . loadError ( )
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def fetchACLDetails ( request ) :
try :
val = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( val )
if currentACL [ ' admin ' ] == 1 :
data = json . loads ( request . body )
## Version Management
finalResponse = { }
acl = ACL . objects . get ( name = data [ ' aclToModify ' ] )
finalResponse [ ' versionManagement ' ] = acl . versionManagement
finalResponse [ ' adminStatus ' ] = acl . adminStatus
## User Management
finalResponse [ ' createNewUser ' ] = acl . createNewUser
finalResponse [ ' resellerCenter ' ] = acl . resellerCenter
finalResponse [ ' deleteUser ' ] = acl . deleteUser
finalResponse [ ' changeUserACL ' ] = acl . changeUserACL
## Website Management
finalResponse [ ' createWebsite ' ] = acl . createWebsite
finalResponse [ ' modifyWebsite ' ] = acl . modifyWebsite
finalResponse [ ' suspendWebsite ' ] = acl . suspendWebsite
finalResponse [ ' deleteWebsite ' ] = acl . deleteWebsite
## Package Management
finalResponse [ ' createPackage ' ] = acl . createPackage
finalResponse [ ' deletePackage ' ] = acl . deletePackage
finalResponse [ ' modifyPackage ' ] = acl . modifyPackage
## Database Management
finalResponse [ ' createDatabase ' ] = acl . createDatabase
finalResponse [ ' deleteDatabase ' ] = acl . deleteDatabase
finalResponse [ ' listDatabases ' ] = acl . listDatabases
## DNS Management
finalResponse [ ' createNameServer ' ] = acl . createNameServer
finalResponse [ ' createDNSZone ' ] = acl . createDNSZone
finalResponse [ ' deleteZone ' ] = acl . deleteZone
finalResponse [ ' addDeleteRecords ' ] = acl . addDeleteRecords
## Email Management
finalResponse [ ' createEmail ' ] = acl . createEmail
finalResponse [ ' deleteEmail ' ] = acl . deleteEmail
finalResponse [ ' emailForwarding ' ] = acl . emailForwarding
finalResponse [ ' changeEmailPassword ' ] = acl . changeEmailPassword
finalResponse [ ' dkimManager ' ] = acl . dkimManager
## FTP Management
finalResponse [ ' createFTPAccount ' ] = acl . createFTPAccount
finalResponse [ ' deleteFTPAccount ' ] = acl . deleteFTPAccount
finalResponse [ ' listFTPAccounts ' ] = acl . listFTPAccounts
## Backup Management
finalResponse [ ' createBackup ' ] = acl . createBackup
finalResponse [ ' restoreBackup ' ] = acl . restoreBackup
finalResponse [ ' addDeleteDestinations ' ] = acl . addDeleteDestinations
finalResponse [ ' scheDuleBackups ' ] = acl . scheDuleBackups
finalResponse [ ' remoteBackups ' ] = acl . remoteBackups
## SSL Management
finalResponse [ ' manageSSL ' ] = acl . manageSSL
finalResponse [ ' hostnameSSL ' ] = acl . hostnameSSL
finalResponse [ ' mailServerSSL ' ] = acl . mailServerSSL
finalResponse [ ' status ' ] = 1
else :
2018-08-21 13:10:40 +05:00
return ACLManager . loadErrorJson ( )
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
except BaseException , msg :
finalResponse = { ' status ' : 0 , ' errorMessage ' : str ( msg ) }
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def submitACLModifications ( request ) :
try :
val = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( val )
if currentACL [ ' admin ' ] == 1 :
data = json . loads ( request . body )
## Version Management
acl = ACL . objects . get ( name = data [ ' aclToModify ' ] )
acl . adminStatus = int ( data [ ' adminStatus ' ] )
acl . versionManagement = int ( data [ ' versionManagement ' ] )
## User Management
acl . createNewUser = int ( data [ ' createNewUser ' ] )
acl . resellerCenter = int ( data [ ' resellerCenter ' ] )
acl . deleteUser = int ( data [ ' deleteUser ' ] )
acl . changeUserACL = int ( data [ ' changeUserACL ' ] )
## Website Management
acl . createWebsite = int ( data [ ' createWebsite ' ] )
acl . modifyWebsite = int ( data [ ' modifyWebsite ' ] )
acl . suspendWebsite = int ( data [ ' suspendWebsite ' ] )
acl . deleteWebsite = int ( data [ ' deleteWebsite ' ] )
## Package Management
acl . createPackage = int ( data [ ' createPackage ' ] )
acl . deletePackage = int ( data [ ' deletePackage ' ] )
acl . modifyPackage = int ( data [ ' modifyPackage ' ] )
## Database Management
acl . createDatabase = int ( data [ ' createDatabase ' ] )
acl . deleteDatabase = int ( data [ ' deleteDatabase ' ] )
acl . listDatabases = int ( data [ ' listDatabases ' ] )
## DNS Management
acl . createNameServer = int ( data [ ' createNameServer ' ] )
acl . createDNSZone = int ( data [ ' createDNSZone ' ] )
acl . deleteZone = int ( data [ ' deleteZone ' ] )
acl . addDeleteRecords = int ( data [ ' addDeleteRecords ' ] )
## Email Management
acl . createEmail = int ( data [ ' createEmail ' ] )
acl . deleteEmail = int ( data [ ' deleteEmail ' ] )
acl . emailForwarding = int ( data [ ' emailForwarding ' ] )
acl . changeEmailPassword = int ( data [ ' changeEmailPassword ' ] )
acl . dkimManager = int ( data [ ' dkimManager ' ] )
## FTP Management
acl . createFTPAccount = int ( data [ ' createFTPAccount ' ] )
acl . deleteFTPAccount = int ( data [ ' deleteFTPAccount ' ] )
acl . listFTPAccounts = int ( data [ ' listFTPAccounts ' ] )
## Backup Management
acl . createBackup = int ( data [ ' createBackup ' ] )
acl . restoreBackup = int ( data [ ' restoreBackup ' ] )
acl . addDeleteDestinations = int ( data [ ' addDeleteDestinations ' ] )
acl . scheDuleBackups = int ( data [ ' scheDuleBackups ' ] )
acl . remoteBackups = int ( data [ ' remoteBackups ' ] )
## SSL Management
acl . manageSSL = int ( data [ ' manageSSL ' ] )
acl . hostnameSSL = int ( data [ ' hostnameSSL ' ] )
acl . mailServerSSL = int ( data [ ' mailServerSSL ' ] )
acl . save ( )
2018-08-19 00:28:31 +05:00
if int ( data [ ' adminStatus ' ] ) == 1 :
allUsers = acl . administrator_set . all ( )
for items in allUsers :
items . type = 1
items . save ( )
else :
allUsers = acl . administrator_set . all ( )
for items in allUsers :
items . type = 3
items . save ( )
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 1 }
2018-08-18 00:39:10 +05:00
else :
finalResponse = ACLManager . loadErrorJson ( )
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
except BaseException , msg :
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 0 , ' errorMessage ' : str ( msg ) , ' error_message ' : str ( msg ) }
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def changeUserACL ( request ) :
try :
userID = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( userID )
if currentACL [ ' admin ' ] == 1 :
aclNames = ACLManager . unFileteredACLs ( )
userNames = ACLManager . findAllUsers ( )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/changeUserACL.html ' , { ' aclNames ' : aclNames , ' usersList ' : userNames } )
2018-08-18 00:39:10 +05:00
elif currentACL [ ' changeUserACL ' ] == 1 :
aclNames = ACLManager . unFileteredACLs ( )
userNames = ACLManager . findAllUsers ( )
return render ( request , ' userManagment/changeUserACL.html ' , { ' aclNames ' : aclNames , ' usersList ' : userNames } )
else :
return ACLManager . loadError ( )
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def changeACLFunc ( request ) :
try :
val = request . session [ ' userID ' ]
2018-11-16 14:41:40 +05:00
data = json . loads ( request . body )
if data [ ' selectedUser ' ] == ' admin ' :
finalResponse = { ' status ' : 0 ,
' errorMessage ' : " Super user can not be modified. " ,
' error_message ' : " Super user can not be modified. " }
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-08-18 00:39:10 +05:00
currentACL = ACLManager . loadedACL ( val )
if currentACL [ ' admin ' ] == 1 :
selectedACL = ACL . objects . get ( name = data [ ' selectedACL ' ] )
selectedUser = Administrator . objects . get ( userName = data [ ' selectedUser ' ] )
selectedUser . acl = selectedACL
selectedUser . save ( )
finalResponse = { ' status ' : 1 }
elif currentACL [ ' changeUserACL ' ] == 1 :
selectedACL = ACL . objects . get ( name = data [ ' selectedACL ' ] )
selectedUser = Administrator . objects . get ( userName = data [ ' selectedUser ' ] )
selectedUser . acl = selectedACL
selectedUser . save ( )
finalResponse = { ' status ' : 1 }
else :
finalResponse = ACLManager . loadErrorJson ( )
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
except BaseException , msg :
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 0 , ' errorMessage ' : str ( msg ) , ' error_message ' : str ( msg ) }
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def resellerCenter ( request ) :
try :
userID = request . session [ ' userID ' ]
currentACL = ACLManager . loadedACL ( userID )
if currentACL [ ' admin ' ] == 1 :
userNames = ACLManager . loadDeletionUsers ( userID , currentACL )
resellerPrivUsers = ACLManager . userWithResellerPriv ( userID )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/resellerCenter.html ' ,
{ ' userToBeModified ' : userNames , ' resellerPrivUsers ' : resellerPrivUsers } )
2018-08-18 00:39:10 +05:00
elif currentACL [ ' resellerCenter ' ] == 1 :
userNames = ACLManager . loadDeletionUsers ( userID , currentACL )
resellerPrivUsers = ACLManager . userWithResellerPriv ( userID )
2018-11-16 14:41:40 +05:00
return render ( request , ' userManagment/resellerCenter.html ' ,
{ ' userToBeModified ' : userNames , ' resellerPrivUsers ' : resellerPrivUsers } )
2018-08-18 00:39:10 +05:00
else :
return ACLManager . loadError ( )
except KeyError :
return redirect ( loadLoginPage )
2018-11-16 14:41:40 +05:00
2018-08-18 00:39:10 +05:00
def saveResellerChanges ( request ) :
try :
val = request . session [ ' userID ' ]
data = json . loads ( request . body )
2018-11-16 14:41:40 +05:00
if data [ ' userToBeModified ' ] == ' admin ' :
finalResponse = { ' status ' : 0 ,
' errorMessage ' : " Super user can not be modified. " ,
' error_message ' : " Super user can not be modified. " }
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
2018-08-18 00:39:10 +05:00
userToBeModified = Administrator . objects . get ( userName = data [ ' userToBeModified ' ] )
newOwner = Administrator . objects . get ( userName = data [ ' newOwner ' ] )
if ACLManager . websitesLimitCheck ( newOwner , data [ ' websitesLimit ' ] , userToBeModified ) == 0 :
finalResponse = { ' status ' : 0 ,
2018-11-16 14:41:40 +05:00
' errorMessage ' : " You ' ve reached maximum websites limit as a reseller. " ,
' error_message ' : " You ' ve reached maximum websites limit as a reseller. " }
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
userToBeModified . owner = newOwner . pk
userToBeModified . initWebsitesLimit = data [ ' websitesLimit ' ]
userToBeModified . save ( )
finalResponse = { ' status ' : 1 }
json_data = json . dumps ( finalResponse )
return HttpResponse ( json_data )
except BaseException , msg :
2018-11-16 14:41:40 +05:00
finalResponse = { ' status ' : 0 , ' errorMessage ' : str ( msg ) , ' error_message ' : str ( msg ) }
2018-08-18 00:39:10 +05:00
json_data = json . dumps ( finalResponse )
2018-11-16 14:41:40 +05:00
return HttpResponse ( json_data )