Archive::Zip: kein Fix für aktuelle Versionen mehr nötig
Der Fix ist bei 1.40 bereits in offiziellen Releasesenthalten. Deutlich neuere Versionen enthalten sogar Änderungen, beidenen unser Fix das Modul kaputt macht.
Also… Archive::Zip ≥ 1.40 voraussetzen und unseren eigenen Fix wegwerfen.
Unterstützung für JSON-encodierte POST-Daten
Mit diesem Patch werden nun alle POST-Daten in $::request->post_datagespeichert. Wie bisher auch werden Daten mit Content-Type»multipart/form-data« zusätzlich in $::form gespeichert.
Will man aber JSON-encodierte Daten hochladen, so werden die...
Login: blacklisting bei Callback für Redirect zum Ziel implementiert
Login: Callback nur bauen bei GET-Request und wenn action vorhanden
Login: Callback setzen und berücksichtigen, wenn abgemeldet
Wenn ein Ziel innerhalb des Programms aufgerufen wird (z.B. aus einemLink, den man zugschickt bekommt) und man nicht eingeloggt ist, sowird man zu dem Ziel weitergeleitet, nachdem man sich eingeloggt hat.
Auth: fehlerhafte JSON-Requests mit JSON und richtigem HTTP-Response-Code beantworten
memory_usage_is_too_high von Dispatcher nach System::Process verschoben
(cherry picked from commit c0e3364a21b2da1c61564ddb8d9afa5ab6489f9c)
LC_CTYPE-Locale auf eine UTF-8-Locale setzen
Beim Starten des Perl-Interpreters wird die Locale anhand vonUmgebungsvariablen wie `LC_CTYPE`, `LC_ALL` und `LANG`gesetzt. Unter (F)CGI sind diese normalerweise leer, wodurch alsLocale die POSIX-Locale (`C`) gewählt wird — und die hat nur ASCII als...
Dispatcher: Reset von myconfig war fehlerhaft
Startup: Include-Pfade mittels FindBin ermitteln
Neue Perl-Versionen werden das aktuelle Verzeichnis '.' aus demStandard-Include-Pfad @INC entfernen. Das bedeutet für uns, dass wirnicht mehr einfach »use SL::Dispatcher;« und ähnliche Konstrukte machenkönnen....
Dispatcher: Form::disconnect nicht aufrufen solange kein client da ist
Dispatcher: end_of_request() sub aus main namespace verbannt
Dispatcher: FCGI-Neustart bei modifizierten Dateien via exec anstelle von exit
Gleicher Grund wie in 655f9081d19d201a1084a609beca1c06bef91e5c:
Wenn sich das Script beendet, so kann es sein, dass der Webserverbereits den nächsten Request zum Script geschickt hat. Ist das der Fall,...
Dispatcher: Restart bei hohem Memory-Verbrauch via exec anstelle von exit
Wenn sich das Script im Fall von zu hohem Speicherverbrauch beendet, sokann es sein, dass der Webserver bereits den nächsten Request zum Scriptgeschickt hat. Ist das der Fall, kommt es zu einem internal server...
Dispatcher: Requstloop vom dispatcher.fpl nach Dispatcher.pm verschoben
Projekt »keep your main namespace clean«.
LXDebug: beim Request-Timer auch die aufgerufene Controller+Action loggen
Nach Request alle Datenbankhandle rollbacken
An diversen Stellen wird in Legacycode eine Transaktion manuellerstellt. Wenn in dieser Transaktion eine Exception geworfen wird,beendet das den Requst ohne die Handle aufzuräumen in der Annahme, dassdie disconnected werden....
Dispatcher: FCGI Finish -> 10ms schneller im Browser
POSIX: Autoexport aller Funktionen vermeiden.
use POSIX; exportiert den kompletten Funktionsumfang in das package. Dasalleine ist schon nicht schön, allerdings ändert sich die Liste derexportierten Funktionen je nach POSIX Version.
POSIX 1.47 bringt nun mathematische Funktionen, unter anderem round und...
%::myconfig mit sinnvollen Standardwerten vorbelegen
Das zur-Verfügung-Stellen von ::myconfig in JavaScript und die daraufbasierende vereinfachte Initialisierung in 4ec753d erfordert, dass::myconfig immer numberformat und dateformat enthält. Andernfalls gibt...
Instance-Conf am Anfang jedes Requests laden
Dispatcher: Requests auf controller.pl ohne action auf Loginseite redirecten
Ist hilfreich, wenn man aus der Browserhistory einen Link wiehttp://…/kivitendo/controller.pl aufruft. Bisher wurde nur eine böseFehlerseite angezeigt.
Dispatcher: Pro-Request-Initialisierung in eigene Sub verschoben
Weiterhin optionale Initialisierung von Client und User in besagter Sub.Erleichert die Verwendung die Initialisierung vom Dispatcher in eigenenScripten (z.B. der console oder rose_auto_generate_models.pl, auch wenn...
Archive::Zip::Member::_writeToFileHandle fixen
Archive::Zip v1.31_04 und neuer enthält einen Bug, durch den vonLibreOffice erzeugte ODTs beim Schreiben der neuen Datei zu einerFehlermeldung, damit dem Abbruch der Schreiboperation und letztlich zudefekten Ausgabedateien führt. Der Bug existiert auch in der aktuellen...
Typos korrigiert
Obwohl die super zum Greppen waren.
InstanceConfiguration durch Verwendung von AUTOLOAD vereinfacht
Variable 'charset' gibt es in %::myconfig nicht mehr
Codevereinfachung: Shortcut & dadurch weniger Einrückung
Alle Anfragen auf admin.pl auf neuen Admin-Controller umleiten
Locking in eigenes Modul verschieben
Ausführung von admin.pl wieder über ::run() laufen lassen
Admin: Teile von admin.pl in neuen Controller Admin verschoben; Mandanten anzeigen
END_OF_REQUEST-Exception auch bei eingeschaltetem "backtrace on die" erkennen
Stacktrace an Exception anhängen (über Konfigurationssetting einschaltbar)
Neuer Debugparameter: Request
Loggt sinnvolle Informationen zum Request.
Error-Handling: Bei AJAX-Requests Fehler als JSON-Object zurückgeben
$::request: Funktionen "is_ajax()" und "type()"
Refactoring: Parameterredesign SL::Controller::Base::render und SL::Presenter::render
Conflicts: SL/Controller/FinancialControllingReport.pm SL/Controller/ProjectType.pm
Nach fehlgeschlagenem AuthHandler Request nicht fortsetzen
Ansonsten wird zwar der '302'-Redirect ausgegeben, der Controller abertrotzdem ausgeführt.
Request nach fehlgeschlagener Authentifizierung wirklich abbrechen
Das Problem entstand durch Revision 3ab26ffc.
Layout package names refactored
SL::Controller::Layout::* -> SL::Layout::*SL::Controller::Layout -> SL::Layout::Dispatcher
form->footer
Layouts eingeführt
bin/mozilla/menu* -> SL/Controller/Layout/*
Bei Loginfehlern das Menü nicht mitrendern
anderweitig von mosu gefixt
html menü rewrite v1
Ermöglichen, dass Templates in SL/Dispatcher.pm übersetzt werden
In Dispatcher.pm erledigt die Sub "show_error" das Rendern. Ihr wirdder Name des Templates übergeben. Das erkennt aber"scripts/locales.pl" nicht als Render-Anweisung und übersetzt dieTemplates deshalb nicht automatisch. Also muss Dispatcher.pm etwas...
Vor Exception-Ausgabe sicherstellen, dass das aktuelle Verzeichnis OK ist
Auch das Installationsbasisverzeichnis in @INC aufnehmen
Hintergrund ist konditionales Requiren von SL-Modulen, wenn vorher einchdir gemacht wurde (blöder alter Code, der chdirt...).
Controller-Code nach internem Umschreiben des Requests von 'login.pl' laden
User-Login auf Controller umgestellt
Formularfelder und Session-Keys für Logins umbenannt
Ziel: Ermöglichen, dass Login & Passwort auch wieder perFormularfelder mit jedem Request übertragen werden, aber nicht mehr sooffensichtlich im "Formularfeldernamensraum" rumgeistern -- sondernleicht aussortierbar sind. Die Formularfelder, die mit "{AUTH}"...
Dispatcher: Auch Controller ermöglichen, die Admin-Login benötigen
Default ist für Controller, dass all ihre Funktionen User-Loginsbenötigen. Kann ein Controller ändern, indem er die Sub"get_auth_level" überschreibt (siehe Doku inSL::Contrller::Base). Dies schafft die Basis dafür, auch Admin-Dinge...
Keine Passwörter mehr in Sessions speichern.
Der vorherige Mechanismus hat Passwörter in der Session hinterlegt, um beijedem Request überprüfen zu können, ob die Zugriffsrechte immernoch bestehen.Gedacht war das vor allem für LDAP Authetifizierung, wo der Admin den Zugang...
Stylesheets umorganisiert.
Doku in css/README.stylesheets
Usermaske im Adminbereich vor logins aus sessions geschützt.
Notwendigerweise zusätzlich User->new und Auth->read_user auf %paramsumgeschrieben.
$::cgi entfernt.
Verfahren:- Für alle Vorkommen von "my $cgi = $::cgi;": ersetzt durch my $cgi = $::request->{cgi}->new({}) ersetzt
- Wenn in einer Datei alle my $cgi rausgefallen sind auch use CGI entfernt.
- Initialisierung von $::cgi in scripts und Dispatcher entfernt und in dei...
$::request als globale Variable eingeführt.
::called_subs ersatzlos gestrichen.
call_sub Rekursionen sind nicht mehr aufgetreten seit das System eingebautwurde, kein Grund auf Verdacht darauf zu prüfen.
In Konfiguration angegebene Anwendungen in PATH suchen
Fix für Bug 1690.
Kosmetik
Eine Klasse & globale Variable zur Verwaltung von mandantenbasierter Konfiguration
Optionaler, automatischer FCGI-Restart nach Request bei Programmänderungen
Muss in Konfiguration in [debug] mit restart_fcgi_process_on_changesangeschaltet werden. Überwacht alle Dateien in SL, bin, config,templates/webpages sowie einige im Basisverzeichnis auf Änderungen des...
Nicht immer alle Session-Werte automatisch laden und parsen
Durch das Speichern ganzer Forms in der Session wurde das Laden sehrlangsam, weil bei jedem Request alle Session-Werte geladen und mitYAML geparst wurden. Rief man z.B. ein Erzeugnis mit 50 Einzelteilen...
Eval-Error im Dispatcher auch auf STDERR ausgeben
Wurde bereits ein Template ausgegeben, bevor der Fehler auftrat, sokonnte es sein, dass die Fehlermeldung komplett verschluckt bzw. vomBrowser nicht angezeigt wird.
Keine großen GET-Requests via HTTP-Redirect erfordern
Bugfix für 1609.
Das Benutzer-Passwort nicht im Klartext in Session-Tabelle ablegen
Pre-Checks können mit Exception enden (end-of-request), daher in eval {} packen
Ansonsten wurde nach jeder Anfrage der Prozess beendet, sofern einPre-Check fehl schlug. Das passiert z.B., wenn die Auth-DB nichtexistiert.
Bug 1653: $::form erst zerstören nachdem die sessions up-to-date sind.
kopf.pl auf Controller umgestellt
Sessions erst nach dem Request expiren.
HTML.uri() muss Strings zuerst von Perls internem Encoding nach UTF-8 wandeln
Fix für Bug 1641.
Request abbrechen, wenn alte Konfigurationsdateien vorhanden sind
$::auth nicht löschen sondern nur resetten. (Experimentell)
$::auth erst nach dem session expire zerstören.
$::auth erst nach $::form und $::locale anlegen, weil $::auth beide benötigt (SL/Auth/LDAP.pm)
Conflicts:
SL/Dispatcher.pm
Zirkuläre Referenzen in $::auth auflösen, damit DB-Verbindung am Ende des Requests geschlossen wird
SL/Auth/DB.pm
Vor jedem Request neue Instanz von $::auth anlegen
$::auth cachet Informationen wie Gruppenzugehörigkeit und -rechte. Dasführt dazu, dass Änderungen im Adminbereich für laufende FCGI-Prozessenicht sichtbar waren, wenn die entsprechende Gruppe schon einmal...
Methoden zum Speichern von eindeutigen Keys in der Session
Außerdem: Form dumpen und wiederherstellen; Werte nur für einenbestimmten Zeitraum speichern.
Session immer am Ende des Requests speichern
Momentan wird eh am Anfang der Session einmal gespeichert, wennBenutzername und Passwort überprüft wurden. Somit erspart man sichspäteres Speichern.
Legacy-Interface: Auth::authenticate unterstützt "is_crypted" nicht mehr
Sowohl Standard-DB-Handle als auch Auth-DB-Handle am Ende des Requests schließen
Verwendete Schnittstelle (CGI/FastCGI) in Versionsinfoscreen anzeigen
Merge branch 'master' into after-262
Conflicts: DEBIAN/DEBIAN/postinst DEBIAN/mk_erp_deb.sh config/lx-erp.conf config/lx-erp.conf.default doc/INSTALL.txt locale/de_DE/all
config/lx_office.conf.default einlesen, wenn config/lx_office.conf nicht existiert
Alte Konfigurationsdateien config/lx-erp.conf{.default} entfernt
Globale Variable $::menufile entfernt
Globale Variablen für Systemeinstellungen und Features nach %::lx_office_conf verschoben
Betroffen sind: $webdav $vertreter $lizenzen $show_best_before $parts_show_image $parts_image_css $parts_listing_images $eur $dbcharset $language
Globale Variablen nach %::lx_office_conf verschoben
Betroffen sind: $sendmail $openofficeorg_writer_bin $xvfb_bin $html2ps_bin $ghostscript_bin $latex_bin $pg_dump_exe $pg_restore_exe
Initialisierung von %ENV von lx-erp.conf nach lx_office.conf verschoben
Globale Variablen $::userspath, $::templates, $::membersfile nach %::lx_office_conf verschoben
Globales Konfigurationsobjekt %::lx_office_conf möglichst früh anlegen
Zusammenfassen mehrerer Konfigurationsdateien in einer gemeinsamen
Datenbankverbindung bei FCGI-Variante am Schluss nicht schließen
Merge branch 'master' of git@lx-office.linet-services.de:lx-office-erp
Conflicts: SL/Dispatcher.pm
Dispatcher bruacht kein SL/ include, wenn Form in der korrekten Form "SL::Form" eingebunden wird.
Hilfsfunktionen in DateTime
SL/Locale.pm
CSV-Export für ISO- und UTF-8, mit und ohne FastCGI gefixt
Fix für Bug 1535.
Umstellung des Dispatcher-Moduls auf Objekt-Aufrufsyntax