From bedcd21f7c5d639f5a54213b8027a3e50703eb53 Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Tue, 13 Sep 2016 17:13:21 -0300 Subject: [PATCH] Otimiza as verificacoes de permissoes --- sapl/materia/views.py | 60 ++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/sapl/materia/views.py b/sapl/materia/views.py index de8a16811..9ad9d3f29 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -439,39 +439,37 @@ class ProposicaoCrud(Crud): def has_permission(self): perms = self.get_permission_required() - if self.request.user.has_perms(perms): - if (Proposicao.objects.filter( - id=self.kwargs['pk'], - autor__user_id=self.request.user.id).exists()): - proposicao = Proposicao.objects.get( - id=self.kwargs['pk'], - autor__user_id=self.request.user.id) - if (not proposicao.data_recebimento or - proposicao.data_devolucao): - return True - else: - msg = _('Essa proposição já foi recebida. ' + - 'Não pode mais ser editada') - messages.add_message(self.request, messages.ERROR, msg) - return False - else: + if not self.request.user.has_perms(perms): return False + if (Proposicao.objects.filter( + id=self.kwargs['pk'], + autor__user_id=self.request.user.id).exists()): + proposicao = Proposicao.objects.get( + id=self.kwargs['pk'], + autor__user_id=self.request.user.id) + if (not proposicao.data_recebimento or + proposicao.data_devolucao): + return True + else: + msg = _('Essa proposição já foi recebida. ' + + 'Não pode mais ser editada') + messages.add_message(self.request, messages.ERROR, msg) + return False + class DetailView(PermissionRequiredMixin, CrudDetailView): permission_required = permissoes_autor() def has_permission(self): perms = self.get_permission_required() - if self.request.user.has_perms(perms): - if (Proposicao.objects.filter( - id=self.kwargs['pk'], - autor__user_id=self.request.user.id).exists()): - return True - else: - return False - else: + if not self.request.user.has_perms(perms): return False + else: + return (Proposicao.objects.filter( + id=self.kwargs['pk'], + autor__user_id=self.request.user.id).exists()) + class ListView(PermissionRequiredMixin, CrudListView): ordering = ['-data_envio', 'descricao'] permission_required = permissoes_autor() @@ -507,16 +505,14 @@ class ProposicaoCrud(Crud): def has_permission(self): perms = self.get_permission_required() - if self.request.user.has_perms(perms): - if (Proposicao.objects.filter( - id=self.kwargs['pk'], - autor__user_id=self.request.user.id).exists()): - return True - else: - return False - else: + if not self.request.user.has_perms(perms): return False + else: + return (Proposicao.objects.filter( + id=self.kwargs['pk'], + autor__user_id=self.request.user.id).exists()) + def delete(self, request, *args, **kwargs): proposicao = Proposicao.objects.get(id=self.kwargs['pk'])