mirror of https://gitlab.crans.org/bde/nk20
Better index page: non-Kfet members will be redirected to their profile page, the account note (when it will be managed) will see the consumption page
This commit is contained in:
parent
b5fa428bad
commit
65a2e8c08c
|
@ -245,7 +245,7 @@ REST_FRAMEWORK = {
|
|||
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
|
||||
|
||||
# After login redirect user to transfer page
|
||||
LOGIN_REDIRECT_URL = '/note/transfer/'
|
||||
LOGIN_REDIRECT_URL = '/'
|
||||
|
||||
# An user session will expired after 3 hours
|
||||
SESSION_COOKIE_AGE = 60 * 60 * 3
|
||||
|
|
|
@ -64,7 +64,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||
<a class="nav-link {% if request.path_info == url %}active{% endif %}" href="{{ url }}"><i class="fa fa-coffee"></i> {% trans 'Consumptions' %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if "note.transaction"|not_empty_model_list %}
|
||||
{# FIXME Find a better solution to check if a user has the right to see the transfer page #}
|
||||
{% if "note.alias"|model_list_length >= 2 %}
|
||||
<li class="nav-item">
|
||||
{% url 'note:transfer' as url %}
|
||||
<a class="nav-link {% if request.path_info == url %}active{% endif %}" href="{{ url }}"><i class="fa fa-exchange"></i> {% trans 'Transfer' %} </a>
|
||||
|
|
|
@ -5,15 +5,14 @@ from django.conf import settings
|
|||
from django.conf.urls.static import static
|
||||
from django.urls import path, include
|
||||
from django.views.defaults import bad_request, permission_denied, page_not_found, server_error
|
||||
from django.views.generic import RedirectView
|
||||
|
||||
from member.views import CustomLoginView
|
||||
|
||||
from .admin import admin_site
|
||||
from .views import IndexView
|
||||
|
||||
urlpatterns = [
|
||||
# Dev so redirect to something random
|
||||
path('', RedirectView.as_view(pattern_name='note:transfer'), name='index'),
|
||||
path('', IndexView.as_view(), name='index'),
|
||||
|
||||
# Include project routers
|
||||
path('note/', include('note.urls')),
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.urls import reverse
|
||||
from django.views.generic import RedirectView
|
||||
from note.models import Alias
|
||||
from permission.backends import PermissionBackend
|
||||
|
||||
|
||||
class IndexView(LoginRequiredMixin, RedirectView):
|
||||
def get_redirect_url(self, *args, **kwargs):
|
||||
"""
|
||||
Calculate the index page according to the roles.
|
||||
A normal user will have access to the transfer page.
|
||||
A non-Kfet member will have access to its user detail page.
|
||||
The user "note" will display the consumption interface.
|
||||
"""
|
||||
user = self.request.user
|
||||
|
||||
# The account note will have the consumption page as default page
|
||||
if not PermissionBackend.check_perm(user, "auth.view_user", user):
|
||||
return reverse("note:consos")
|
||||
|
||||
# People that can see the alias BDE are Kfet members
|
||||
if PermissionBackend.check_perm(user, "alias.view_alias", Alias.objects.get(name="BDE")):
|
||||
return reverse("note:transfer")
|
||||
|
||||
# Non-Kfet members will don't see the transfer page, but their profile page
|
||||
return reverse("member:user_detail", args=(user.pk,))
|
Loading…
Reference in New Issue