This commit is contained in:
Usman Nasir
2020-06-02 15:49:08 +05:00
parent 6e4c4e13e7
commit 6758dcce99
3 changed files with 67 additions and 37 deletions

View File

@@ -61,5 +61,6 @@ class cliParser:
parser.add_argument('--websitesLimit', help='Website limit 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('--selectedACL', help='Select ACL while creating user.')
parser.add_argument('--securityLevel', help='Set security level while creating user.') parser.add_argument('--securityLevel', help='Set security level while creating user.')
parser.add_argument('--state', help='State value used in user suspension.')
return parser.parse_args() return parser.parse_args()

View File

@@ -1399,14 +1399,36 @@ def main():
elif args.function == "listUsers": elif args.function == "listUsers":
from userManagment.views import fetchTableUsers from userManagment.views import fetchTableUsers
data = {} data = {}
data['userID'] = 1 data['userID'] = 1
response = fetchTableUsers(data) response = fetchTableUsers(data)
print(response.content.decode()) print(response.content.decode())
elif args.function == "suspendUser":
completeCommandExample = 'cyberpanel suspendUser --userName cyberpanel --state SUSPEND'
if not args.userName:
print("\n\nPlease enter User Name. For example:\n\n" + completeCommandExample + "\n\n")
return
if not args.state:
print("\n\nPlease enter state value i.e SUSPEND/UnSuspend. For example:\n\n" + completeCommandExample + "\n\n")
return
from userManagment.views import controlUserState
data = {}
data['accountUsername'] = args.userName
data['state'] = args.state
data['userID'] = 1
response = controlUserState(data)
print(response.content.decode())
if __name__ == "__main__": if __name__ == "__main__":

View File

@@ -1029,50 +1029,57 @@ def fetchTableUsers(request):
def controlUserState(request): def controlUserState(request):
try: try:
val = request.session['userID']
try: try:
if request.method == 'POST': val = request.session['userID']
except:
val = request['userID']
try:
try:
data = json.loads(request.body) data = json.loads(request.body)
accountUsername = data['accountUsername'] except:
state = data['state'] data = request
user = Administrator.objects.get(userName=accountUsername) accountUsername = data['accountUsername']
state = data['state']
currentACL = ACLManager.loadedACL(val) user = Administrator.objects.get(userName=accountUsername)
loggedUser = Administrator.objects.get(pk=val)
if currentACL['admin'] == 1: currentACL = ACLManager.loadedACL(val)
pass loggedUser = Administrator.objects.get(pk=val)
elif user.owner == loggedUser.pk:
pass
elif user.pk == loggedUser.pk:
pass
else:
data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
if state == 'SUSPEND': if currentACL['admin'] == 1:
user.state = 'SUSPENDED' pass
else: elif user.owner == loggedUser.pk:
user.state = 'ACTIVE' pass
elif user.pk == loggedUser.pk:
user.save() pass
else:
extraArgs = {} data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'}
extraArgs['user'] = user
extraArgs['currentACL'] = ACLManager.loadedACL(user.pk)
extraArgs['state'] = state
from userManagment.userManager import UserManager
um = UserManager('controlUserState', extraArgs)
um.start()
data_ret = {'status': 1}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
if state == 'SUSPEND':
user.state = 'SUSPENDED'
else:
user.state = 'ACTIVE'
user.save()
extraArgs = {}
extraArgs['user'] = user
extraArgs['currentACL'] = ACLManager.loadedACL(user.pk)
extraArgs['state'] = state
from userManagment.userManager import UserManager
um = UserManager('controlUserState', extraArgs)
um.start()
data_ret = {'status': 1}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg: except BaseException as msg:
data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)} data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)