Files
kaffeekasse-saas/env.local.example.php
T
clemensandClaude Opus 4.8 3e24910831 Legacy-Abbau Schritt 2: Legacy-Authentifizierung entfernt
Die Zugriffspruefung lief bisher in 19 Dateien auf einen Fallback gegen die
Legacy-Tabelle kl_Mitarbeiter (checkKaffeelisteAdmin/-Access). Der Zugang
haengt jetzt ausschliesslich an der SaaS-Anmeldung.

- Fallback-Bloecke in allen 19 Dateien entfernt, ebenso getUserName/getUserId
- functions.php besteht nur noch aus der SaaS-Anmeldung; die per String
  zusammengebaute Abfrage "WHERE Email like '<eingabe>'" ist damit weg
- config.php baut keine sqlsrv-Verbindung mehr auf, der Kompatibilitaetslayer
  lib/sqlsrv_mysql_compat.php ist verwaist und entfaellt
- Auto-Login per DEV_AUTH_EMAIL gibt es nicht mehr: er meldete jeden Besucher
  an und machte damit den Login-Schutz unpruefbar. Angemeldet wird auch lokal
  ueber login.php; die Variable dient nur noch scripts/init-mysql-dev.php

http-smoke war an die Golden-Master-Daten des Default-Mandanten gebunden und
hatte deshalb sechs dauerhaft rote Pruefungen. Der Test legt sich jetzt einen
eigenen Mandanten mit bekannten Salden an, meldet sich per HTTP an und raeumt
danach auf. Geschuetzte Seiten werden nicht mehr ueber das Wort "Login" im
Text geprueft, sondern ueber die tatsaechliche 302-Umleitung.

  http-smoke        27 PASS / 6 FAIL  ->  33 PASS / 0 FAIL
  role-matrix       55 PASS / 0 FAIL  ->  unveraendert
  tenant-isolation   9 PASS / 1 FAIL  ->  11 PASS / 1 FAIL (Altfehler)

Ausserdem "keine Zugang" -> "keinen Zugang" in zwei Fehlermeldungen; der
Rollentest erkannte die Ablehnung an genau diesem Tippfehler und wurde
mitgezogen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 21:10:09 +02:00

64 lines
2.4 KiB
PHP

<?php
/**
* Vorlage fuer die Produktionskonfiguration auf echtem Webhosting.
*
* Kopieren nach `env.local.php` (ohne ".example") direkt auf dem Webspace
* per SFTP - NICHT einchecken, die Datei enthaelt echte Zugangsdaten.
* `env.local.php` steht in .gitignore.
*
* Wird automatisch von app/bootstrap.php geladen, sobald die Datei
* existiert (lokal beim Dev-Server ueblicherweise nicht vorhanden -
* dort kommen die Werte weiterhin aus `source .env.local`).
*/
putenv('APP_ENV=prod');
// Eigene App-Domain. Nur Traffic mit genau diesem Host-Header bekommt das
// Dashboard/Login/etc.; jeder andere Host (z. B. kaffeeliste.de) zeigt
// stattdessen die Landingpage. Siehe index.php.
putenv('APP_HOST=app.kaffeeliste.de');
putenv('APP_DB_DRIVER=mysql');
putenv('DB_HOST=');
putenv('DB_PORT=3306');
putenv('DB_NAME=');
putenv('DB_USER=');
putenv('DB_PASS=');
// Muss ausserhalb des oeffentlichen Webroots oder zumindest per .htaccess
// gesperrt sein - siehe Deployment-Hinweise.
putenv('APP_SESSION_PATH=' . __DIR__ . '/var/sessions');
putenv('APP_MAIL_TRANSPORT=mail');
putenv('APP_MAIL_FROM=noreply@kaffeeliste.de');
putenv('APP_MAIL_FROM_NAME=Kaffeeliste');
putenv('STRIPE_SECRET_KEY=');
putenv('STRIPE_PUBLISHABLE_KEY=');
putenv('STRIPE_WEBHOOK_SECRET=');
putenv('DOLIBARR_URL=https://verwaltung.ctb-it.de');
putenv('DOLIBARR_API_KEY=');
// Automatische Verbuchung weitergeleiteter PayPal-Zahlungsmails.
// PAYPAL_INBOX_BASE ist die zentrale Sammeladresse; jeder Mandant bekommt
// daraus per Plus-Adressierung eine eigene Variante (zahlungen+<token>@...),
// die im Backend unter "PayPal-Zahlungen" angezeigt wird. Das Postfach muss
// Plus-Adressierung an dieselbe Mailbox zustellen (Catch-All).
// Die Zugangsdaten sind bewusst Server-/Betreiber-Einstellungen und NICHT
// pro Mandant konfigurierbar. Abruf per Cron:
// php scripts/fetch-paypal-payments.php
putenv('PAYPAL_INBOX_BASE=zahlungen@kaffeeliste.de');
putenv('PAYPAL_IMAP_HOST=');
putenv('PAYPAL_IMAP_PORT=993');
putenv('PAYPAL_IMAP_FLAGS=/imap/ssl');
putenv('PAYPAL_IMAP_USER=');
putenv('PAYPAL_IMAP_PASS=');
putenv('PAYPAL_IMAP_MAILBOX=INBOX');
// Hinweis: Den frueheren Login-Bypass ueber DEV_AUTH_EMAIL gibt es nicht mehr -
// die Anmeldung laeuft immer ueber login.php, auch lokal. Die Variable wird nur
// noch von scripts/init-mysql-dev.php gelesen, um beim Aufsetzen einer
// Entwicklungsdatenbank den ersten Benutzer anzulegen.