diff --git a/README.md b/README.md index 16f9164..b984892 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,31 @@ Built with [Laravel](https://laravel.com) + [Filament](https://filamentphp.com), --- +## Authentifizierung & Rollen + +Die App verwendet **Nextcloud OAuth 2.0** zur Anmeldung. Es gibt kein lokales Passwort-Login. + +### Nextcloud-Setup + +1. In Nextcloud unter *Einstellungen → Sicherheit → OAuth 2.0-Clients* einen neuen Client anlegen +2. Weiterleitungs-URI: `https://sms.spices.blue/auth/nextcloud/callback` +3. Client-ID und Secret als Gitea-Secrets hinterlegen (`OAUTH_CLOUDSPICESBLUE_ID`, `OAUTH_CLOUDSPICESBLUE_SECRETKEY`) +4. Redirect-URI als Gitea-Variable hinterlegen (`OAUTH_CLOUDSPICESBLUE_REDIRECTURI`) + +### Rollen + +Rollen werden bei jeder Anmeldung automatisch aus den Nextcloud-Gruppen übernommen (`syncRoles`): + +| Nextcloud-Gruppe | Rechte | +|---|---| +| `sms-admin` | Alles: Lesen, Erstellen, Bearbeiten, Löschen, Activity Log | +| `sms-manager` | Lesen, Erstellen, Bearbeiten (kein Löschen, kein Activity Log) | +| `sms-viewer` | Nur Lesen (alle Einträge öffnen, keine Schreiboperationen) | + +Benutzer ohne eine dieser Gruppen erhalten einen 403-Fehler. + +--- + ## Lokale Entwicklung **Voraussetzungen:** PHP 8.4, Composer, Node.js, MariaDB @@ -69,6 +94,16 @@ cd ~/app && docker compose exec app php artisan shopify:sync --- +## Rohstofflieferungen + +Rohstofflieferungen werden unter *Waren Ein/Ausgang → Rohstofflieferungen* erfasst. Neue Rohstoffe können direkt beim Anlegen einer Lieferung erstellt werden. + +- Mengeneinheit **Gramm**: Eingabe in kg, Speicherung in Gramm +- Mengeneinheit **Stück**: optionale Angabe des Gesamtgewichts der Lieferung — daraus wird das **Ø Stückgewicht** als gleitender Durchschnitt über alle Lieferungen berechnet und am Rohstoff gespeichert +- Mengeneinheit **Liter**: direkte Eingabe in Litern + +--- + ## Chargen (LOT) & Rohstoff-Abzug Beim Anlegen einer Charge wird der Rohstoffbestand automatisch abgezogen: @@ -307,4 +342,7 @@ Table suppliers { - [x] Continuous Deployment via Gitea Actions + Docker - [x] Frontend (Sidebar, Navigation, Barcode-Preview, Bild-Grid) - [x] LOT-API (JSON, öffentlich, Subdomain api.sms.spices.blue) -- [ ] Dashboard (Füllstände, Lager, Sales-Zeitspanne) +- [x] Nextcloud OAuth 2.0 Login (kein lokales Passwort) +- [x] Rollenbasierte Zugriffskontrolle via Nextcloud-Gruppen (admin / manager / viewer) +- [x] Rohstofflieferungen mit Ø Stückgewicht-Kalibrierung +- [x] Dashboard mit Rohstoff-Lagerbestand-Chart und Sales-Übersicht