Skip to content

Commit

Permalink
signals
Browse files Browse the repository at this point in the history
  • Loading branch information
RobbieHan committed Jan 4, 2019
1 parent 9d0bd95 commit 371b1eb
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 2 deletions.
2 changes: 1 addition & 1 deletion apps/cmdb/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@


class CmdbConfig(AppConfig):
name = 'cmdb'
name = 'cmdb'
1 change: 1 addition & 0 deletions apps/system/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
default_app_config = 'system.apps.SystemConfig'
8 changes: 7 additions & 1 deletion apps/system/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,10 @@


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 changes: 50 additions & 0 deletions apps/system/signals.py
Original file line number Diff line number Diff line change
@@ -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)

1 change: 1 addition & 0 deletions apps/system/views_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ def post(self, request):
redirect_to = request.GET.get('next', '/')
login_form = LoginForm(request.POST)
ret = dict(login_form=login_form)
print(request.META.get('REMOTE_ADDR'))
if login_form.is_valid():
user_name = request.POST['username']
pass_word = request.POST['password']
Expand Down

0 comments on commit 371b1eb

Please sign in to comment.