Browse Source

Fix auth to disabled user

devel
Dmitry Novikov 8 years ago
parent
commit
daa3f49d0d
  1. 2
      accounts_app/templatetags/acc_tags.py
  2. 4
      accounts_app/views.py
  3. 2
      djing/lib/auth_backends.py

2
accounts_app/templatetags/acc_tags.py

@ -26,7 +26,7 @@ def can_login_by_location(request):
try: try:
remote_ip = ip_address(request.META.get('REMOTE_ADDR')) remote_ip = ip_address(request.META.get('REMOTE_ADDR'))
if remote_ip.version == 4: if remote_ip.version == 4:
has_leases = IpLeaseModel.objects.filter(ip=str(remote_ip)).exists()
has_leases = IpLeaseModel.objects.filter(ip=str(remote_ip), abon__is_active=True).exists()
return has_leases return has_leases
except AddressValueError: except AddressValueError:
pass pass

4
accounts_app/views.py

@ -1,5 +1,6 @@
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout, login, authenticate from django.contrib.auth import logout, login, authenticate
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.views import LoginView from django.contrib.auth.views import LoginView
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
@ -50,7 +51,8 @@ def location_login(request):
return redirect('client_side:home') return redirect('client_side:home')
return redirect(nextl) return redirect(nextl)
return render(request, 'accounts/login.html', { return render(request, 'accounts/login.html', {
'next': nextl
'next': nextl,
'form': AuthenticationForm()
}) })
except NoReverseMatch: except NoReverseMatch:
return redirect('client_side:home') return redirect('client_side:home')

2
djing/lib/auth_backends.py

@ -40,7 +40,7 @@ class LocationAuthBackend(ModelBackend):
def authenticate(self, request, byip, **kwargs): def authenticate(self, request, byip, **kwargs):
try: try:
remote_ip = ip_address(request.META.get('REMOTE_ADDR')) remote_ip = ip_address(request.META.get('REMOTE_ADDR'))
lease = IpLeaseModel.objects.filter(ip=str(remote_ip)).first()
lease = IpLeaseModel.objects.filter(ip=str(remote_ip), abon__is_active=True).first()
if lease is None: if lease is None:
return return
user = Abon.objects.get(ip_addresses=lease) user = Abon.objects.get(ip_addresses=lease)

Loading…
Cancel
Save