def lista_permissions_in_decorators(self):
        urls = lista_urls()

        for url_item in urls:
            key, url, var, app_name = url_item
            if hasattr(key, 'view_class'):
                view = key.view_class
            elif hasattr(key, 'cls'):
                view = key.cls
            else:
                view = key

            if not view.__module__.startswith('sapl.'):
                continue

            try:
                decorators = list(
                    map(lambda x: (x, view), get_permission_requireds(view)))
                self.decorators += decorators
            except:
                pass
        return self.decorators
    def lista_permissions_in_decorators(self):
        urls = lista_urls()

        for url_item in urls:
            key, url, var, app_name = url_item
            if hasattr(key, 'view_class'):
                view = key.view_class
            elif hasattr(key, 'cls'):
                view = key.cls
            else:
                view = key

            if not view.__module__.startswith('sapl.'):
                continue

            try:
                decorators = list(map(lambda x: (x, view),
                                      get_permission_requireds(view)
                                      ))
                self.decorators += decorators
            except:
                pass
        return self.decorators
Esempio n. 3
0
            for r in rules:
                content_type = ContentType.objects.get_by_natural_key(
                    app_label=model._meta.app_label,
                    model=model._meta.model_name)

                codename = (r[1:] + model._meta.model_name)\
                    if r[0] == '.' and r[-1] == '_' else r
                p = Permission.objects.filter(content_type=content_type,
                                              codename=codename).exists()

                assert p, _(
                    'Permissão (%s) associada ao model (%s) '
                    'não está em _meta.permissions.') % (codename, model_item)


_lista_urls = lista_urls()


@pytest.mark.django_db(transaction=False)
@pytest.mark.parametrize('url_item', _lista_urls)
def test_permission_required_of_views_exists(url_item):
    """
    testa se, nas views que possuem atributo permission_required,
    as permissões fixas escritas manualmente realmente exitem em Permission

    Obs: isso não testa permissões escritas em anotações de método ou classe
    """

    for app in sapl_appconfs:
        # readequa permissões dos models adicionando
        # list e detail permissions
Esempio n. 4
0
                    app_label=model._meta.app_label,
                    model=model._meta.model_name)

                codename = (r[1:] + model._meta.model_name)\
                    if r[0] == '.' and r[-1] == '_' else r
                p = Permission.objects.filter(
                    content_type=content_type,
                    codename=codename).exists()

                assert p, _('Permissão (%s) associada ao model (%s) '
                            'não está em _meta.permissions.') % (
                    codename,
                    model_item)


_lista_urls = lista_urls()


@pytest.mark.django_db(transaction=False)
@pytest.mark.parametrize('url_item', _lista_urls)
def test_permission_required_of_views_exists(url_item):
    """
    testa se, nas views que possuem atributo permission_required,
    as permissões fixas escritas manualmente realmente exitem em Permission

    Obs: isso não testa permissões escritas em anotações de método ou classe
    """

    for app in cmj_appconfs:
        # readequa permissões dos models adicionando
        # list e detail permissions