You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aktuell bietet die Framework-API die Möglichkeit interne Felder von außen zu setzen, z.B. ServerState{Created,Published,Modified,Deleted}. Das sollte unterbunden werden, da sonst möglicherweise inkonsistente Zustände provoziert werden können.
Daher hatten wir gerade am Telefon folgende Idee: die Felder können bis zum ersten Aufruf der Methode store() geändert werden. Anschließend hat nur noch das Framework darauf Zugriff.
Thoralfs Idee dazu:
in der Klasse Opus_Model_Abstract eine Methode aufnehmen
public function protectField($fieldname) {
$this->_internalFields[] = $fieldname;
}
Mit der auf Doctrine basierten Umsetzung der Datenbankanbindung in OPUS 4.8 ändert sich natürlich der Code komplett. Das Konzept von geschützten Feldern sollte aber auch für die neue Implementation geprüft und gegebenenfalls im Datenmodell berücksichtigt werden.
Sollte es Permissions für Nutzer geben, die auf der Ebene einzelner Felder geprüft werden. Ich denke es macht keinen Sinn einfach set-Funktionen zu blockieren. Die Einschränkung, dass diese Felder nur noch innerhalb der Model-Klasse, also nicht über die set-Funktion geändert werden können, schränkt die Möglichkeiten der Implementation beträchtlich ein. Im alten Framework sind Datenmodell, Datenbankanbindung, Workflow-Logic und weitere Funktionalität wie die Behandlung von Event für die DOI-Registrierung miteinander vermischt. Das macht Änderungen schwierig. Es macht den Code unübersichtlich. Die Klassen für die einzelnen Modelle sollten wesentlich weniger Verantwortung haben.
Aktuell bietet die Framework-API die Möglichkeit interne Felder von außen zu setzen, z.B. ServerState{Created,Published,Modified,Deleted}. Das sollte unterbunden werden, da sonst möglicherweise inkonsistente Zustände provoziert werden können.
Daher hatten wir gerade am Telefon folgende Idee: die Felder können bis zum ersten Aufruf der Methode store() geändert werden. Anschließend hat nur noch das Framework darauf Zugriff.
Thoralfs Idee dazu:
Das Ausschließen von Feldern für das Editiern "von außen" (d.h. der Aufruf von protectField) könnnte im Bootstrap erfolgen.
The text was updated successfully, but these errors were encountered: