Files
CyberPanel/loginSystem/views.py

244 lines
11 KiB
Python
Raw Normal View History

2017-10-24 19:16:36 +05:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
2018-11-14 13:36:34 +05:00
from django.shortcuts import render
2017-10-24 19:16:36 +05:00
from django.http import HttpResponse
from models import Administrator
from plogical import hashPassword
import json
from packages.models import Package
from firewall.models import FirewallRules
from baseTemplate.models import version
from plogical.getSystemInformation import SystemInformation
from django.utils.translation import LANGUAGE_SESSION_KEY
import CyberCP.settings as settings
2018-08-18 00:39:10 +05:00
from models import ACL
from plogical.acl import ACLManager
from django.views.decorators.csrf import ensure_csrf_cookie
2019-07-24 22:37:37 +05:00
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
2017-10-24 19:16:36 +05:00
# Create your views here.
def verifyLogin(request):
try:
userID = request.session['userID']
data = {'userID' : userID, 'loginStatus': 1, 'error_message':"None"}
json_data = json.dumps(data)
return HttpResponse(json_data)
except KeyError:
username = "not logged in"
password = ""
try:
if request.method == "POST":
data = json.loads(request.body)
username = data['username']
password = data['password']
try:
if data['languageSelection'] == "English":
user_Language = "en"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Chinese":
user_Language = "cn"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Bulgarian":
user_Language = "br"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Portuguese":
user_Language = "pt"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Japanese":
user_Language = "ja"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Bosnian":
user_Language = "bs"
request.session[LANGUAGE_SESSION_KEY] = user_Language
2018-02-16 00:57:46 +05:00
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Greek":
user_Language = "gr"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Russian":
user_Language = "ru"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Turkish":
user_Language = "tr"
request.session[LANGUAGE_SESSION_KEY] = user_Language
2017-10-24 19:16:36 +05:00
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
2018-05-14 22:26:25 +05:00
elif data['languageSelection'] == "Spanish":
user_Language = "es"
request.session[LANGUAGE_SESSION_KEY] = user_Language
2018-07-30 04:40:39 +05:00
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "French":
user_Language = "fr"
request.session[LANGUAGE_SESSION_KEY] = user_Language
2018-05-14 22:26:25 +05:00
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
2018-08-28 01:19:34 +05:00
elif data['languageSelection'] == "Polish":
user_Language = "pl"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "Vietnamese":
user_Language = "vi"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
2019-02-03 13:37:14 +05:00
elif data['languageSelection'] == "Italian":
user_Language = "it"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
elif data['languageSelection'] == "German":
user_Language = "de"
request.session[LANGUAGE_SESSION_KEY] = user_Language
request.COOKIES['django_language'] = user_Language
settings.LANGUAGE_CODE = user_Language
2017-10-24 19:16:36 +05:00
except:
request.session[LANGUAGE_SESSION_KEY] = "en"
request.COOKIES['django_language'] = "en"
settings.LANGUAGE_CODE = "en"
admin = Administrator.objects.get(userName=username)
if hashPassword.check_password(admin.password, password):
request.session['userID'] = admin.pk
2019-07-24 22:37:37 +05:00
ipAddr = request.META.get('REMOTE_ADDR')
if ipAddr.find(':') > -1:
ipAddr = ipAddr.split(':')[:3]
request.session['ipAddr'] = ''.join(ipAddr)
else:
request.session['ipAddr'] = request.META.get('REMOTE_ADDR')
request.session.set_expiry(3600)
2017-10-24 19:16:36 +05:00
data = {'userID': admin.pk, 'loginStatus': 1, 'error_message': "None"}
json_data = json.dumps(data)
return HttpResponse(json_data)
else:
data = {'userID': 0, 'loginStatus': 0, 'error_message': "wrong-password"}
json_data = json.dumps(data)
return HttpResponse(json_data)
except BaseException,msg:
data = {'userID': 0, 'loginStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data)
return HttpResponse(json_data)
@ensure_csrf_cookie
2017-10-24 19:16:36 +05:00
def loadLoginPage(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
cpuRamDisk = SystemInformation.cpuRamDisk()
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
admin = 1
else:
admin = 0
finaData = {"admin": admin, 'ramUsage': cpuRamDisk['ramUsage'], 'cpuUsage': cpuRamDisk['cpuUsage'],
2017-10-24 19:16:36 +05:00
'diskUsage': cpuRamDisk['diskUsage']}
return render(request, 'baseTemplate/homePage.html', finaData)
except KeyError:
numberOfAdministrator = Administrator.objects.count()
password = hashPassword.hash_password('1234567')
2019-03-30 14:21:52 +05:00
noOfRules = FirewallRules.objects.count()
2017-10-24 19:16:36 +05:00
2019-03-30 14:21:52 +05:00
if noOfRules == 0:
2017-10-24 19:16:36 +05:00
newFWRule = FirewallRules(name="panel", proto="tcp", port="8090")
newFWRule.save()
newFWRule = FirewallRules(name="http", proto="tcp", port="80")
newFWRule.save()
newFWRule = FirewallRules(name="https", proto="tcp", port="443")
newFWRule.save()
newFWRule = FirewallRules(name="ftp", proto="tcp", port="21")
newFWRule.save()
2019-03-26 16:19:03 +05:00
newFWRule = FirewallRules(name="smtp", proto="tcp", port="25")
newFWRule.save()
newFWRule = FirewallRules(name="smtps", proto="tcp", port="587")
newFWRule.save()
newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465")
newFWRule.save()
newFWRule = FirewallRules(name="pop3", proto="tcp", port="110")
newFWRule.save()
newFWRule = FirewallRules(name="imap", proto="tcp", port="143")
newFWRule.save()
newFWRule = FirewallRules(name="simap", proto="tcp", port="993")
newFWRule.save()
newFWRule = FirewallRules(name="dns", proto="udp", port="53")
newFWRule.save()
newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53")
newFWRule.save()
2017-12-09 22:30:10 +05:00
newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210")
newFWRule.save()
2019-07-24 22:37:37 +05:00
newFWRule = FirewallRules(name="quic", proto="udp", port="443")
newFWRule.save()
2019-03-30 14:21:52 +05:00
if numberOfAdministrator == 0:
ACLManager.createDefaultACLs()
acl = ACL.objects.get(name='admin')
token = hashPassword.generateToken('admin', '1234567')
email = 'usman@cyberpersons.com'
admin = Administrator(userName="admin", password=password, type=1,email=email,
firstName="Cyber",lastName="Panel", acl=acl, token=token)
admin.save()
2019-10-15 22:59:22 +05:00
vers = version(currentVersion="1.9", build=1)
2019-03-30 14:21:52 +05:00
vers.save()
package = Package(admin=admin, packageName="Default", diskSpace=1000,
bandwidth=1000, ftpAccounts=1000, dataBases=1000,
emailAccounts=1000,allowedDomains=20)
package.save()
2017-10-24 19:16:36 +05:00
return render(request, 'loginSystem/login.html', {})
else:
return render(request, 'loginSystem/login.html', {})
@ensure_csrf_cookie
2017-10-24 19:16:36 +05:00
def logout(request):
try:
del request.session['userID']
return render(request, 'loginSystem/login.html', {})
except:
2018-10-12 18:18:10 +05:00
return render(request,'loginSystem/login.html',{})