diff --git a/sapl/materia/migrations/0012_auto_20170829_1321.py b/sapl/materia/migrations/0012_auto_20170829_1321.py new file mode 100644 index 000000000..69e1b1c22 --- /dev/null +++ b/sapl/materia/migrations/0012_auto_20170829_1321.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.3 on 2017-08-29 13:21 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('materia', '0011_auto_20170808_1034'), + ] + + operations = [ + migrations.AlterModelOptions( + name='materialegislativa', + options={'permissions': (('can_access_impressos', 'Can access impressos'),), 'verbose_name': 'Matéria Legislativa', 'verbose_name_plural': 'Matérias Legislativas'}, + ), + ] diff --git a/sapl/materia/models.py b/sapl/materia/models.py index cd44363b4..9c95e1c44 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -234,6 +234,8 @@ class MateriaLegislativa(models.Model): verbose_name_plural = _('Matérias Legislativas') unique_together = (("tipo", "numero", "ano"),) + permissions = (("can_access_impressos", "Can access impressos"),) + def __str__(self): return _('%(tipo)s nº %(numero)s de %(ano)s') % { 'tipo': self.tipo, 'numero': self.numero, 'ano': self.ano} diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 0a0650fdb..2d11ecf67 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1747,9 +1747,9 @@ class TramitacaoEmLoteView(PrimeiraTramitacaoEmLoteView): return context -class ImpressosView(TemplateView): +class ImpressosView(PermissionRequiredMixin, TemplateView): template_name = 'materia/impressos/impressos.html' - + permission_required = ('materia.can_access_impressos', ) def gerar_pdf_impressos(request, context): template = loader.get_template('materia/impressos/pdf.html') @@ -1763,9 +1763,10 @@ def gerar_pdf_impressos(request, context): return response -class EtiquetaPesquisaView(FormView): +class EtiquetaPesquisaView(PermissionRequiredMixin, FormView): form_class = EtiquetaPesquisaForm template_name = 'materia/impressos/etiqueta.html' + permission_required = ('materia.can_access_impressos', ) def form_valid(self, form): context = {} diff --git a/sapl/rules/map_rules.py b/sapl/rules/map_rules.py index 34d7372f6..6702a1f27 100644 --- a/sapl/rules/map_rules.py +++ b/sapl/rules/map_rules.py @@ -53,6 +53,7 @@ __listdetailchange__ = [RP_LIST, RP_DETAIL, RP_CHANGE] rules_group_administrativo = { 'group': SAPL_GROUP_ADMINISTRATIVO, 'rules': [ + (materia.MateriaLegislativa, ['can_access_impressos']), (protocoloadm.DocumentoAdministrativo, __base__), (protocoloadm.DocumentoAcessorioAdministrativo, __base__), (protocoloadm.TramitacaoAdministrativo, __base__), @@ -69,6 +70,7 @@ rules_group_protocolo = { (protocoloadm.DocumentoAcessorioAdministrativo, __listdetailchange__), (materia.MateriaLegislativa, __listdetailchange__), + (materia.MateriaLegislativa, ['can_access_impressos']), (materia.DocumentoAcessorio, __listdetailchange__), (materia.Anexada, __base__), (materia.Autoria, __base__), @@ -98,7 +100,7 @@ rules_group_materia = { (materia.DespachoInicial, __base__), (materia.DocumentoAcessorio, __base__), - (materia.MateriaLegislativa, __base__), + (materia.MateriaLegislativa, __base__ + ['can_access_impressos']), (materia.Numeracao, __base__), (materia.Tramitacao, __base__), (norma.LegislacaoCitada, __base__), @@ -209,6 +211,7 @@ rules_group_geral = { (materia.AssuntoMateria, __base__), # não há implementação (materia.MateriaAssunto, __base__), # não há implementação + (materia.MateriaLegislativa, ['can_access_impressos']), (materia.TipoProposicao, __base__), (materia.TipoMateriaLegislativa, __base__), (materia.RegimeTramitacao, __base__), diff --git a/sapl/templates/navbar.yaml b/sapl/templates/navbar.yaml index 9c5242723..ec511a260 100644 --- a/sapl/templates/navbar.yaml +++ b/sapl/templates/navbar.yaml @@ -33,6 +33,9 @@ - title: {% trans 'Acessório em Lote' %} url: sapl.materia:acessorio_em_lote check_permission: materia.list_documentoacessorio {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%} + - title: {% trans 'Impressos' %} + url: sapl.materia:impressos + check_permission: materia.can_access_impressos {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%} - title: {% trans 'Matérias Legislativas' %} url: sapl.materia:pesquisar_materia - title: {% trans 'Pautas das Sessões' %}