Erstellt vor 13 Monaten
Geschlossen vor 13 Monaten
#2451 closed Fehler (fixed)
Lager->Einlagern (mit Part-Picker) prüft auf falsches Recht
| Erstellt von: | bibi@… | Verantwortlicher: | bibi@… |
|---|---|---|---|
| Priorität: | normal | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 3.0.0 unstable |
| Schweregrad: | normal | Stichworte: | |
| Beobachter: |
Beschreibung
Zum Einlagern über Lager->Einlagern reicht das Recht "Lagerverwaltung/Bestandsveränderung" ("warehouse_management") nicht aus, sondern für den Part-Picker wird noch "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" ("Create and edit parts, services, assemblies") benötigt.
Zudem zeigt der Part-Picker auch die Preise an. Das sollte evtl. nicht sein, wenn "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" oder "Details und Berichte von Waren, Dienstleistungen und Erzeugnissen anzeigen" nicht an ist.
Änderungshistorie (4)
comment:1 Geändert vor 13 Monaten durch bibi@…
comment:2 Geändert vor 13 Monaten durch bibi@…
- Lösung auf fixed gesetzt
- Status von new nach closed geändert
- Verantwortlicher auf bibi@… gesetzt
comment:3 Geändert vor 13 Monaten durch m.bunkus@…
- Lösung fixed gelöscht
- Status von closed nach reopened geändert
Sorry, aber der Change ist nicht sonderlich gut durchdacht. Er führt dazu, dass das Recht für alle Aktionen benötigt wird, die in diesem Controller momentan vorhanden sind oder später mal eingeführt werden. Das ist schlichtweg falsch.
__PACKAGE__->run_before() sollte eigentlich gar nicht genutzt werden, oder für alles bis auf den Part-Picker-AJAX-Response. Das hat Sven ursprünglich schon falsch gemacht. Warum? Weil die Auswahl von Artikeln bisher z.B. nicht erfordert, dass man das Recht zum Bearbeiten derselben hat! Denkt nur an die Einkaufs-/Verkaufsbelegmasken.
Zum Anderen ist es definitiv falsch, dann auch noch immer das Lagerrecht zu verlangen.
Der richtige Fix würde lauten:
Die Prüfung auf part_service_assembly_edit in run_before für alle Methoden durchführen, die eben nicht dem Partpicker zuzuschreiben sind. Das geht auch schon problemlos, indem man run_before den Parameter exclude => [ qw(ajax_autocomplete part_picker_search part_picker_result) ] mitgibt. Siehe Doku in SL::Controller::Base.
Damit sind die vom Partpicker benötigten Funktionen komplett frei von Rechteprüfung, was aber in meinen Augen OK ist. Falls diese doch bestimmte Rechte benötigen (falls man mal z.B. part_readonly oder so einführt), dann kann man problemlos einen zweiten run_before(…, only => [ qw(ajax_autocomplete…) ]) einbauen.
Momentan ist es schlichtweg eine Ebene schlechter als vorher geworden; sorry :) Daher öffne ich das Ticket wieder.
comment:4 Geändert vor 13 Monaten durch bibi@…
- Lösung auf fixed gesetzt
- Status von reopened nach closed geändert

Ich füge mal das Recht 'warehosue_management' zu SL::Controller::Parts hinzu und schließe dieses Ticket. Für die Preise machen ich einen Verbesserungswunsch auf.