diff --git a/api/platform.php b/api/platform.php new file mode 100644 index 0000000..44b205c --- /dev/null +++ b/api/platform.php @@ -0,0 +1 @@ + 'own'`), porque a `auth_attempts` desta app não tem a coluna +// `identifier` que o throttle partilhado exige (tem `ip`+`scope`, do seu +// próprio throttle em functions_throttle.php). Ainda assim liga-se ao +// bloqueio de IP da frota, ao router das páginas de sistema (Backups, +// Actualizações, Auditoria, IP bans, Geo, Origem das visitas, Hub) e ao +// resto do platform-tools, tudo por cima da autenticação própria. +require_once dirname(__DIR__) . '/shared/platform-tools/functions_connector.php'; +platform_connect($pdo, [ + 'auth' => 'own', + 'guard' => 'require_sysadmin', + 'router' => true, + 'conformance' => 'report', // nunca recusa — só reporta no health endpoint + + // A Comunicações desta app já cobre SMTP (config + testes); o Estado SMTP + // partilhado seria um segundo editor da mesma configuração. + 'replaced_tools' => ['smtp_status' => 'views/sysadmin/comms.php'], + 'hide_tools' => ['smtp_status'], + 'sysadmin_tools' => [[ + 'title' => 'Comunicações', + 'description' => 'Configuração SMTP, fila de mensagens e testes de envio.', + 'icon' => 'bi-broadcast', + 'url' => 'views/sysadmin/comms.php', + 'color' => 'info', + ], [ + 'title' => 'Fila de mensagens', + 'description' => 'O que saiu, o que falhou e porquê.', + 'icon' => 'bi-envelope-paper', + 'url' => 'views/sysadmin/messages.php', + 'color' => 'secondary', + ]], +]); diff --git a/includes/header.php b/includes/header.php index 1558925..2c9e462 100644 --- a/includes/header.php +++ b/includes/header.php @@ -194,24 +194,36 @@ $app_name = defined('APP_NAME') ? APP_NAME : 'FitMe 3070'; href="">Definições + + + diff --git a/platform.php b/platform.php new file mode 100644 index 0000000..eaf5dc8 --- /dev/null +++ b/platform.php @@ -0,0 +1 @@ +