Commit c3996a51f16a749cdd201e7e94982f93649cb2fa
1 parent
d74a55cd
Exists in
master
and in
3 other branches
Applying maintenance config
Showing
2 changed files
with
11 additions
and
4 deletions
Show diff stats
security/models.py
@@ -3,7 +3,7 @@ from django.utils.translation import ugettext_lazy as _ | @@ -3,7 +3,7 @@ from django.utils.translation import ugettext_lazy as _ | ||
3 | 3 | ||
4 | class Security(models.Model): | 4 | class Security(models.Model): |
5 | allow_register = models.BooleanField(_("Don't allow users to self-register"), default = False) | 5 | allow_register = models.BooleanField(_("Don't allow users to self-register"), default = False) |
6 | - maintence = models.BooleanField(_("Put system in maintence mode"), default = False) | 6 | + maintence = models.BooleanField(_("Put system in maintenance mode"), default = False) |
7 | 7 | ||
8 | class Meta: | 8 | class Meta: |
9 | verbose_name = _('Security configuration') | 9 | verbose_name = _('Security configuration') |
users/views.py
@@ -9,6 +9,8 @@ from django.db.models import Q | @@ -9,6 +9,8 @@ from django.db.models import Q | ||
9 | 9 | ||
10 | from braces import views as braces_mixins | 10 | from braces import views as braces_mixins |
11 | 11 | ||
12 | +from security.models import Security | ||
13 | + | ||
12 | from .models import User | 14 | from .models import User |
13 | from .utils import has_dependencies | 15 | from .utils import has_dependencies |
14 | from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm | 16 | from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm |
@@ -404,16 +406,21 @@ def login(request): | @@ -404,16 +406,21 @@ def login(request): | ||
404 | username = request.POST['email'] | 406 | username = request.POST['email'] |
405 | password = request.POST['password'] | 407 | password = request.POST['password'] |
406 | user = authenticate(username=username, password=password) | 408 | user = authenticate(username=username, password=password) |
409 | + security = Security.objects.get(id = 1) | ||
410 | + | ||
407 | if user is not None: | 411 | if user is not None: |
408 | - login_user(request, user) | ||
409 | - return redirect(reverse("home")) | 412 | + if not security.maintence or user.is_staff: |
413 | + login_user(request, user) | ||
414 | + return redirect(reverse("home")) | ||
415 | + else: | ||
416 | + messages.error(request, _('System under maintenance. Try again later')) | ||
410 | else: | 417 | else: |
411 | messages.error(request, _('E-mail or password are incorrect.')) | 418 | messages.error(request, _('E-mail or password are incorrect.')) |
412 | context["username"] = username | 419 | context["username"] = username |
413 | elif request.user.is_authenticated: | 420 | elif request.user.is_authenticated: |
414 | return redirect(reverse('home')) | 421 | return redirect(reverse('home')) |
415 | 422 | ||
416 | - return render(request,"users/login.html",context) | 423 | + return render(request, "users/login.html", context) |
417 | 424 | ||
418 | 425 | ||
419 | # API VIEWS | 426 | # API VIEWS |