O bloqueio é um mecanismo de proteção operacional e comercial do BarberBot. Ele impede acesso quando o usuário não está habilitado (ex.: assinatura vencida, usuário inativo, permissão insuficiente).
📌 Arquivo relacionado
/sistema/bloqueio.php— tela/rotina principal de bloqueio./sistema/acesso.php— costuma redirecionar para o bloqueio quando sessão não atende regras./sistema/painel/e/sistema/painel_cliente/— áreas protegidas.
🚫 Motivos comuns de bloqueio (regras típicas)
- Assinatura vencida: plano expirado / cobrança pendente.
- Status inativo: usuário desativado pelo admin ou por regra interna.
- Permissão insuficiente: grupo sem acesso ao módulo/página.
- Sessão inválida: sessão ausente, expirada ou adulterada.
🧭 Fluxo recomendado (padrão BarberBot)
- Usuário tenta entrar em página protegida.
- Página chama guard
acesso.php(ou checagem equivalente). - Validação verifica:
- sessão logada
- status do usuário
- grupo/permissão
- assinatura/limite
- Falhou em qualquer regra → redireciona para
bloqueio.php.
🛠️ Exemplo de guarda (modelo)
Exemplo de lógica de bloqueio (genérica, para padronização):
// Exemplo (modelo) - centralize em acesso.php
session_start();
if (empty($_SESSION['id_usuario'])) {
header("Location: index.php");
exit;
}
if (!empty($_SESSION['bloqueado']) && $_SESSION['bloqueado'] == 1) {
header("Location: bloqueio.php");
exit;
}
// Exemplo: plano vencido (se sua regra preencher na sessão)
if (!empty($_SESSION['plano_vencido']) && $_SESSION['plano_vencido'] == 1) {
header("Location: bloqueio.php?motivo=plano");
exit;
}
✅ Boas práticas (para ficar “profissional” de verdade)
- Não exponha detalhes sensíveis (ex.: “senha errada” ok, “usuário existe” evita).
- Log interno: registrar motivo real do bloqueio (suporte/auditoria).
- Mensagem amigável no bloqueio e CTA claro (renovar plano / falar com suporte).
- Proteção no backend também (não basta esconder botões no frontend).