import os from django.conf import settings from django.contrib.auth.decorators import user_passes_test from django.shortcuts import render from django.http import HttpResponseForbidden @user_passes_test(lambda u: u.is_staff) def ver_variables_entorno(request): if not settings.DEBUG: return HttpResponseForbidden("Acceso prohibido") # Variables a excluir por motivos de seguridad variables_excluidas = {'SECRET_KEY', 'DATABASES', 'EMAIL_HOST_PASSWORD', 'API_KEY'} # Obtiene todas las variables de entorno entorno = {key: os.getenv(key) for key in os.environ.keys() if key not in variables_excluidas} # Obtiene todas las variables de settings excluyendo las confidenciales configuracion = { key: getattr(settings, key) for key in dir(settings) if key.isupper() and key not in variables_excluidas } # Combina ambas en un solo diccionario contexto = { 'entorno': entorno, 'configuracion': configuracion } return render(request, 'ver_entorno.html', contexto)