Skip to content

Commit 6758dcc

Browse files
committed
suspend/unsuspend user: ref #335
1 parent 6e4c4e1 commit 6758dcc

3 files changed

Lines changed: 63 additions & 33 deletions

File tree

cli/cliParser.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,6 @@ def prepareArguments(self):
6161
parser.add_argument('--websitesLimit', help='Website limit while creating user.')
6262
parser.add_argument('--selectedACL', help='Select ACL while creating user.')
6363
parser.add_argument('--securityLevel', help='Set security level while creating user.')
64+
parser.add_argument('--state', help='State value used in user suspension.')
6465

6566
return parser.parse_args()

cli/cyberPanel.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1399,15 +1399,37 @@ def main():
13991399
elif args.function == "listUsers":
14001400

14011401
from userManagment.views import fetchTableUsers
1402+
data = {}
1403+
data['userID'] = 1
1404+
response = fetchTableUsers(data)
1405+
1406+
print(response.content.decode())
1407+
1408+
elif args.function == "suspendUser":
1409+
1410+
completeCommandExample = 'cyberpanel suspendUser --userName cyberpanel --state SUSPEND'
1411+
1412+
if not args.userName:
1413+
print("\n\nPlease enter User Name. For example:\n\n" + completeCommandExample + "\n\n")
1414+
return
1415+
1416+
if not args.state:
1417+
print("\n\nPlease enter state value i.e SUSPEND/UnSuspend. For example:\n\n" + completeCommandExample + "\n\n")
1418+
return
1419+
1420+
from userManagment.views import controlUserState
14021421

14031422
data = {}
1423+
data['accountUsername'] = args.userName
1424+
data['state'] = args.state
14041425
data['userID'] = 1
14051426

1406-
response = fetchTableUsers(data)
1427+
response = controlUserState(data)
14071428

14081429
print(response.content.decode())
14091430

14101431

14111432

1433+
14121434
if __name__ == "__main__":
14131435
main()

userManagment/views.py

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,49 +1029,56 @@ def fetchTableUsers(request):
10291029

10301030
def controlUserState(request):
10311031
try:
1032-
val = request.session['userID']
10331032
try:
1034-
if request.method == 'POST':
1033+
val = request.session['userID']
1034+
except:
1035+
val = request['userID']
1036+
try:
1037+
try:
10351038
data = json.loads(request.body)
1036-
accountUsername = data['accountUsername']
1037-
state = data['state']
1039+
except:
1040+
data = request
10381041

1039-
user = Administrator.objects.get(userName=accountUsername)
1042+
accountUsername = data['accountUsername']
1043+
state = data['state']
10401044

1041-
currentACL = ACLManager.loadedACL(val)
1042-
loggedUser = Administrator.objects.get(pk=val)
1045+
user = Administrator.objects.get(userName=accountUsername)
10431046

1044-
if currentACL['admin'] == 1:
1045-
pass
1046-
elif user.owner == loggedUser.pk:
1047-
pass
1048-
elif user.pk == loggedUser.pk:
1049-
pass
1050-
else:
1051-
data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'}
1052-
json_data = json.dumps(data_ret)
1053-
return HttpResponse(json_data)
1047+
currentACL = ACLManager.loadedACL(val)
1048+
loggedUser = Administrator.objects.get(pk=val)
10541049

1055-
if state == 'SUSPEND':
1056-
user.state = 'SUSPENDED'
1057-
else:
1058-
user.state = 'ACTIVE'
1050+
if currentACL['admin'] == 1:
1051+
pass
1052+
elif user.owner == loggedUser.pk:
1053+
pass
1054+
elif user.pk == loggedUser.pk:
1055+
pass
1056+
else:
1057+
data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'}
1058+
json_data = json.dumps(data_ret)
1059+
return HttpResponse(json_data)
10591060

1060-
user.save()
1061+
if state == 'SUSPEND':
1062+
user.state = 'SUSPENDED'
1063+
else:
1064+
user.state = 'ACTIVE'
10611065

1062-
extraArgs = {}
1063-
extraArgs['user'] = user
1064-
extraArgs['currentACL'] = ACLManager.loadedACL(user.pk)
1065-
extraArgs['state'] = state
1066+
user.save()
10661067

1067-
from userManagment.userManager import UserManager
1068+
extraArgs = {}
1069+
extraArgs['user'] = user
1070+
extraArgs['currentACL'] = ACLManager.loadedACL(user.pk)
1071+
extraArgs['state'] = state
10681072

1069-
um = UserManager('controlUserState', extraArgs)
1070-
um.start()
1073+
from userManagment.userManager import UserManager
1074+
1075+
um = UserManager('controlUserState', extraArgs)
1076+
um.start()
1077+
1078+
data_ret = {'status': 1}
1079+
json_data = json.dumps(data_ret)
1080+
return HttpResponse(json_data)
10711081

1072-
data_ret = {'status': 1}
1073-
json_data = json.dumps(data_ret)
1074-
return HttpResponse(json_data)
10751082

10761083
except BaseException as msg:
10771084
data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)}

0 commit comments

Comments
 (0)