Erstellt vor 4 Jahren

Geschlossen vor 4 Jahren

#1562 closed Fehler (fixed)

Fehlender Hinweis im changelog zu gaenderten Rechten Beim Druck

Erstellt von: wulf@… Verantwortlicher: m.bunkus@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.6.2
Schweregrad: Verbesserung Stichworte: Oberfläche
Beobachter: information@…

Beschreibung

Wer nach einem Update mit der Gruppe "Vollzugriff" arbeit hat nicht die neu eingefuehrten "Drucker" Rechte, die diese in der Gruppe Vollzugriff nicht ausgewaehlt sind.

Wenn man die Gruppe Vollzugriff bearbeitet und dort das Haekchen bei "Drucker" setzt ist wieder alles gut.

Da sucht man ein bisschen, da man ja weis, man ist in der Gruppe Vollzugriff. Ein Hinweis im changelog waere sicher sinnvoll.

Änderungshistorie (7)

comment:1 Geändert vor 4 Jahren durch m.bunkus@…

  • Status von new nach assigned geändert

comment:2 Geändert vor 4 Jahren durch m.bunkus@…

  • Lösung auf fixed gesetzt
  • Status von assigned nach closed geändert

In Revision 9796c472 behoben.

comment:3 Geändert vor 4 Jahren durch wulf@…

  • Lösung fixed gelöscht
  • Status von closed nach reopened geändert
  • Version von 2.6.2 beta nach 2.6.2 geändert

Scheint bei neuen Installationen noch nicht zu tun, da solle die Gruppe Vollzugriff schon alle Rechte beinhalten:

http://forum.lx-office.org/index.php?id=11235

comment:4 Geändert vor 4 Jahren durch m.bunkus@…

  • Lösung auf fixed gesetzt
  • Status von reopened nach closed geändert

In Revision 4ad5897 gibt es nun ein Upgrade-Script, dass der Gruppe 'Vollzugriff' dieses Recht gewährt.

comment:5 Geändert vor 4 Jahren durch information@…

  • Lösung fixed gelöscht
  • Status von closed nach reopened, information@richardson-bueren.de geändert

Das ist nicht ganz korrekt, das delete läuft nicht durch, wenn die Gruppe Vollzugriff schon "GRANTED" ist:

lxerp_auth=# DELETE FROM auth.group_rights
lxerp_auth-# WHERE ("right" = 'batch_printing')
lxerp_auth-# AND granted
lxerp_auth-# AND group_id = (
lxerp_auth(# SELECT id
lxerp_auth(# FROM auth."group"
lxerp_auth(# WHERE name = 'Vollzugriff'
lxerp_auth(# );
DELETE 0

Danach wirft das admin.pl einen Fehler beim Anlegen da:

lxerp_auth=# INSERT INTO auth.group_rights (group_id, "right", granted)
lxerp_auth-# SELECT id, 'batch_printing', TRUE
lxerp_auth-# FROM auth."group"
lxerp_auth-# WHERE name = 'Vollzugriff';
ERROR: duplicate key value violates unique constraint "group_rights_pkey"

Da dieser Eintrag mit der ersten Abfrage nicht gelöscht wurde:

1 | batch_printing | f

Reicht es aus das "AND granted" aus dem delete-Statement zu löschen?

lxerp_auth=# DELETE FROM auth.group_rights
WHERE ("right" = 'batch_printing')

AND group_id = (

SELECT id
FROM auth."group"
WHERE name = 'Vollzugriff'

);

DELETE 1

lxerp_auth=# INSERT INTO auth.group_rights (group_id, "right", granted)

SELECT id, 'batch_printing', TRUE
FROM auth."group"
WHERE name = 'Vollzugriff';

INSERT 0 1

Ergebnis:

1 | batch_printing | t

comment:6 Geändert vor 4 Jahren durch m.bunkus@…

Eigentlich hatte ich gehofft, dadurch zu verhindern, dass das Recht für "Vollzugriff" gesetzt wird, wenn der Admin es explizit deaktiviert hat. Hmm. Müsste man über eine PL/PgSQL-Funktion machen können, oder über ein Perl-Script. Habe ich momentan aber keinerlei Lust zu, also lösch bitte einfach das "AND granted", wie du vorgeschlagen hast.

comment:7 Geändert vor 4 Jahren durch information@…

  • Lösung auf fixed gesetzt
  • Status von reopened nach closed geändert

okay
b6abf05

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.