# SafeTemp Login - Temporary Access with Approval

WordPress Plugin for creating temporary users with approval workflow for sensitive actions.

## Descrição

SafeTemp Login permite criar usuários temporários com qualquer role. Quando um usuário temporário é administrador, ações sensíveis são interceptadas e requerem aprovação de um administrador real via painel ou link seguro por e-mail.

## Funcionalidades

- ✅ Criação de usuários temporários com qualquer role
- ✅ Expiração automática configurável (bloquear login ou deletar usuário)
- ✅ Interceptação de ações sensíveis para admins temporários
- ✅ Sistema de aprovação via painel administrativo ou links seguros por e-mail
- ✅ Notificações por e-mail para administradores
- ✅ Lista configurável de ações restritas
- ✅ Modo "log only" para testes
- ✅ Tokens seguros de uso único
- ✅ Suporte a múltiplos idiomas (EN e PT-BR)

## Instalação

1. Faça upload dos arquivos do plugin para `/wp-content/plugins/safetemp-login`
2. Ative o plugin em "Plugins" no WordPress
3. Configure em "Tools → SafeTemp Login"
4. Crie usuários temporários em "Tools → Create Temp User"

## Como Usar

### Criar Usuário Temporário

1. Vá para **Tools → Create Temp User**
2. Preencha:
   - Username (ou use email como username)
   - Email (obrigatório)
   - Role (subscriber, editor, administrator, etc.)
   - Data de expiração
   - Notas internas (opcional)
3. Marque "Send Email" se quiser enviar credenciais por e-mail
4. Clique em "Create Temporary User"
5. Copie as credenciais geradas

### Ações Interceptadas (Configuráveis)

Quando um admin temporário tenta:
- Deletar posts
- Editar/publicar posts
- Trocar tema
- Instalar plugins
- Ativar plugins
- Desativar plugins
- Deletar usuários
- Atualizar configurações do core

A ação é bloqueada e um pedido é criado. Administradores reais recebem email com links para aprovar ou negar.

### Configurações

**Tools → SafeTemp Login → Settings**

- **Restricted Actions**: Ações que requerem aprovação
- **Notification Emails**: Lista de emails ou deixe vazio para notificar todos admins
- **Expiration Behavior**: Bloquear login (padrão) ou deletar usuário
- **Notify Actor on Result**: Enviar email para ator quando ação for aprovada/negada
- **Blocked Action Message**: Mensagem mostrada ao usuário quando ação é bloqueada
- **Log Only Mode**: Apenas registrar sem bloquear (para testes)
- **Expired Requests Days**: Dias antes de marcar pedidos como negados (expirou)
- **Remove Data on Uninstall**: Remover todos os dados ao desinstalar

### Aprovação de Ações

#### Via Email

Quando uma ação sensível é solicitada, administradores recebem email com:
- Resumo da ação
- Botões "Approve" e "Deny" (links de uso único)

#### Via Dashboard

Ver todas as requisições em **Tools → SafeTemp Login → Action Requests**

Lista mostra:
- Status (pending, approved, denied, executed, failed)
- Ação solicitada
- Ator (quem fez a requisição)
- Data/hora
- Payload (dados completos)

## Segurança

- Nonces em todas as ações
- Tokens de uso único (expiram em 30 minutos)
- Verificação de capabilities
- Logout automático na expiração
- Sanitização e escaping em todos os inputs/outputs

## Compatibilidade

- WordPress: 6.0+
- PHP: 7.4, 8.0, 8.1, 8.2, 8.3
- Multisite: Compatível

## Licença

GPL-2.0-or-later

## Desenvolvedor

[Cyfer](https://cyfer.com.br)

## Suporte

Para suporte, visite: https://cyfer.com.br
Código fonte: https://github.com/cyfer/safetemp-login

Se você acha útil este plugin, considere fazer uma doação para apoiar o desenvolvimento contínuo.

## Testes

Para testar o plugin:

1. Crie um usuário temporário como administrator
2. Faça login com esse usuário
3. Tente deletar um post ou trocar o tema
4. Verifique se a ação foi bloqueada
5. Como admin real, vá em "Tools → SafeTemp Login → Action Requests"
6. Aprove a requisição
7. Verifique se a ação foi executada

## Desinstalação

O plugin não remove dados por padrão. Se quiser que todos os dados sejam removidos, marque a opção "Remove Data on Uninstall" em Settings antes de desinstalar.

## Changelog

### 1.0.0
- Versão inicial
- Criação de usuários temporários
- Interceptação e aprovação de ações sensíveis
- Notificações por email com links seguros
- Lista de ações restritas configurável
- Expiração automática
- Modo log only para testes
- Suporte para Inglês e Português

