feat: adicionar log no status das paginas para entender o que está acontecendo.
All checks were successful
BCards Deployment Pipeline / Run Tests (push) Successful in 1s
BCards Deployment Pipeline / PR Validation (push) Has been skipped
BCards Deployment Pipeline / Build and Push Image (push) Successful in 8m0s
BCards Deployment Pipeline / Deploy to Production (ARM - OCI) (push) Successful in 2m21s
BCards Deployment Pipeline / Deploy to Staging (x86 - Local) (push) Has been skipped
BCards Deployment Pipeline / Cleanup Old Resources (push) Has been skipped
BCards Deployment Pipeline / Deployment Summary (push) Successful in 0s

This commit is contained in:
Ricardo Carneiro 2025-09-12 15:16:12 -03:00
parent 9406997316
commit f28dc8daa8
4 changed files with 21 additions and 13 deletions

View File

@ -995,10 +995,14 @@ public class AdminController : Controller
if (user == null)
return Json(new { success = false, message = "Usuário não autenticado" });
_logger.LogInformation($"Generating preview token for page {id} by user {user.Id}");
var pageItem = await _userPageService.GetPageByIdAsync(id);
if (pageItem == null || pageItem.UserId != user.Id)
return Json(new { success = false, message = "Página não encontrada" });
_logger.LogInformation($"Generating preview token for page {id} preview token {pageItem.PreviewToken} by user {user.Id}");
// Verificar se página pode ter preview
if (pageItem.Status != ViewModels.PageStatus.Creating &&
pageItem.Status != ViewModels.PageStatus.PendingModeration &&
@ -1012,7 +1016,7 @@ public class AdminController : Controller
// Gerar novo token com 4 horas de validade
var newToken = await _moderationService.GeneratePreviewTokenAsync(pageItem.Id);
_logger.LogInformation($"Preview token generated for page {pageItem.Id} by user {user.Id}");
_logger.LogInformation($"Generating preview token for page {id} preview token {pageItem.PreviewToken} by user {user.Id}");
return Json(new {
success = true,

View File

@ -45,6 +45,9 @@ public class UserPageController : Controller
var isPreview = HttpContext.Items.ContainsKey("IsPreview") && (bool)HttpContext.Items["IsPreview"];
var previewToken = Request.Query["preview"].FirstOrDefault();
_logger.LogDebug("Request - Page: {Slug}, Status: {Status}, IsPreview: {IsPreview}, PreviewToken: {PreviewToken}, UserId: {UserId}",
userPage.Slug, userPage.Status, isPreview, !string.IsNullOrEmpty(previewToken), userPage.UserId);
if (!string.IsNullOrEmpty(previewToken))
{
// Handle preview request

View File

@ -34,6 +34,8 @@ public class PageStatusMiddleware
if (page != null)
{
var userId = page.UserId;
switch (page.Status)
{
case PageStatus.Expired:
@ -61,11 +63,11 @@ public class PageStatusMiddleware
// Páginas em desenvolvimento/moderação requerem preview token
var previewToken = context.Request.Query["preview"].FirstOrDefault();
_logger.LogInformation($"Page {category}/{slug} (Status: {page.Status}) - Token provided: {!string.IsNullOrEmpty(previewToken)}, Page token: {!string.IsNullOrEmpty(page.PreviewToken)}, Expiry: {page.PreviewTokenExpiry}");
_logger.LogInformation($"User id: {userId} - Page {category}/{slug} (Status: {page.Status}) - Token provided: {!string.IsNullOrEmpty(previewToken)}, Page token: {!string.IsNullOrEmpty(page.PreviewToken)}, Expiry: {page.PreviewTokenExpiry}");
if (string.IsNullOrEmpty(previewToken))
{
_logger.LogInformation($"Page {category}/{slug} requires preview token - no token provided");
_logger.LogInformation($"User id: {userId} - Page {category}/{slug} requires preview token - no token provided");
context.Response.StatusCode = 404;
await context.Response.WriteAsync("Página em desenvolvimento. Acesso restrito.");
return;
@ -73,7 +75,7 @@ public class PageStatusMiddleware
if (string.IsNullOrEmpty(page.PreviewToken))
{
_logger.LogWarning($"Page {category}/{slug} has no preview token set in database");
_logger.LogWarning($"User id: {userId} - Page {category}/{slug} has no preview token set in database");
context.Response.StatusCode = 404;
await context.Response.WriteAsync("Página em desenvolvimento. Acesso restrito.");
return;
@ -81,7 +83,7 @@ public class PageStatusMiddleware
if (previewToken != page.PreviewToken)
{
_logger.LogInformation($"Page {category}/{slug} preview token mismatch - provided: {previewToken}, expected: {page.PreviewToken}");
_logger.LogInformation($"User id: {userId} - Page {category}/{slug} preview token mismatch - provided: {previewToken}, expected: {page.PreviewToken}");
context.Response.StatusCode = 404;
await context.Response.WriteAsync("Página em desenvolvimento. Acesso restrito.");
return;
@ -89,13 +91,13 @@ public class PageStatusMiddleware
if (page.PreviewTokenExpiry < DateTime.UtcNow)
{
_logger.LogInformation($"Page {category}/{slug} preview token expired at {page.PreviewTokenExpiry} (now: {DateTime.UtcNow})");
_logger.LogInformation($"User id: {userId} - Page {category}/{slug} preview token expired at {page.PreviewTokenExpiry} (now: {DateTime.UtcNow})");
context.Response.StatusCode = 404;
await context.Response.WriteAsync("Token de preview expirado. Gere um novo token no painel.");
return;
}
_logger.LogInformation($"Page {category}/{slug} preview token validated successfully");
_logger.LogInformation($"User id: {userId} - Page {category}/{slug} preview token validated successfully");
break;
case PageStatus.Active:
@ -104,7 +106,7 @@ public class PageStatusMiddleware
default:
// Status desconhecido - tratar como inativo
_logger.LogWarning($"Unknown page status: {page.Status} for page {category}/{slug}");
_logger.LogWarning($"User id: {userId} - Unknown page status: {page.Status} for page {category}/{slug}");
context.Response.StatusCode = 404;
await context.Response.WriteAsync("Página temporariamente indisponível.");
return;

View File

@ -432,7 +432,6 @@
return container;
}
// 🔥 OTIMIZAÇÃO: Sistema de KeepAlive para evitar timeout de sessão
(function() {
let inactivityTimer;
const inactivityTimeout = 5 * 60 * 1000; // 5 minutos