FU: Email bei neuen Wiedervorlagen
SL::Auth: Typo in Methodennamen korrigiert: create_unique_sesion_value …
-> create_unique_session_value
Kunden-/Lieferantenstammdaten: Berechtigungsmodell gefixt
Neues Modell sieht wie folgt aus:
1. Alle Personen haben Leserechte auf alle Kunden- & Lieferantenstammdaten. Das betrifft nicht nur die Stammdatenmasken, sondern auch die AJAJ-Autovervollständigung (Kunden-/...
Auth: fehlerhafte JSON-Requests mit JSON und richtigem HTTP-Response-Code beantworten
SL::Auth: Warnungen wegen nicht initialisierten Werten vermeiden
Durch Tests getriggert, konkret: durch t/controllers/base/render.t
Auth: Unterstützung für multiple Authentifizierungsbackends
Über den Parameter "module" kann man nun multiple Backends angeben,die nacheinander versucht werden, bis ein Erfolg gemeldet wird oderdie Liste durchlaufen wurde.
Zusätzlich kann man LDAP-Module mehrfach angeben. Damit...
Auth: mini_error gefixt
$::auth->mini_error wird potenziell zu einem Zeitpunkt aufgerufen, andem es die Instanzen von $::form und $::request noch nicht gibt. Dahier wirklich nur die Bare-Bones-Ausgabe der Fehlermeldung benötigtwird, machen wir für den Fall manuell ein CGI-Objekt auf.
LDAP-Auth: Konfiguration über Konstruktur übergeben
Ist eine Vorarbeit dafür, das LDAP-Modul mit unterschiedlichenKonfigurationen benutzen zu können.
Session Content: Query zum Einlesen gefixt
Operatorpräzedenz wurde falsch berücksichtigt.
Session Content: Race condition gehoben
Der ursprüngliche Mechanismus hat einfach nur alle Session Variablengespeichert und beim Session restore wieder geladen. Es hat sich abergezeigt, dass große Daten in der Session Requests deutlich langsamermachen, also wurde das Flag auto_restore eingeführt. Session Werte, die...
Sessions: keine Prüfung der Quell-IP-Adresse
Wenn ein Hostname sowohl A- (IPv4) als auch AAAA-Records (IPv6)aufweist, nutzen manche Reverse Proxies wie nginx mal IPv4, malIPv6. Dadurch prüft kivitendo manchmal (nämlich genau dann, wenn dieVerbindung über IPv4 reinkommt) die Quell-IP. Wurde die Session aber...
Authentifizierung: Unterstützung für HTTP Basic Authentication RFC 7617
SL::Auth: evaluate_rights_ary: Negierung (!) ermöglichen
Neues Benutzer-Recht Erzeugnisbestandteile editieren
Erlaubt das Änderun von Erzeugnisbestandteilen auch nachdem esschon produziert wurde. Standardmäßig nicht gesetzt.
SL::Auth: Kosmetik (Alignment)
Auth-DB-Spalten-Infos nur lesen, wenn DB-Verbindung vorhanden
»reset« wird während des Request-Shutdowns ausgeführt. Falls aber nochgar keine Auth-DB existiert (neue Installation z.B.), so wird versucht,eine Verbindung dahin aufzubauen, was zu einer Fehlermeldung führt —...
Verteilen der Rechte für Finanzbuchhaltung auf Dialogbuchung,Kreditoren-/Debitorenrechnungen
Es werden drei neue Rechte eingeführt, die den Zugriff auf Dialogbuchungen,Kreditoren-/Debitorenrechnungen verfeinern
Das Recht für Finanzbuchhaltung wird auf diese Rechte als default kopiert
Auth::ColumnInformation: fetch nur in reset, nicht in init
die Version aus e7a7492e macht Probleme im taskserver.
ausserdem das reset nur dann machen, wenn es auch sinnvoll ist. Bisherwurde das als silver Bullet aufgerufen, wannimmer sich etwas an der DB...
Auth: session content mit einem sql query holen statt zwei.
Auth: table_present caching gefixt
return aus dem do { } Block verhindert das memoizing.
Auth: 3 neue auto_restore keys für session handling
Die drei werden bei jedem Request gebraucht. Spart 2-3 DB Queries proRequest.
Typo in comments
Dispatcher: end_of_request() sub aus main namespace verbannt
Auth: DBUtils nicht den namespace vollmüllen lassen
Passwörter: Hash-Verfahren PBKDF2 unterstützen und als Standard nutzen
Der aktuelle Stand der Technik sind die SHA-*-Varianten schon langenicht mehr. In der Zwischenzeit wurden der PBKDF2-Mechanismusentwickelt, um schnelles Berechnen zu erschweren. Noch neuer und in...
Benutzung undefinierter Werte vermeiden
Rechte: In die Datenbank verlagert
Sessions: IP nicht bei IPv6 validieren.
Merge branch 'bankerweiterung_und_skonto'
Conflicts: doc/changelog locale/de/all
Bankerweiterung - Zwischenstand, erster Entwurf
Erstellung von Tabelle bank_transactions
Import von Bankbewegungen (in Tabelle bank_transactions)
Menu-Eintrag war noch nicht commitet
Controller für die Bank-Transaktionen
Dialog hin- und her
Achtung: noch mit Debug-Statements!...
Rechte-Anpassung für aktuelle Installationen
Es ist mittlerweile eher verwirrend Rechte für eine CRM zu verwalten, dieoffiziell nicht mehr Bestandteil von kivitendo ist.Die Änderung ist insofern defensiv, da alte Installation / Rechtestrukturennicht hiervon betroffen sind und wir für neuere kivitendo-Installation über-...
Brieffunktion erste Version
Verkaufsbriefe können jetzt auch mit LaTeX erstellt werden.Ferner gibt es eine Briefentwurfs-Funktion, die aussieht wie drafts, aberzumindestens auf einer eigenen Tabelle beruht. Zusätzlich wurden zwei neue Rechtegesetzt
Auth: nicht auskommentieren, sondern richtig dokumentieren
Auth - experimentell: $::auth dbh wieder cachen.
Auth.pm: Rechte nur dann laden, wenn User & Client gesetzt sind
Seit f6ed86e wird im Menü-Template-Code auf Rechtegetestet (AUTH.assert(…)). Im User-Bereich ist das kein Problem, weildie Menü-Templates nur dann benutzt werden, wenn tatsächlich ein User...
Auth.pm cosmetics: Entfernen von $::lxdebug->enter_sub/leave_sub
Neuer Bericht: LieferwertberichtErweiterung DeliveryPlan.pm um Modusweiche Lieferplan oder LieferwertberichtImplementierungstand Lieferwertbericht: - Alle offenen Verkaufsaufträge werden berücksichtigt - Beim CSV-Export wird die Einheit als Extra-Spalte exportiert und die...
SL::Auth: Überflüssige Zeichen entfernt
Pflichtenhefte: eigenes Recht einführen
Eigenes Recht für Lieferplan und "sales_all_edit" berücksichtigen
Neue Rechte für Anzeige der Debitoren- und Kreditorenbuchungen
Damit kann man in den Berichten für Einkaufs- und Verkaufsrechnungen dieDebitoren- und Kreditorenbuchungen herausfiltern, so daß z.B. dieEinkäufer nicht mehr Kreditorenbuchungen aus dem Fibu-Bereich sehen...
Überprüfung vom API-Token gefixt
Neues Recht für Anzeige von Artikeldetails/-berichten
Statt nur ein Recht für die Bearbeitung von Artikeln zu haben, das gleichzeitig auch das Rechtfür die Anzeige von Details und Berichten über Artikel umfasst, wurde nun ein neues Recht eingeführt.Das alte Recht "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" wurde also in zwei...
Auth: Support für Verbindung zur Unit-Test-Datenbank
Beschreibung der Rechte 'config' und 'admin' konkretisiert
Unterstützung für andere Datenbankencodings als Unicode/UTF-8 entfernt
Bei Clientanmeldung Zuweisung Gruppen<->Mandanten berücksichtigen
Userlogin mit Mandanten gefixt (erster Schritt)
SL::Auth: Client-Properties aus Auth-DB lesen und in $::auth->client speichern können
Admin: Teile von admin.pl in neuen Controller Admin verschoben; Mandanten anzeigen
Recht für Anzeige der Produktivität
Um die Produktivität einzusehen, ist jetzt ein Recht erforderlich.Standardmäßig wird dieses Recht gegeben, um den gleichen Zustandwie vor dem Commit zu garantieren.
Weiterhin gibt es nun auch das Recht für Anzeige des Administrationslinks...
Revert "Recht für Anzeige der Produktivität"
This reverts commit a27cd427a2689b49a7642884edd2d24555305a4b.
cleanup Methode und Manager für CsvImportReport
Lx-Office heißt nun kivitendo
Automatische Authentifizierung bestehender Sessions über Session-ID + API-Token
Wird für CRM-Menü benötigt.
Stylesheet Win2000.css gelöscht
Menüsysteme v3 & v4 verschmolzen (Stil von v4, Name & Code von v3)
Fallback auf Sprache aus kivitendo.conf, falls vom Benutzer selektierte Sprache nicht existiert
Hinweise auf lx_office.conf in kivitendo.conf geändert
Fixt #2031.
Konfigurationsoption für Wartezeit nach fehlgeschlagenen Logins
User-Login auf Controller umgestellt
Administrationsoberflaeche: aktive User anzeigen
implementiert #1853
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...
Admin-Passwort in Closure speichern, um versehentliche Ausgabe beim Dumpen zu vermeiden
Neue Version podchecker erkennt leere Setions und fehlende Leerzeilen
Usermaske im Adminbereich vor logins aus sessions geschützt.
Notwendigerweise zusätzlich User->new und Auth->read_user auf %paramsumgeschrieben.
Neues Recht "admin" für Administration aus Useraccounts heraus
Recht hinzugefügt: Nur eigene Kunden (Verkäufer gleich Mitarbeiter) editieren
Zusätzliches Recht alle Kunden / Lieferanten editieren, war bisher standardmäßig IMMER so und kann jetzt deaktiviert werden.Falls es deaktiviert wird, kann man den Kunden / Lieferanten nur editieren wenn man selber als Verkäufer eingetragen ist.
Das XUL-/XML-Menü entfernen
Das alte XUL-/XML-Menü war von der Benutzung her zwar beliebt, hatteaber aush administrativer Sicht diverse Probleme. Früher konnteFirefox XUL von beliebigen Webservern ausführen, heute seit Firefox 4nicht mehr -- aus Sicherheitsgründen. Daher musste man bereits ein...
LDAP Authentifikation zwischen requests korrekt resetten.
Programmlogik für Recht 'Schreibgeschützte Preise' (s.a. Commit davor)Details: Vergessen bei dem Commit von gerade, die entsprechenden Programmänderungen auch zu committen, betrifft: Übersetzungen, Recht in Auth.pm sowie die entsprechende neue Logik in io.pl->display_row
Anlegen der Auth-DB fixen
Auth.pms Session-Management kam nicht damit zurecht, wenn die Auth-DBbzw. das "auth"-Schema darin noch nicht existiert haben. Das passiertz.B., wenn die Auth-DB gerade über den Admin-Bereich angelegt werdensoll.
Warnung wenn kein cookie übergeben wurde
$::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...
Prozess-ID & Uhrzeit nicht sichtbar in Session-Keys verwenden
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...
Passwort-Änderungen auch in der Session speichern
Fall 'kein Hash-Algorithmus angegeben' bei alten Passwörtern richtig behandeln
create_unique_session_value hat immer falsch auf Eindeutigkeit der Nummer geprüft
flash_later durch Auto-Restore von 'FLASH' von Session nach $::form gefixt
Bug wurde in c90b4dcd implementiert. Hintergrund:
c90b4dcd sollte ermöglichen, dass Werte in der Session gespeichertwerden, die aber nicht automatisch nach $::form zurück kopiert...
Feature "Lizenzen" entfernt
Hat grob gesehen niemand benutzt, es funktionierte nicht, und wurdeseit gefühlten 20 Jahren nicht weiter entwickelt.
Admin-Passwort immer gehasht speichern, auch wenn LDAP-Authentifizierung aktiv ist
Das Admin-Passwort nicht im Klartext in Session-Tabelle ablegen
Das Benutzer-Passwort nicht im Klartext in Session-Tabelle ablegen
Session-basierte Dateien (die also bei Ablauf gelöscht werden)
Conflicts:
SL/Auth.pm
Nur Session speichern, wenn Auth-Tabellen vorhanden sind
Und nochmal den richtigen.
Peinlicher Syntaxfehler beim Laden von Gruppenrechten.
Wenn keine session_id vorhanden ist, zum Beispiel nach dem Abmelden, nicht versuchen die Session zu speichern.
Hoffentlich Fix für Bug 1653.
assert darf login nicht asu form holen, weil das vom User überschrieben werden kann.
assert kosmetik.
auto_restore ist gar nicht implementiert
Löschen von usern ermöglichen, wenn die Datenbank nicht existiert oder falsch eingetragen ist.
Serverfehler beim Löschen von Benutzern behoben.
Das globale $form kann im admin.pl Environment nicht auf die User DB connecten, also muss das von Hand gemacht werden.
Skalarkontext erzwingen
Regex-Matches geben im Listenkontext eine leere Liste zurück. Perloptimiert leere Listen innerhalb von Listen komplett weg. Somit hatfolgendes Hash nur einen Key und einen Value, nämlich "a" und "123" respektive:
my %h = ( a => $unicorn =~ /Charlie/,...
Session nur einmal pro Request speichern, und zwar danach.
Vorher wurde die Session mindestens zweimal vor dem Request gespechert. Unnötig.
enter_sub/leave_sub in Auth::save_session
Auth::load_group_rights - etwas aufgeräumt.
$::auth nicht löschen sondern nur resetten. (Experimentell)