Merge pull request #160 from hongwei1/master

feature/added the unlock user button
This commit is contained in:
Simon Redfern 2022-02-07 05:44:29 -06:00 committed by GitHub
commit ddf4af5a3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 20 deletions

View File

@ -55,7 +55,7 @@ class API(object):
if payload:
response = session.request(method, url, json=payload, verify=settings.VERIFY)
else:
response = session.request(method, url, verify=settings.VERIFY)
response = session.request(method, url, json={}, verify=settings.VERIFY)
except ConnectionError as err:
raise APIError(err)
time_end = time.time()

View File

@ -27,26 +27,31 @@
<span>{{ apiuser.provider_id }}</span>
</div>
{% if apiuser.is_deleted %}
<div id="users-detail-deleted">
<strong>Deleted</strong><br />
<span>{{ apiuser.is_deleted }}</span>
</div>
{% else %}
{% endif %}
<form action="{% url 'users-delete-user' apiuser.user_id %}" method="post">
<div id="users-detail-locked">
<strong>Locked</strong><br />
<span>{{ apiuser.is_locked }}</span>
</div>
<form action="{% url 'user-status-update' apiuser.user_id apiuser.username %}" method="post">
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.path }}" />
<input type="hidden" name="role_name" value="{{ entitlement.role_name }}" />
{% if apiuser.is_deleted %}
{% else %}
<button type="submit" class="btn btn-primary btn-red" >Delete User</button>
<button type="submit" class="btn btn-primary btn-red" value ="Delete" name ="Delete">Delete User</button>
{% endif %}
{% if apiuser.is_locked %}
<button type="submit" class="btn btn-primary btn-green" value ="Unlock" name ="Unlock">Unlock User</button>
{% else %}
{% endif %}
</form>

View File

@ -5,7 +5,7 @@ URLs for users app
from django.conf.urls import url
from .views import IndexView, DetailView, MyDetailView, DeleteEntitlementView, InvitationView, DeleteUserView, \
from .views import IndexView, DetailView, MyDetailView, DeleteEntitlementView, InvitationView, UserStatusUpdateView, \
ExportCsvView
urlpatterns = [
@ -24,9 +24,9 @@ urlpatterns = [
url(r'^(?P<user_id>[\w-]+)/entitlement/delete/(?P<entitlement_id>[\w-]+)$',
DeleteEntitlementView.as_view(),
name='users-delete-entitlement'),
url(r'^(?P<user_id>[\w-]+)/delete$',
DeleteUserView.as_view(),
name='users-delete-user'),
url(r'^(?P<user_id>[\w-]+)/userStatusUpdateView/(?P<username>[\w\@\.\+-]+)$',
UserStatusUpdateView.as_view(),
name='user-status-update'),
url(r'^export_csv$',
ExportCsvView.as_view(),
name='export-csv')

View File

@ -352,21 +352,29 @@ class DeleteEntitlementView(LoginRequiredMixin, View):
return HttpResponseRedirect(redirect_url)
class DeleteUserView(LoginRequiredMixin, View):
class UserStatusUpdateView(LoginRequiredMixin, View):
"""View to delete a user"""
def post(self, request, *args, **kwargs):
"""Deletes a user via API"""
api = API(self.request.session.get('obp'))
try:
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'])
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)
else:
msg = 'User with ID {} has been deleted.'.format(kwargs['user_id'])
messages.success(request, msg)
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:
messages.error(request, result['message'])
else:
msg = 'User {} has been unlocked.'.format(kwargs['username'])
messages.success(request, msg)
except APIError as err:
messages.error(request, err)
except: