Browse Source

Login: Spousta vylepšení

- Přesměrování na stránku, kam jsme chtěli
- Varování, pokud nemáme dost práv
- Zjednodušení LoginView pomocí standardních Django featur
export_seznamu_prednasek
Pavel "LEdoian" Turinsky 3 years ago
parent
commit
a26411f746
  1. 1
      mamweb/settings_common.py
  2. 4
      seminar/templates/seminar/profil/login.html
  3. 4
      seminar/utils.py
  4. 6
      seminar/views/views_all.py

1
mamweb/settings_common.py

@ -44,6 +44,7 @@ STATICFILES_FINDERS = (
# Where redirect for login required services
LOGIN_URL = 'login'
LOGIN_REDIRECT_URL = 'profil'
# Modules configuration

4
seminar/templates/seminar/profil/login.html

@ -8,6 +8,10 @@
Přihlášení
{% endblock %}{% endblock %}
</h1>
{# Obšlehnuto z Admina :-) #}
{% if user.is_authenticated %}
<p>K této stránce nejspíš nemáte přístup. Můžete se zkusit přihlásit jako uživatel, který přístup má.</p>
{% endif %}
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
<table class="form">

4
seminar/utils.py

@ -17,8 +17,8 @@ from enum import auto
import seminar.models as m
import seminar.treelib as t
org_required = permission_required('auth.org', raise_exception=True)
resitel_required = permission_required('auth.resitel', raise_exception=True)
org_required = permission_required('auth.org')
resitel_required = permission_required('auth.resitel')
User = get_user_model()
# Není to úplně hezké, ale budeme doufat, že to je funkční...
User.je_org = property(lambda self: self.has_perm('auth.org'))

6
seminar/views/views_all.py

@ -1230,12 +1230,6 @@ class LoginView(auth_views.LoginView):
# Jen vezmeme vestavěný a dáme mu vhodný template a přesměrovací URL
template_name = 'seminar/profil/login.html'
# Přesměrovací URL má být v kontextu:
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['next'] = reverse('profil')
return ctx
class LogoutView(auth_views.LogoutView):
# Jen vezmeme vestavěný a dáme mu vhodný template a přesměrovací URL
template_name = 'seminar/profil/logout.html'

Loading…
Cancel
Save