fix createUser and modifyUser securityLevel defaults

This commit is contained in:
chris
2020-08-15 00:06:52 -04:00
parent 06deeea14e
commit 0a842c92de
7 changed files with 39 additions and 26 deletions

10
CyberCP/SecurityLevel.py Normal file
View File

@@ -0,0 +1,10 @@
from enum import Enum
class SecurityLevel(Enum):
HIGH = 0
LOW = 1
@staticmethod
def list():
return list(map(lambda s: s.name, SecurityLevel))

View File

@@ -1,10 +1,8 @@
# -*- coding: utf-8 -*-
from django.db import models from django.db import models
from CyberCP.SecurityLevel import SecurityLevel
# Create your models here. # Create your models here.
class ACL(models.Model): class ACL(models.Model):
name = models.CharField(unique=True,max_length = 50) name = models.CharField(unique=True,max_length = 50)
adminStatus = models.IntegerField(default=0) adminStatus = models.IntegerField(default=0)
@@ -85,7 +83,10 @@ class Administrator(models.Model):
owner = models.IntegerField(default=1) owner = models.IntegerField(default=1)
token = models.CharField(max_length=500, default='None') token = models.CharField(max_length=500, default='None')
api = models.IntegerField(default=0) api = models.IntegerField(default=0)
securityLevel = models.IntegerField(default=0) securityLevel = models.IntegerField(
default=0,
choices=[(tag, tag.value) for tag in SecurityLevel]
)
state = models.CharField(max_length=10, default='ACTIVE') state = models.CharField(max_length=10, default='ACTIVE')
initWebsitesLimit = models.IntegerField(default=0) initWebsitesLimit = models.IntegerField(default=0)

View File

@@ -188,7 +188,8 @@ app.controller('modifyUser', function ($scope, $http) {
$scope.firstName = userDetails.firstName; $scope.firstName = userDetails.firstName;
$scope.lastName = userDetails.lastName; $scope.lastName = userDetails.lastName;
$scope.email = userDetails.email; $scope.email = userDetails.email;
$scope.secLevel = userDetails.securityLevel; $scope.securityLevel = userDetails.securityLevel;
$scope.currentSecurityLevel = userDetails.securityLevel;
$scope.twofa = Boolean(userDetails.twofa); $scope.twofa = Boolean(userDetails.twofa);
qrCode.set({ qrCode.set({

View File

@@ -188,7 +188,8 @@ app.controller('modifyUser', function ($scope, $http) {
$scope.firstName = userDetails.firstName; $scope.firstName = userDetails.firstName;
$scope.lastName = userDetails.lastName; $scope.lastName = userDetails.lastName;
$scope.email = userDetails.email; $scope.email = userDetails.email;
$scope.secLevel = userDetails.securityLevel; $scope.securityLevel = userDetails.securityLevel;
$scope.currentSecurityLevel = userDetails.securityLevel;
$scope.twofa = Boolean(userDetails.twofa); $scope.twofa = Boolean(userDetails.twofa);
qrCode.set({ qrCode.set({

View File

@@ -106,9 +106,9 @@
<div ng-hide="acctDetailsFetched" class="form-group"> <div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Security Level" %}</label> <label class="col-sm-3 control-label">{% trans "Security Level" %}</label>
<div class="col-sm-6"> <div class="col-sm-6">
<select ng-change="fetchUserDetails()" ng-model="securityLevel" class="form-control"> <select ng-init="securityLevels={{ securityLevels }};securityLevel='HIGH'"
<option>HIGH</option> ng-model="securityLevel" ng-options="s for s in securityLevels track by s"
<option>LOW</option> class="form-control">
</select> </select>
</div> </div>
</div> </div>

View File

@@ -101,13 +101,13 @@
<div ng-hide="acctDetailsFetched" class="form-group"> <div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Security Level" %}</label> <label class="col-sm-3 control-label">{% trans "Security Level" %}</label>
<div class="col-sm-6"> <div class="col-sm-6">
<select ng-change="fetchUserDetails()" ng-model="securityLevel" class="form-control"> <select ng-init="securityLevels={{ securityLevels }}"
<option>HIGH</option> ng-model="securityLevel" ng-options="s for s in securityLevels track by s"
<option>LOW</option> class="form-control">
</select> </select>
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
Currently: {$ secLevel $} Currently: {$ currentSecurityLevel $}
</div> </div>
</div> </div>

View File

@@ -11,6 +11,7 @@ from plogical import CyberCPLogFileWriter as logging
from plogical.acl import ACLManager from plogical.acl import ACLManager
from plogical.virtualHostUtilities import virtualHostUtilities from plogical.virtualHostUtilities import virtualHostUtilities
from CyberCP.secMiddleware import secMiddleware from CyberCP.secMiddleware import secMiddleware
from CyberCP.SecurityLevel import SecurityLevel
# Create your views here. # Create your views here.
@@ -58,13 +59,16 @@ def createUser(request):
if currentACL['admin'] == 1: if currentACL['admin'] == 1:
aclNames = ACLManager.unFileteredACLs() aclNames = ACLManager.unFileteredACLs()
return render(request, 'userManagment/createUser.html', {'aclNames': aclNames}) return render(request, 'userManagment/createUser.html',
{'aclNames': aclNames, 'securityLevels': SecurityLevel.list()})
elif currentACL['changeUserACL'] == 1: elif currentACL['changeUserACL'] == 1:
aclNames = ACLManager.unFileteredACLs() aclNames = ACLManager.unFileteredACLs()
return render(request, 'userManagment/createUser.html', {'aclNames': aclNames}) return render(request, 'userManagment/createUser.html',
{'aclNames': aclNames, 'securityLevels': SecurityLevel.list()})
elif currentACL['createNewUser'] == 1: elif currentACL['createNewUser'] == 1:
aclNames = ['user'] aclNames = ['user']
return render(request, 'userManagment/createUser.html', {'aclNames': aclNames}) return render(request, 'userManagment/createUser.html',
{'aclNames': aclNames, 'securityLevels': SecurityLevel.list()})
else: else:
return ACLManager.loadError() return ACLManager.loadError()
@@ -244,11 +248,13 @@ def submitUserCreation(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def modifyUsers(request): def modifyUsers(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
adminNames = ACLManager.loadAllUsers(userID) userNames = ACLManager.loadAllUsers(userID)
return render(request, 'userManagment/modifyUser.html', {"acctNames": adminNames}) return render(request, 'userManagment/modifyUser.html',
{"acctNames": userNames, 'securityLevels': SecurityLevel.list()})
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
@@ -281,12 +287,6 @@ def fetchUserDetails(request):
email = user.email email = user.email
websitesLimit = user.initWebsitesLimit websitesLimit = user.initWebsitesLimit
securityLevel = ''
if user.securityLevel == secMiddleware.LOW:
securityLevel = 'Low'
else:
securityLevel = 'High'
import pyotp import pyotp
@@ -303,7 +303,7 @@ def fetchUserDetails(request):
"email": email, "email": email,
"acl": user.acl.name, "acl": user.acl.name,
"websitesLimit": websitesLimit, "websitesLimit": websitesLimit,
"securityLevel": securityLevel, "securityLevel": SecurityLevel(user.securityLevel).name,
"otpauth": otpauth, "otpauth": otpauth,
'twofa': user.twoFA 'twofa': user.twoFA
} }