Commit 3d6652988068b8f765a794ba24b8d44ec3f5e611

Authored by Zambom
1 parent 027410af

Adding user logout log

log/decorators.py
@@ -10,17 +10,25 @@ def log_decorator(log_component = '', log_action = '', log_resource = ''): @@ -10,17 +10,25 @@ def log_decorator(log_component = '', log_action = '', log_resource = ''):
10 def _log_decorator(view_function): 10 def _log_decorator(view_function):
11 11
12 def _decorator(request, *args, **kwargs): 12 def _decorator(request, *args, **kwargs):
  13 + user = None
  14 +
  15 + if request.user.is_authenticated:
  16 + user = request.user
13 17
14 response = view_function(request, *args, **kwargs) 18 response = view_function(request, *args, **kwargs)
15 19
16 - if request.user.is_authenticated:  
17 - 20 + log_context = {}
  21 +
  22 + if hasattr(request, 'log_context'):
  23 + log_context = request.log_context
  24 +
  25 + if user:
18 log = Log() 26 log = Log()
19 - log.user = str(request.user)  
20 - log.user_id = request.user.id  
21 - log.user_email = request.user.email 27 + log.user = str(user)
  28 + log.user_id = user.id
  29 + log.user_email = user.email
22 log.component = log_component 30 log.component = log_component
23 - log.context = request.log_context 31 + log.context = log_context
24 log.action = log_action 32 log.action = log_action
25 log.resource = log_resource 33 log.resource = log_resource
26 34
@@ -55,9 +63,15 @@ def log_decorator_ajax(log_component = '', log_action = '', log_resource = ''): @@ -55,9 +63,15 @@ def log_decorator_ajax(log_component = '', log_action = '', log_resource = ''):
55 63
56 response = view_function(request, *args, **kwargs) 64 response = view_function(request, *args, **kwargs)
57 65
  66 + log_context = {}
  67 +
  68 + if hasattr(request, 'log_context'):
  69 + log_context = request.log_context
  70 +
58 log = Log.objects.latest('id') 71 log = Log.objects.latest('id')
59 - log.context = request.log_context 72 + log.context = log_context
60 log.save() 73 log.save()
  74 +
61 elif view_action == 'close': 75 elif view_action == 'close':
62 if request.user.is_authenticated: 76 if request.user.is_authenticated:
63 log = get_object_or_404(Log, id = request.GET.get('log_id')) 77 log = get_object_or_404(Log, id = request.GET.get('log_id'))
@@ -5,7 +5,7 @@ from . import views @@ -5,7 +5,7 @@ from . import views
5 5
6 urlpatterns = [ 6 urlpatterns = [
7 url(r'^login/$', views.login, name='login'), 7 url(r'^login/$', views.login, name='login'),
8 - url(r'^logout/$', auth_views.logout, {'next_page': 'users:login'}, name='logout'), 8 + url(r'^logout/$', views.logout, {'next_page': 'users:login'}, name='logout'),
9 url(r'^signup/$', views.RegisterUser.as_view(), name = 'signup'), 9 url(r'^signup/$', views.RegisterUser.as_view(), name = 'signup'),
10 url(r'^forgot_password/$', views.ForgotPassword.as_view(), name = 'forgot_pass'), 10 url(r'^forgot_password/$', views.ForgotPassword.as_view(), name = 'forgot_pass'),
11 url(r'^reset_password_confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', views.PasswordResetConfirmView.as_view(), name = 'reset_password_confirm'), 11 url(r'^reset_password_confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', views.PasswordResetConfirmView.as_view(), name = 'reset_password_confirm'),
users/views.py
1 from django.shortcuts import get_object_or_404, redirect, render 1 from django.shortcuts import get_object_or_404, redirect, render
2 from django.views import generic 2 from django.views import generic
3 from django.contrib import messages 3 from django.contrib import messages
4 -from django.contrib.auth import authenticate, login as login_user 4 +from django.contrib.auth import authenticate, login as login_user, logout as logout_user
5 from django.contrib.auth.mixins import LoginRequiredMixin 5 from django.contrib.auth.mixins import LoginRequiredMixin
6 from django.core.urlresolvers import reverse, reverse_lazy 6 from django.core.urlresolvers import reverse, reverse_lazy
7 from django.utils.translation import ugettext_lazy as _ 7 from django.utils.translation import ugettext_lazy as _
@@ -498,8 +498,6 @@ def login(request): @@ -498,8 +498,6 @@ def login(request):
498 498
499 next_url = request.GET.get('next', None) 499 next_url = request.GET.get('next', None)
500 500
501 - request.log_context = {}  
502 -  
503 if next_url: 501 if next_url:
504 return redirect(next_url) 502 return redirect(next_url)
505 503
@@ -514,6 +512,14 @@ def login(request): @@ -514,6 +512,14 @@ def login(request):
514 512
515 return render(request, "users/login.html", context) 513 return render(request, "users/login.html", context)
516 514
  515 +@log_decorator('user', 'logout', 'system')
  516 +def logout(request, next_page = None):
  517 + logout_user(request)
  518 +
  519 + if next_page:
  520 + return redirect(next_page)
  521 +
  522 + return redirect(reverse('users:login'))
517 523
518 # API VIEWS 524 # API VIEWS
519 class UserViewSet(viewsets.ModelViewSet): 525 class UserViewSet(viewsets.ModelViewSet):