docs(feature-plan): Change namespace to werkstatt:ausruestung and add initial ACL phase
- Changed namespace from ausruestung:* to werkstatt:ausruestung:*
- Main pages: werkstatt:ausruestung:bereich:maschinenname
- Doku pages: werkstatt:ausruestung:bereich:maschinenname:doku
- Added two-phase ACL approach:
- Phase 1: Only @odoo has access (initial setup/testing)
- werkstatt:ausruestung:* @odoo 8
- werkstatt:ausruestung:* @ALL 0
- Phase 2: Werkstatt gets read/edit access (later rollout)
- Main pages: @werkstatt read-only
- Doku pages: @werkstatt editable
- Updated all code examples with new namespace
- Updated ACL permission table
- Added phased rollout advantage
This commit is contained in:
parent
00f33faebe
commit
5057985024
|
|
@ -169,7 +169,7 @@ Odoo (maintenance.equipment)
|
|||
↓
|
||||
DokuWiki API (wiki.putPage)
|
||||
↓
|
||||
ausruestung:bereich:maschinenname
|
||||
werkstatt:ausruestung:bereich:maschinenname
|
||||
```
|
||||
|
||||
## 5.3 DokuWiki-Seitenstruktur
|
||||
|
|
@ -177,19 +177,20 @@ ausruestung:bereich:maschinenname
|
|||
**Zwei-Seiten-System pro Equipment:**
|
||||
|
||||
```
|
||||
ausruestung:holzwerkstatt:formatkreissaege ← Hauptseite (Odoo generiert)
|
||||
ausruestung:holzwerkstatt:formatkreissaege:doku ← Doku-Seite (User editieren)
|
||||
ausruestung:lasercutter:epilog_fusion_m2 ← Hauptseite
|
||||
ausruestung:lasercutter:epilog_fusion_m2:doku ← Doku-Seite
|
||||
werkstatt:ausruestung:holzwerkstatt:formatkreissaege ← Hauptseite (Odoo generiert)
|
||||
werkstatt:ausruestung:holzwerkstatt:formatkreissaege:doku ← Doku-Seite (User editieren)
|
||||
werkstatt:ausruestung:lasercutter:epilog_fusion_m2 ← Hauptseite
|
||||
werkstatt:ausruestung:lasercutter:epilog_fusion_m2:doku ← Doku-Seite
|
||||
```
|
||||
|
||||
**Namespace-Regeln:**
|
||||
- **Hauptseite**: `ausruestung:bereich:maschinenname`
|
||||
- **Hauptnamespace**: `werkstatt:ausruestung:`
|
||||
- **Hauptseite**: `werkstatt:ausruestung:bereich:maschinenname`
|
||||
- Bereich: ows_area_id (normalisiert, lowercase)
|
||||
- Maschinenname: Equipment name (normalisiert, ohne Sonderzeichen)
|
||||
- **Komplett Odoo-generiert**, User können nicht editieren
|
||||
|
||||
- **Doku-Seite**: `ausruestung:bereich:maschinenname:doku`
|
||||
- **Doku-Seite**: `werkstatt:ausruestung:bereich:maschinenname:doku`
|
||||
- **User editieren hier frei** (Anleitungen, Tipps, Bilder)
|
||||
- Wird via Include in Hauptseite eingebunden
|
||||
- User können weitere Unterseiten anlegen (`:doku:bilder`, `:doku:videos`)
|
||||
|
|
@ -203,7 +204,7 @@ Odoo erstellt die komplette Hauptseite inklusive Include für User-Dokumentation
|
|||
|
||||
===== Grunddaten =====
|
||||
* **Seriennummer:** FKS-2024-001
|
||||
* **Bereich:** [[ausruestung:holzwerkstatt|Holzwerkstatt]]
|
||||
* **Bereich:** [[werkstatt:ausruestung:holzwerkstatt|Holzwerkstatt]]
|
||||
* **Kategorie:** 🔴 Kategorie 3 (Einweisung erforderlich)
|
||||
* **Standort:** Schrank A, Regal 2
|
||||
* **Hersteller:** Bosch
|
||||
|
|
@ -276,7 +277,7 @@ def sync_to_dokuwiki(self):
|
|||
content += f"[[.:{{wiki_id}}:doku|✏️ Dokumentation bearbeiten]]\n"
|
||||
|
||||
# 3. Schreibe Hauptseite (überschreibt komplett)
|
||||
main_page = f"ausruestung:{self.ows_area_id.wiki_name}:{wiki_id}"
|
||||
main_page = f"werkstatt:ausruestung:{self.ows_area_id.wiki_name}:{wiki_id}"
|
||||
dokuwiki_client.putPage(main_page, content, "Odoo Auto-Sync")
|
||||
|
||||
# 4. Erstelle leere Doku-Seite falls nicht vorhanden
|
||||
|
|
@ -291,7 +292,7 @@ def _generate_equipment_page(self):
|
|||
|
||||
===== Grunddaten =====
|
||||
* **Seriennummer:** {self.serial_no or 'N/A'}
|
||||
* **Bereich:** [[ausruestung:{self.ows_area_id.wiki_name}|{self.ows_area_id.name}]]
|
||||
* **Bereich:** [[werkstatt:ausruestung:{self.ows_area_id.wiki_name}|{self.ows_area_id.name}]]
|
||||
* **Kategorie:** {self._get_category_icon()} {self._get_category_label()}
|
||||
* **Standort:** {self.location or 'N/A'}
|
||||
* **Hersteller:** {self.partner_id.name or 'N/A'}
|
||||
|
|
@ -318,32 +319,41 @@ def _generate_equipment_page(self):
|
|||
|
||||
## 5.6 ACL-System (Generisch & Wartungsfrei)
|
||||
|
||||
**DokuWiki ACL-Regeln:**
|
||||
**Phase 1: Nur für Odoo sichtbar (Initial-Setup)**
|
||||
|
||||
```
|
||||
# Komplett gesperrt für alle außer Odoo
|
||||
werkstatt:ausruestung:* @odoo 8 # Voller Zugriff
|
||||
werkstatt:ausruestung:* @ALL 0 # Kein Zugriff
|
||||
```
|
||||
|
||||
**Phase 2: Werkstatt-Betreiber erhalten Zugriff (später)**
|
||||
|
||||
```
|
||||
# User-Doku-Seiten editierbar (spezifischere Regel zuerst!)
|
||||
ausruestung:*:doku @werkstatt 2 # Editieren erlaubt
|
||||
ausruestung:*:doku:* @werkstatt 2 # Auch Unterseiten (Bilder, Videos, etc.)
|
||||
werkstatt:ausruestung:*:doku @werkstatt 2 # Editieren erlaubt
|
||||
werkstatt:ausruestung:*:doku:* @werkstatt 2 # Auch Unterseiten (Bilder, Videos, etc.)
|
||||
|
||||
# Hauptseiten nur lesen
|
||||
ausruestung:* @werkstatt 1 # Nur Lesezugriff
|
||||
ausruestung:* @ALL 1 # Alle können lesen
|
||||
werkstatt:ausruestung:* @werkstatt 1 # Nur Lesezugriff
|
||||
werkstatt:ausruestung:* @ALL 1 # Alle können lesen
|
||||
|
||||
# Odoo hat vollen Zugriff überall
|
||||
ausruestung:* @odoo 8 # Voller Zugriff
|
||||
ausruestung:*:doku @odoo 8 # Auch auf Doku-Seiten (für Initial-Erstellung)
|
||||
```
|
||||
|
||||
**ACL-Level Bedeutung:**
|
||||
- `1` = Lesen
|
||||
- `2` = Bearbeiten
|
||||
- `8` = Upload + Löschen
|
||||
- `16` = Admin (alle Rechte)
|
||||
|
||||
werkstatt:ausruestung:* @odoo 8 # Voller Zugriff
|
||||
werkstatt:ausruestung:*:doku @odoo 8 # Auch auf Doku-Seiten (für Initial-Erstellung)
|
||||
**Wie es funktioniert:**
|
||||
|
||||
| Seite | User @werkstatt | User @odoo | Ergebnis |
|
||||
|-------|-----------------|------------|----------|
|
||||
| `werkstatt:ausruestung:holzwerkstatt:formatkreissaege` | Matched: `werkstatt:ausruestung:*` → 1 | Matched: `werkstatt:ausruestung:*` → 8 | User: Lesen, Odoo: Schreiben |
|
||||
| `werkstatt:ausruestung:holzwerkstatt:formatkreissaege:doku` | Matched: `werkstatt:ausruestung:*:doku` → 2 | Matched: `werkstatt:ausruestung:*:doku` → 8 | User: Editieren, Odoo: Voll |
|
||||
- `16` = Admin (alle Rechte)
|
||||
**Vorteile:**
|
||||
- ✅ **Komplett generisch**: Gilt automatisch für alle Equipment
|
||||
- ✅ **Wartungsfrei**: Kein manuelles ACL-Setup pro Equipment
|
||||
- ✅ **Phasenweise Freischaltung**: Erst Odoo-Only, dann schrittweise für Werkstatt
|
||||
- ✅ **Selbsterklärend**: User sehen sofort wo sie editieren können
|
||||
- ✅ **Skalierbar**: Funktioniert auch für 1000+ Equipment-Seiten
|
||||
| `ausruestung:holzwerkstatt:formatkreissaege` | Matched: `ausruestung:*` → 1 | Matched: `ausruestung:*` → 8 | User: Lesen, Odoo: Schreiben |
|
||||
| `ausruestung:holzwerkstatt:formatkreissaege:doku` | Matched: `ausruestung:*:doku` → 2 | Matched: `ausruestung:*:doku` → 8 | User: Editieren, Odoo: Voll |
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user