Browse Source

Otimiza as verificacoes de permissoes

pull/579/head
Eduardo Calil 8 years ago
parent
commit
bedcd21f7c
  1. 60
      sapl/materia/views.py

60
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'])

Loading…
Cancel
Save