mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-07 22:06:05 +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('--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()
|
||||||
@@ -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__":
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user