enh Clarificar comprobación y mensaje de no autorización

parent 6a28fe60
Pipeline #493 failed with stage
in 0 seconds
......@@ -95,7 +95,7 @@ class ChecksMixin(UserPassesTestMixin):
def es_decano_o_director(self, proyecto_id):
"""Devuelve si el usuario actual es decano o director del proyecto indicado."""
"""Devuelve si el usuario actual es decano/director del centro del proyecto."""
usuario_actual = self.request.user
proyecto = get_object_or_404(Proyecto, pk=proyecto_id)
centro = proyecto.centro
......@@ -108,6 +108,19 @@ class ChecksMixin(UserPassesTestMixin):
return usuario_actual.username == str(nip_decano)
def esta_vinculado_o_es_decano(self, proyecto_id):
Devuelve si el usuario actual está vinculado al proyecto indicado
o es decano o director del centro del proyecto."""
esta_autorizado = self.esta_vinculado(proyecto_id) or self.es_decano_o_director(
self.permission_denied_message = _(
"Usted no está vinculado a este proyecto, "
"ni es decano/director del centro del proyecto."
return esta_autorizado
class AyudaView(TemplateView):
template_name = "ayuda.html"
......@@ -373,9 +386,7 @@ class ProyectoDetailView(LoginRequiredMixin, ChecksMixin, DetailView):
def test_func(self):
# TODO: Los evaluadores y gestores también tendrán que tener acceso.
proyecto_id = self.kwargs["pk"]
return self.esta_vinculado(proyecto_id) or self.es_decano_o_director(
return self.esta_vinculado_o_es_decano(proyecto_id)
class ProyectoPresentarView(LoginRequiredMixin, ChecksMixin, RedirectView):
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment