Эх сурвалжийг харах

Логирование операций

Добавил логирование событий авторизации:
1. Вход в систему
2. Выход из системы
3. Ошибка входа в систему
Denis V. Dedkov 10 жил өмнө
parent
commit
8e05a228bb
1 өөрчлөгдсөн 22 нэмэгдсэн , 0 устгасан
  1. 22 0
      asuzr/models.py

+ 22 - 0
asuzr/models.py

@@ -4,6 +4,8 @@
 from django.db import models
 from django.contrib.auth.models import User
 from datetime import date, timedelta
+from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed
+from django.contrib.admin.models import LogEntry
 
 #Изделия
 class Product(models.Model):
@@ -158,3 +160,23 @@ class OrderCosts(models.Model):
   
   def __unicode__(self):
    return ', '.join((self.order.product.name, self.cost_item.name))
+
+
+############################################################################################
+# Signal handlers
+############################################################################################
+
+def auth_log(message, user = None):
+  if user == None:
+    user = User.objects.get(pk = 1)
+
+  entry = LogEntry(user = user, object_repr = message, action_flag = 4)
+  entry.save()
+
+on_login = lambda **kwargs: auth_log(u'Вход в систему', kwargs['user'])
+on_logout = lambda **kwargs: auth_log(u'Выход из системы', kwargs['user'])
+on_login_error = lambda **kwargs: auth_log(u'Ошибка входа пользователя %s' % kwargs['credentials']['username']) 
+
+user_logged_in.connect(on_login)
+user_logged_out.connect(on_logout)
+user_login_failed.connect(on_login_error)