mirror of
https://github.com/RobbieHan/sandboxMP.git
synced 2026-02-11 06:34:56 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
371b1ebbe3 |
@@ -2,4 +2,4 @@ from django.apps import AppConfig
|
|||||||
|
|
||||||
|
|
||||||
class CmdbConfig(AppConfig):
|
class CmdbConfig(AppConfig):
|
||||||
name = 'cmdb'
|
name = 'cmdb'
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
default_app_config = 'system.apps.SystemConfig'
|
||||||
|
|||||||
@@ -2,4 +2,10 @@ from django.apps import AppConfig
|
|||||||
|
|
||||||
|
|
||||||
class SystemConfig(AppConfig):
|
class SystemConfig(AppConfig):
|
||||||
name = 'apps.system'
|
name = 'system'
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
from .signals import create_menu
|
||||||
|
from .signals import user_logged_in_handler
|
||||||
|
from .signals import user_logged_out_handler
|
||||||
|
from .signals import user_login_failed_handler
|
||||||
|
|||||||
50
apps/system/signals.py
Normal file
50
apps/system/signals.py
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
from django.dispatch import receiver
|
||||||
|
from django.db.models.signals import post_save
|
||||||
|
from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed
|
||||||
|
|
||||||
|
from .models import Role, Menu
|
||||||
|
|
||||||
|
error_logger = logging.getLogger('sandbox_error')
|
||||||
|
info_logger = logging.getLogger('sandbox_info')
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(post_save, sender=Menu)
|
||||||
|
def create_menu(sender, instance, **kwargs):
|
||||||
|
queryset = Role.objects.filter(id=1)
|
||||||
|
try:
|
||||||
|
admin_role = queryset.get()
|
||||||
|
admin_role.permissions.add(instance)
|
||||||
|
except queryset.model.DoesNotExist as e:
|
||||||
|
error_logger.error(e)
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(user_logged_in)
|
||||||
|
def user_logged_in_handler(sender, request, user, **kwargs):
|
||||||
|
ip = request.META.get('REMOTE_ADDR')
|
||||||
|
msg = 'login user: {user}, remote ip: {ip}, action: login, status: successed'.format(
|
||||||
|
user=user.username,
|
||||||
|
ip=ip,
|
||||||
|
)
|
||||||
|
info_logger.info(msg)
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(user_logged_out)
|
||||||
|
def user_logged_out_handler(sender, request, user, **kwargs):
|
||||||
|
ip = request.META.get('REMOTE_ADDR')
|
||||||
|
msg = 'login user: {user}, remote ip: {ip}, action: logout, status: successed'.format(
|
||||||
|
user=user.username,
|
||||||
|
ip=ip,
|
||||||
|
)
|
||||||
|
info_logger.info(msg)
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(user_login_failed)
|
||||||
|
def user_login_failed_handler(sender, credentials, request, **kwargs):
|
||||||
|
msg = 'logout failed for: {credentials}'.format(
|
||||||
|
credentials=credentials,
|
||||||
|
)
|
||||||
|
|
||||||
|
info_logger.info(msg)
|
||||||
|
|
||||||
@@ -40,6 +40,7 @@ class LoginView(View):
|
|||||||
redirect_to = request.GET.get('next', '/')
|
redirect_to = request.GET.get('next', '/')
|
||||||
login_form = LoginForm(request.POST)
|
login_form = LoginForm(request.POST)
|
||||||
ret = dict(login_form=login_form)
|
ret = dict(login_form=login_form)
|
||||||
|
print(request.META.get('REMOTE_ADDR'))
|
||||||
if login_form.is_valid():
|
if login_form.is_valid():
|
||||||
user_name = request.POST['username']
|
user_name = request.POST['username']
|
||||||
pass_word = request.POST['password']
|
pass_word = request.POST['password']
|
||||||
|
|||||||
Reference in New Issue
Block a user