from flask import g, request from flask_login import current_user def permission_context_processor(): """Context processor simples que disponibiliza informações básicas do usuário""" context = { 'user_can': lambda permission: True, # Sempre True - controle é no nível de dados 'user_has_role': lambda role: True, # Sempre True - controle é no nível de dados 'is_admin': False, 'current_user_data': None } if current_user.is_authenticated: context.update({ 'is_admin': getattr(current_user, 'is_admin', False), 'current_user_data': current_user }) return context def safe_render_helper(): """Helper que fornece dados seguros para templates""" return { 'safe_data': lambda data, default=None: data if data is not None else (default or []) } def init_template_filters(app): """Inicializa filtros de template personalizados""" @app.template_filter('safe_list') def safe_list_filter(value): """Garante que o valor seja sempre uma lista""" if value is None: return [] if isinstance(value, list): return value return [value] @app.template_filter('safe_dict') def safe_dict_filter(value): """Garante que o valor seja sempre um dicionário""" if value is None: return {} if isinstance(value, dict): return value return {} @app.template_filter('safe_str') def safe_str_filter(value): """Garante que o valor seja sempre uma string""" if value is None: return "" return str(value)