-from django.contrib.admin.views.decorators import staff_member_required
+from django.contrib.auth.decorators import login_required
+from django.core.exceptions import PermissionDenied
from django.views.generic.edit import UpdateView
from .models import Message
success_url = '/'
template_name = 'service_message_form.html'
+ def dispatch(self, *args, **kwargs):
+ if not self.request.user.has_perm('service_messages.change_message'):
+ raise PermissionDenied()
+ return super().dispatch(*args, **kwargs)
-message_edit = staff_member_required(MessageEditView.as_view())
+
+message_edit = login_required(MessageEditView.as_view())
{% block appbar %}
<h2>Émissions</h2>
-{% if perms.emissions.change_emission %}
<span class="actions">
- {% if request.user.is_staff and not service_message.text %}
- <a href="{% url 'message-edit-view' pk=service_message.id %}">Définir un message de service</a>
- {% endif %}
+{% if perms.service_messsages.change_message and not service_message.text %}
+<a href="{% url 'message-edit-view' pk=service_message.id %}">Définir un message de service</a>
+{% endif %}
+{% if perms.emissions.change_emission %}
<a href="{% url 'emission-list' %}">Toutes les émissions</a>
<a href="{% url 'news-list' %}">Toutes les actus</a>
{% if perms.emissions.add_emission %}
<a href="{% url 'emission-add' %}">Nouvelle émission</a>
{% endif %}
-</span>
{% endif %}
+</span>
{% endblock %}
{% block more-user-links %}
{% if service_message.text %}
<div class="block {{service_message.style}}notice">
- {% if request.user.is_staff %}
+ {% if perms.service_messsages.change_message %}
<a style="float: right" href="{% url 'message-edit-view' pk=service_message.id %}">Modifier le message de service</a>
{% endif %}
{{service_message.text|default:""|safe}}
context['service_message'] = Message.objects.all().first()
if not context['service_message']:
context['service_message'] = Message.objects.create(style='info')
- if not context['service_message'].text and not self.request.user.is_staff:
+ if not context['service_message'].text and not self.request.user.has_perm('service_messages.change_message'):
context['service_message'] = None
if self.request.user.has_perm('emissions.add_focus'):
context['focused_items'] = Focus.objects.select_related().filter(current=True)