Interdit aux étudiants voir une annonce qui ne leur est pas autorisée

Les webmasters sont exclus de ce filtrage.

fixes #5217
This commit is contained in:
Benjamin Dauvergne 2014-08-27 09:27:01 +02:00
parent 25ea9841d1
commit ab8366a966
1 changed files with 13 additions and 2 deletions

View File

@ -261,7 +261,18 @@ class MesAnnonces(ProfilRechercheView, TemplateView):
annonces_sauvegardees_actions(request)
return super(MesAnnonces, self).get(request, *args, **kwargs)
class Contact(ProfilRechercheView, SingleObjectMixin, FormView):
class ReservedAnnounceMixin(object):
def get_queryset(self):
qs = self.model.objects
if socle_views.is_webmaster(self.request.user):
return qs.all()
else:
# uniquement les annonces autorisées pour cet utilisateur
return qs.filter(
type_d_offre__in=self.request.user.type_d_offre.all()
| models.TypeOffre.objects.filter(id=1))
class Contact(ReservedAnnounceMixin, ProfilRechercheView, SingleObjectMixin, FormView):
'''Formulaire de contact des propriétaires'''
form_class = forms.ContactAnnonceForm
template_name = 'appli_recherche/contact.html'
@ -316,7 +327,7 @@ class FiberAddendum(object):
ctx['fiber_page'] = Page.objects.get(url__exact='recherche')
return ctx
class Annonce(ProfilRechercheView, FiberAddendum, DetailView):
class Annonce(ReservedAnnounceMixin, ProfilRechercheView, FiberAddendum, DetailView):
template_name = 'appli_recherche/annonce-detail.html'
model = models.Annonce
context_object_name = "annonce"