fix: Permission-Format korrigiert nach Stundenzettel-Vorbild
All checks were successful
Deploy bericht / deploy (push) Successful in 1s

Echter Bug: $this->rights[$r][4] muss der perms-Name sein (z.B. 'read'),
NICHT der Modulname. Mit [4]='bericht'/[5]='read' baute Dolibarr den
Pfad $user->rights->bericht->bericht->read — aber hasRight('bericht','read')
prüft $user->rights->bericht->read → false → Tab versteckt.

Korrektes Format wie Stundenzettel:
  [4] = 'read' / 'write' / 'delete' / 'admin'  (perms)
  [5] = ''                                     (subperms, leer)

Außerdem [3]=1 (bydefault) für die Standard-Rechte, damit sie bei
Aktivierung automatisch allen Usern zugewiesen werden.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
[deploy]
This commit is contained in:
Eduard Wisch 2026-04-08 15:49:18 +02:00
parent 05d20d2b72
commit 07a36f447e

View file

@ -89,28 +89,36 @@ class modBericht extends DolibarrModules
$this->boxes = array();
$this->cronjobs = array();
// Rechte
// Rechte — wie Stundenzettel: [4]=perms, [5]=subperms (leer)
$this->rights = array();
$r = 0;
$this->rights[$r][0] = $this->numero . '01';
$this->rights[$r][0] = $this->numero + $r;
$this->rights[$r][1] = 'Berichte lesen';
$this->rights[$r][4] = 'bericht';
$this->rights[$r][5] = 'read';
$this->rights[$r][3] = 1; // Standard aktiviert
$this->rights[$r][4] = 'read';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = $this->numero . '02';
$this->rights[$r][0] = $this->numero + $r;
$this->rights[$r][1] = 'Berichte erstellen und bearbeiten';
$this->rights[$r][4] = 'bericht';
$this->rights[$r][5] = 'write';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'write';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = $this->numero . '03';
$this->rights[$r][0] = $this->numero + $r;
$this->rights[$r][1] = 'Berichte löschen';
$this->rights[$r][4] = 'bericht';
$this->rights[$r][5] = 'delete';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'delete';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = $this->numero . '04';
$this->rights[$r][0] = $this->numero + $r;
$this->rights[$r][1] = 'Modul Bericht administrieren (Templates verwalten)';
$this->rights[$r][4] = 'bericht';
$this->rights[$r][5] = 'admin';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'admin';
$this->rights[$r][5] = '';
$r++;
$this->menu = array();