<?php
/* POST /api/auth.php — Login über das zentrale SSO-Modul awlauth.
 * Body: { "login": "...", "password": "..." }
 * Setzt bei Erfolg das domainweite HttpOnly-Cookie awl_sso (gilt für alle AWL-Apps).
 * Response: { "ok": true, "user": { id, login, name, admin } }  — KEIN Token mehr im Body.
 */
require_once __DIR__.'/_inc.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') api_fail('POST erforderlich', 405);

if (!dol_include_once('/awlauth/lib/awlauth.lib.php') || !function_exists('awlauth_login')) {
    api_fail('SSO-Modul (awlauth) nicht verfügbar', 500);
}

$in = api_input();

// Login inkl. Rate-Limit, Passwortprüfung (dol_verifyHash) und Nur-Interne-User-Check
$r = awlauth_login(trim($in['login'] ?? ''), (string) ($in['password'] ?? ''));
if (!$r['success']) api_fail($r['error'], $r['http']);

$u = $r['user'];
if (!$u->hasRight('bericht', 'read')) api_fail('Keine Bericht-Rechte', 403);

awlauth_issue($u); // HttpOnly-Cookie awl_sso setzen

api_ok(array(
    'user' => array(
        'id'    => (int) $u->id,
        'login' => $u->login,
        'name'  => $u->getFullName($langs ?? null),
        'admin' => (bool) ($u->admin ?? false),
    ),
));
