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
Trennzeichen für Controller-Routing von :: auf / geändert
templates/webpages/messages/form.html templates/webpages/messages/list.html
Neuer Routingmechanismus für Controller, die als Package implementiert sind
Voraussetzungen:
flash_later(): In Session gespeicherter Flash für nächsten Request implementiert
Session immer herstellen und refreshen, auch wenn System gesperrt ist
Fix für Bug 1467.
Session trotzdem refreshen, auch wenn "action" nicht definiert ist
Bugfix CGI Routing - $0 wird bei MatchAlias auf dispatcher.pl nicht richtig gesetzt.
Die ursprüngliche Version zieht sich den aufgrufenen Scriptnamen aus $0. Dasfunktioniert aber nur in der Symlinkversion. Wenn ein Matchalias auf das Scriptgesetzt wird, muss der Scriptname aus %ENV geholt werden. Da das bei FCGI...
Neue Option in LXDebug: LXDebug->WARN.
Sämtliche Perl warnings die auftreten, werden jetzt über einenSighandler an LXDebug weitergeleitet, und werden, sofern gewünscht,in das LxOffice Log geschrieben.
Das ganze soll später dazu dienen, inkrementell die Module von warnings zu...
Disptcher->require_maincode tracing gegeben.
Rose und Moose in dieser Version noch nicht einbinden.
Datei users/nologin auch auswerten, wenn login.pl aufgerufen wird
Exception im boopstrapping: Wenn keine auth db vorhanden ist, sofort auf adminmaske.
warnings gefixt, und globals besser dokumentiert.
Scriptname steht nicht mehr in $form
Bestimmte globale Variablen pro Request initialisieren.
Globale Variable bei jedem Request initialisieren.
Überflüssige globale Variablen entfernt.
Bzw. die "my $menufile" aus den verschiedenen Menüscripten in eineeinzige globale Variable verschoben.
bin/mozilla/menu.pl
Modul- und Funktionsnamen müssen mit einem Buchstaben beginnen
Routingmechanismus mit Scriptname dispatcher.pl und Parametern 'M' und 'A' oder 'A_...' implementiert
Nur ein globales Locale-Objekt anlegen
Außerdem alle lokalen Locale-Objekte entfernt. Ist so noch nicht funktionabel.
SL/Template/Plugin/T8.pm scripts/console scripts/rose_auto_create_model.pl scripts/sync_with_sugarcrm.pl