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 CyberCP.SecurityLevel import SecurityLevel
# Create your models here.
class ACL(models.Model):
name = models.CharField(unique=True,max_length = 50)
adminStatus = models.IntegerField(default=0)
@@ -85,7 +83,10 @@ class Administrator(models.Model):
owner = models.IntegerField(default=1)
token = models.CharField(max_length=500, default='None')
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')
initWebsitesLimit = models.IntegerField(default=0)

View File

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

View File

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

View File

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

View File

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

View File

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