Browse Source

adicionados loggings no app rules

pull/2307/head
Cesar Carvalho 7 years ago
parent
commit
c22ffdca0b
  1. 27
      sapl/rules/apps.py

27
sapl/rules/apps.py

@ -1,6 +1,8 @@
from builtins import LookupError from builtins import LookupError
import django import django
import logging
from django.apps import apps from django.apps import apps
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.auth.management import _get_all_permissions from django.contrib.auth.management import _get_all_permissions
@ -28,12 +30,14 @@ def create_proxy_permissions(
using=DEFAULT_DB_ALIAS, **kwargs): using=DEFAULT_DB_ALIAS, **kwargs):
if not app_config.models_module: if not app_config.models_module:
return return
logger = logging.getLogger(__name__)
# print(app_config) # print(app_config)
try: try:
logging.info("- Tentando obter modelo de permissão do app.")
Permission = apps.get_model('auth', 'Permission') Permission = apps.get_model('auth', 'Permission')
except LookupError: except LookupError as e:
logging.error("- " + str(e))
return return
if not router.allow_migrate_model(using, Permission): if not router.allow_migrate_model(using, Permission):
@ -69,9 +73,11 @@ def create_proxy_permissions(
app_label, model = opts.app_label, opts.model_name app_label, model = opts.app_label, opts.model_name
try: try:
logging.info("- Tentando obter db_manager.")
ctype = ContentType.objects.db_manager( ctype = ContentType.objects.db_manager(
using).get_by_natural_key(app_label, model) using).get_by_natural_key(app_label, model)
except: except Exception as e:
logging.error("- " + str(e))
ctype = ContentType.objects.db_manager( ctype = ContentType.objects.db_manager(
using).create(app_label=app_label, model=model) using).create(app_label=app_label, model=model)
else: else:
@ -81,12 +87,14 @@ def create_proxy_permissions(
# FIXME: Retirar try except quando sapl passar a usar django 1.11 # FIXME: Retirar try except quando sapl passar a usar django 1.11
try: try:
logger.info("- _get_all_permissions")
# Função não existe mais em Django 1.11 # Função não existe mais em Django 1.11
# como sapl ainda não foi para Django 1.11 # como sapl ainda não foi para Django 1.11
# esta excessão foi adicionada para caso o # esta excessão foi adicionada para caso o
# Sapl esteja rodando em um projeto 1.11 não ocorra erros # Sapl esteja rodando em um projeto 1.11 não ocorra erros
_all_perms_of_klass = _get_all_permissions(klass._meta, ctype) _all_perms_of_klass = _get_all_permissions(klass._meta, ctype)
except: except Exception as e:
logger.error("- " + str(e))
# Nova função usada em projetos com Django 1.11 e o sapl é uma app # Nova função usada em projetos com Django 1.11 e o sapl é uma app
_all_perms_of_klass = _get_all_permissions(klass._meta) _all_perms_of_klass = _get_all_permissions(klass._meta)
@ -111,6 +119,13 @@ def create_proxy_permissions(
# error when the name is longer than 255 characters # error when the name is longer than 255 characters
for perm in perms: for perm in perms:
if len(perm.name) > permission_name_max_length: if len(perm.name) > permission_name_max_length:
logger.error("- 'The permission name %s of %s.%s "
"is longer than %s characters" % (
perm.name,
perm.content_type.app_label,
perm.content_type.model,
permission_name_max_length,
))
raise exceptions.ValidationError( raise exceptions.ValidationError(
'The permission name %s of %s.%s ' 'The permission name %s of %s.%s '
'is longer than %s characters' % ( 'is longer than %s characters' % (
@ -155,15 +170,17 @@ def get_rules():
def _config_group(self, group_name, rules_list): def _config_group(self, group_name, rules_list):
if not group_name: if not group_name:
return return
logger = logging.getLogger(__name__)
group, created = Group.objects.get_or_create(name=group_name) group, created = Group.objects.get_or_create(name=group_name)
group.permissions.clear() group.permissions.clear()
try: try:
logger.info("- Tentando associar grupos.")
print(' ', group_name) print(' ', group_name)
for model, perms in rules_list: for model, perms in rules_list:
self.associar(group, model, perms) self.associar(group, model, perms)
except Exception as e: except Exception as e:
logger.error("- " + str(e))
print(group_name, e) print(group_name, e)
def groups_add_user(self, user, groups_name): def groups_add_user(self, user, groups_name):

Loading…
Cancel
Save