diff --git a/intranet/settings.py b/intranet/settings.py index f37f387ca39eef900f315f403736d928215f0c0d..fb944bbc4d275a38cd7ad176838a3f25bb1675ad 100644 --- a/intranet/settings.py +++ b/intranet/settings.py @@ -226,7 +226,7 @@ INTRANET_APPS = ( 'name': APP_PRISES_NAME, 'category':'Administration', 'label': _(u'Prises réseau'), - 'test': lambda u: u.has_perm('prises.can_view') or u.groups.filter(name='crans_adherent'), + 'test': lambda u: u.has_perm('prises.can_view') or u.groups.filter(name='crans_nounou') or u.groups.filter(name='crans_cableur'), }, { 'name': 'impressions', diff --git a/prises/views.py b/prises/views.py index c09127ccf1984a02b476e9d5782f4162a668144d..e2765ea635ce3c3649cc8c2102ee872914a870e0 100644 --- a/prises/views.py +++ b/prises/views.py @@ -23,6 +23,8 @@ # import django.shortcuts +#: Messages d'erreur ou de succès. +from django.contrib import messages from django.template import RequestContext from django.contrib.auth.decorators import login_required, permission_required @@ -30,6 +32,8 @@ from django.db.utils import ConnectionDoesNotExist from django.db import IntegrityError, DatabaseError from django.shortcuts import redirect +#: Redirection vers autre page +from django.http import HttpResponseRedirect from models import Prise, PriseAutorise from forms import ModifPriseFormSet, ValidPriseFormSet, AutoriseForm @@ -51,7 +55,6 @@ def get_batiments(): return set( batiment[0].upper() for batiment in cursor.fetchall()) except ConnectionDoesNotExist: # Distinct n'est pas implémenté return set( v['batiment'].upper() for v in Prise.objects.values('batiment')) - @login_required def prise_autorise_del(request, pk=None): @@ -64,10 +67,14 @@ def prise_autorise_del(request, pk=None): @login_required def prise_autorise(request): - """Permet de choisir la liste de prise depuis lesquelles ont peut se connecter""" + """ + Permet de choisir la liste de prise depuis lesquelles on peut se connecter + """ - if not request.user.has_perm('auth.crans_paiement_ok'): - return django.shortcuts.redirect("prises:view") + # L'application prise est obsolète, on la cache aux non-MA + if not request.user.has_perm('auth.crans_cableur'): + messages.error(request, u""" Accès interdit, droits insuffisants """ ) + return HttpResponseRedirect("/") aid = conn_pool.get_user(request.user)['aid'][0].value chbre = conn_pool.get_user(request.user)['chbre'][0].value @@ -87,9 +94,15 @@ def prise_autorise(request): 'cur_page': 'prise_autorise', }) -@permission_required('prises.can_view') +@login_required def view(request, batiment = None): """Affiche les différents batiments et les différentes chambres.""" + + # L'application prise est obsolète, on la cache aux non-MA + if not request.user.has_perm('auth.crans_cableur'): + messages.error(request, u""" Accès interdit, droits insuffisants """ ) + return HttpResponseRedirect("/") + cur_page = "view" batiments = get_batiments() if batiment: @@ -116,9 +129,15 @@ def view(request, batiment = None): l['PAGES'] = PAGES return django.shortcuts.render(request, "prises/prises.html", l) -@permission_required('prises.can_view') +@login_required def validate(request, batiment = None): """Permet de valider des câblages.""" + + # L'application prise est obsolète, on la cache aux non-MA + if not request.user.has_perm('auth.crans_cableur'): + messages.error(request, u""" Accès interdit, droits insuffisants """ ) + return HttpResponseRedirect("/") + cur_page = "validate" batiments = get_batiments() if batiment: