From df8c5192f46185dea49004bca1583270c3b60dd9 Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Tue, 30 Aug 2016 17:56:58 -0300 Subject: [PATCH] Fix #538 --- sapl/utils.py | 106 +++++++++++++------------------------------------- 1 file changed, 27 insertions(+), 79 deletions(-) diff --git a/sapl/utils.py b/sapl/utils.py index 34aa2ce8c..786406794 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -222,98 +222,58 @@ def intervalos_tem_intersecao(a_inicio, a_fim, b_inicio, b_fim): return maior_inicio <= menor_fim -def permissoes_materia(): +def permissoes(nome_grupo, app_label): lista_permissoes = [] try: - cts = ContentType.objects.filter(app_label='materia') - perms_materia = list(Permission.objects.filter(content_type__in=cts)) - for p in perms_materia: - lista_permissoes.append('materia.' + p.codename) + perms = list(Permission.objects.filter( + group__name=nome_grupo)) + for p in perms: + lista_permissoes.append('%s.%s' % (app_label, p.codename)) except: pass return set(lista_permissoes) -def permissoes_comissoes(): - lista_permissoes = [] - try: - cts = ContentType.objects.filter(app_label='comissoes') - perms_comissoes = list(Permission.objects.filter(content_type__in=cts)) - for p in perms_comissoes: - lista_permissoes.append('comissoes.' + p.codename) - except: - pass - return set(lista_permissoes) +def permissoes_materia(): + return permissoes('Operador de Matéria', 'materia') -def permissoes_norma(): - lista_permissoes = [] - try: - cts = ContentType.objects.filter(app_label='norma') - perms_norma = list(Permission.objects.filter(content_type__in=cts)) - for p in perms_norma: - lista_permissoes.append('norma.' + p.codename) - except: - pass - return set(lista_permissoes) +def permissoes_comissoes(): + return permissoes('Operador de Comissões', 'comissoes') -def permissoes_parlamentares(): - lista_permissoes = [] - try: - cts = ContentType.objects.filter(app_label='parlamentares') - perms_parlamentares = list(Permission.objects.filter( - content_type__in=cts)) - for p in perms_parlamentares: - lista_permissoes.append('parlamentares.' + p.codename) - except: - pass - return set(lista_permissoes) +def permissoes_norma(): + return permissoes('Operador de Norma Jurídica', 'norma') def permissoes_protocoloadm(): - lista_permissoes = [] - try: - perms_protocolo = Permission.objects.filter( - group__name='Operador de Protocolo Administrativo') - for p in perms_protocolo: - lista_permissoes.append('protocoloadm.' + p.codename) - except: - pass - return set(lista_permissoes) + return permissoes('Operador de Protocolo Administrativo', 'protocoloadm') def permissoes_adm(): - lista_permissoes = [] - try: - perms_adm = Permission.objects.filter( - group__name='Operador Administrativo') - for p in perms_adm: - lista_permissoes.append('protocoloadm.' + p.codename) - except: - pass - return set(lista_permissoes) + return permissoes('Operador Administrativo', 'protocoloadm') def permissoes_sessao(): - lista_permissoes = [] - try: - perms_sessao = list(Permission.objects.filter( - group__name='Operador de Sessão Plenária')) - for p in perms_sessao: - lista_permissoes.append('sessao.' + p.codename) - except: - pass - return set(lista_permissoes) + return permissoes('Operador de Sessão Plenária', 'sessao') def permissoes_painel(): + return permissoes('Operador de Painel Eletrônico', 'sessao') + + +def permissoes_autor(): + return permissoes('Autor', 'materia') + + +def permissoes_parlamentares(): lista_permissoes = [] try: - perms_painel = list(Permission.objects.filter( - group__name='Operador de Painel Eletrônico')) - for p in perms_painel: - lista_permissoes.append('painel.' + p.codename) + cts = ContentType.objects.filter(app_label='parlamentares') + perms_parlamentares = list(Permission.objects.filter( + content_type__in=cts)) + for p in perms_parlamentares: + lista_permissoes.append('parlamentares.' + p.codename) except: pass return set(lista_permissoes) @@ -327,18 +287,6 @@ def permissao_tb_aux(self): return False -def permissoes_autor(): - lista_permissoes = [] - try: - perms_autor = list(Permission.objects.filter( - group__name='Autor')) - for p in perms_autor: - lista_permissoes.append('materia.' + p.codename) - except: - pass - return set(lista_permissoes) - - def gerar_hash_arquivo(arquivo, pk, block_size=2**20): md5 = hashlib.md5() arq = open(arquivo, 'rb')