def check_location(cls, request): obj = cls.objects.filter(user_id=request.user.pk).order_by('-id')[:1] if obj.exists(): geo = get_geo(get_ip(request)) obj = obj[0] if not obj.notified and geo != obj.geo: messages.warning(request, render_template( 'secureauth/location_message.html', {'obj': obj})) UserAuthNotification.notify( request, _('Your location has changed to %s' % geo)) obj.notified = True obj.save()
def log_auth(cls, request, confirm_method=''): ip_address = get_ip(request) user_agent = request.META.get('HTTP_USER_AGENT') if user_agent is not None: parser = detect(user_agent) browser = parser.get('browser', {}) user_agent = "%s, %s %s" % ( parser.get('platform', {}).get('name', ""), browser.get('name', ""), browser.get('version', "")) cls.objects.create( user=request.user, ip=ip_address, geo=get_geo(ip_address), agent=user_agent, confirm_method=confirm_method )