bugfix/ username in Lock/unlock

This commit is contained in:
Reena-cell 2023-01-31 11:49:32 +01:00
parent eb7c34ee17
commit 965a76c5ed

View File

@ -248,7 +248,7 @@ class MyDetailView(LoginRequiredMixin, FormView):
messages.error(self.request, err)
except Exception as err:
messages.error(self.request, err)
user["entitlements"]["list"] = sorted(user["entitlements"]["list"], key=lambda d: d['role_name'])
context.update({
'apiuser': user, # 'user' is logged-in user in template context
})
@ -360,38 +360,16 @@ class UserStatusUpdateView(LoginRequiredMixin, View):
api = API(self.request.session.get('obp'))
try:
if(request.POST.get("Delete")):
urlpath = '/users/{}'.format(kwargs['user_id'])
result = api.delete(urlpath)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User with ID {} has been deleted.'.format(kwargs['user_id'])
messages.success(request, msg)
self._delete_user(api, request, args, kwargs)
elif(request.POST.get("Lock")):
urlpath = '/users/{}/locks'.format(kwargs['username'])
result = api.post(urlpath, None)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User {} has been lock.'.format(kwargs['username'])
messages.success(request, msg)
self._lock_user(api, request, args, kwargs)
else:
urlpath = '/users/{}/lock-status'.format(kwargs['username'])
result = api.put(urlpath, None)
#if result is not None and 'code' in result and result['code'] >= 400:
if 'code' in result and result['code'] == 404:
msg = 'User {} has been unlocked.'.format(kwargs['username'])
messages.success(request, msg)
else:
messages.error(request, result['message'])
#else:
# msg = 'User {} has been unlocked.'.format(kwargs['username'])
# messages.success(request, msg)
self._lock_status_user(api, request, args, kwargs)
except APIError as err:
messages.error(request, err)
except Exception as e:
messages.error(self.request, 'Unknown Error' + str(e))
except Exception as err:
messages.error(self.request, err)
# from sonarcloud: Change this code to not perform redirects based on user-controlled data.
redirect_url_from_gui = request.POST.get('next', reverse('users-index'))
@ -404,6 +382,36 @@ class UserStatusUpdateView(LoginRequiredMixin, View):
return HttpResponseRedirect(redirect_url)
def _delete_user(self, api, request, *args, **kwargs):
urlpath = '/users/{}'.format(kwargs['user_id'])
result = api.delete(urlpath)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User with ID {} has been deleted.'.format(kwargs['user_id'])
messages.success(request, msg)
def _lock_user(self, api, request, *args, **kwargs):
urlpath = '/users/{}/locks'.format(kwargs['username'])
result = api.post(urlpath, None)
if result is not None and 'code' in result and result['code'] >= 400:
messages.error(request, result['message'])
else:
msg = 'User {} has been lock.'.format(kwargs['username'])
messages.success(request, msg)
def _lock_status_user(self, api, request, *args, **kwargs):
urlpath = '/users/{}/lock-status'.format(kwargs['username'])
result = api.put(urlpath, None)
#if result is not None and 'code' in result and result['code'] >= 400:
if 'code' in result and result['code'] == 404:
msg = 'User {} has been unlocked.'.format(kwargs['username'])
messages.success(request, msg)
else:
messages.error(request, result['message'])
#else:
# msg = 'User {} has been unlocked.'.format(kwargs['username'])
# messages.success(request, msg)
class ExportCsvView(LoginRequiredMixin, View):
"""View to export the user to csv"""