API Admin & Utenti

Permessi Richiesti

Tutti gli endpoint in questa pagina richiedono privilegi amministrativi, solitamente gestiti tramite l’autorizzazione JWT del Service Role Key o permessi specifici in Supabase.

Gestione Operatori

POST /api/operators

Crea un nuovo operatore nel sistema auth di Supabase.

  • Body:
{
  "email": "nuovo@carrubo.it",
  "password": "PasswordSicura123!",
  "name": "Luigi",
  "surname": "Verdi"
}
  • Risposta: Oggetto User di Supabase Auth.

GET /api/operators

Restituisce la lista di tutti gli operatori (filtrando gli utenti di tipo admin/operator).

  • Risposta: Array di oggetti utente.

POST /api/operators/pfp

Imposta l’immagine del profilo per un operatore.

  • Form-Data: file (l’immagine) e userId.

Accesso ed Email

GET /api/users

Estrae tutti gli utenti registrati con i relativi metadati custom.

  • Risposta (200 OK):
[
  {
    "id": "uuid",
    "email": "mario@example.com",
    "user_metadata": { "name": "Mario" },
    "created_at": "2024-01-01T00:00:00Z"
  }
]

POST /api/send-email

Invia un’email transazionale tramite l’SMTP configurato in .env.

  • Body:
{
  "recipients": ["mario@example.com"],
  "subject": "Benvenuto a Il Carrubo",
  "body": "<h1>Ciao!</h1><p>Ti aspettiamo.</p>"
}

Sicurezza e Sessioni

POST /api/admin/grant-cookie

Rilascia un cookie HttpOnly che sblocca l’accesso alla rotta protetta /ad/* (Admin Dashboard).

  • Header Risposta: Set-Cookie: il_carrubo_admin_access=granted; Path=/ad/

GET /api/sessions

Elenca tutte le sessioni attive correnti per l’utente loggato (Multi-device).

  • Risposta: Array di sessioni.

POST /api/sessions/revoke-all

Invalida forzatamente tutte le sessioni attive dell’utente in ogni dispositivo (Global Logout).

POST /api/auth/unlink

Scollega un provider OAuth (es. Google, GitHub) dall’account dell’utente corrente.

  • Body: { "provider": "google" }