mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-07 13:56:01 +01:00
suspend/unsuspend user: ref https://github.com/usmannasir/cyberpanel/issues/335
This commit is contained in:
@@ -61,5 +61,6 @@ class cliParser:
|
||||
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.')
|
||||
parser.add_argument('--state', help='State value used in user suspension.')
|
||||
|
||||
return parser.parse_args()
|
||||
@@ -1399,14 +1399,36 @@ def main():
|
||||
elif args.function == "listUsers":
|
||||
|
||||
from userManagment.views import fetchTableUsers
|
||||
|
||||
data = {}
|
||||
data['userID'] = 1
|
||||
|
||||
response = fetchTableUsers(data)
|
||||
|
||||
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__":
|
||||
|
||||
@@ -1029,50 +1029,57 @@ def fetchTableUsers(request):
|
||||
|
||||
def controlUserState(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
try:
|
||||
if request.method == 'POST':
|
||||
val = request.session['userID']
|
||||
except:
|
||||
val = request['userID']
|
||||
try:
|
||||
try:
|
||||
data = json.loads(request.body)
|
||||
accountUsername = data['accountUsername']
|
||||
state = data['state']
|
||||
except:
|
||||
data = request
|
||||
|
||||
user = Administrator.objects.get(userName=accountUsername)
|
||||
accountUsername = data['accountUsername']
|
||||
state = data['state']
|
||||
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
loggedUser = Administrator.objects.get(pk=val)
|
||||
user = Administrator.objects.get(userName=accountUsername)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
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)
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
loggedUser = Administrator.objects.get(pk=val)
|
||||
|
||||
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}
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
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':
|
||||
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:
|
||||
data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
|
||||
Reference in New Issue
Block a user