From 51474fe125abef27fbb8490d6467c1495ee8fd88 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 19:30:22 +0500 Subject: [PATCH] create user: ref https://github.com/usmannasir/cyberpanel/issues/335 --- cli/cliParser.py | 8 ++++++ cli/cyberPanel.py | 56 ++++++++++++++++++++++++++++++++++++++++++ userManagment/views.py | 13 +++++++--- 3 files changed, 74 insertions(+), 3 deletions(-) diff --git a/cli/cliParser.py b/cli/cliParser.py index 3fae89593..b4db61a48 100755 --- a/cli/cliParser.py +++ b/cli/cliParser.py @@ -54,4 +54,12 @@ class cliParser: parser.add_argument('--userName', help='Email Username.') parser.add_argument('--password', help='Email password.') + ### Additional Arguments for user manager + + parser.add_argument('--firstName', help='First name while creating user.') + parser.add_argument('--lastName', help='First name while creating user.') + parser.add_argument('--websitesLimit', help='Website limit while creating user.') + parser.add_argument('--selectedACL', help='Select ACL while creating user.') + parser.add_argument('--securityLevel', help='Set security level while creating user.') + return parser.parse_args() \ No newline at end of file diff --git a/cli/cyberPanel.py b/cli/cyberPanel.py index e2e6c98c7..9336ba78a 100755 --- a/cli/cyberPanel.py +++ b/cli/cyberPanel.py @@ -24,6 +24,7 @@ from plogical.ftpUtilities import FTPUtilities from plogical.sslUtilities import sslUtilities from plogical.processUtilities import ProcessUtilities from plogical.backupSchedule import backupSchedule +from django.http import HttpRequest # All that we see or seem is but a dream within a dream. @@ -1323,6 +1324,61 @@ def main(): currentversion = version + '.' + build print (currentversion) + ### User Functions + + elif args.function == "createUser": + + completeCommandExample = 'cyberpanel createUser --firstName Cyber --lastName Panel --email email@cyberpanel.net --userName cyberpanel --password securepassword --websitesLimit 10 --selectedACL user --securityLevel HIGH' + + if not args.firstName: + print("\n\nPlease enter First Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.lastName: + print("\n\nPlease enter Last Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.email: + print("\n\nPlease enter Email. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.userName: + print("\n\nPlease enter User name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.password: + print("\n\nPlease enter password. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.websitesLimit: + print("\n\nPlease enter website limit. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.selectedACL: + print("\n\nPlease enter select acl. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.securityLevel: + print("\n\nPlease set security level. For example:\n\n" + completeCommandExample + "\n\n") + return + + from userManagment.views import submitUserCreation + + data = {} + data['firstName'] = args.firstName + data['lastName'] = args.lastName + data['email'] = args.email + data['userName'] = args.userName + data['password'] = args.password + data['websitesLimit'] = args.websitesLimit + data['selectedACL'] = args.selectedACL + data['securityLevel'] = args.securityLevel + data['userID'] = 1 + + response = submitUserCreation(data) + + print(response.content.decode()) + if __name__ == "__main__": diff --git a/userManagment/views.py b/userManagment/views.py index 803d35e4f..f500ee26a 100755 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -126,10 +126,16 @@ def submitUserCreation(request): try: try: - userID = request.session['userID'] - currentACL = ACLManager.loadedACL(userID) + try: + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + data = json.loads(request.body) + except: + userID = request['userID'] + data = request + currentACL = ACLManager.loadedACL(userID) + - data = json.loads(request.body) firstName = data['firstName'] lastName = data['lastName'] email = data['email'] @@ -137,6 +143,7 @@ def submitUserCreation(request): password = data['password'] websitesLimit = data['websitesLimit'] selectedACL = data['selectedACL'] + try: securityLevel = data['securityLevel'] except: