UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Das Forum ist für das Melden von Bugs gedacht. // This forum is intended to report bugs with the APF.
Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 19.01.2013, 16:25:34

Hallo zusammen,

ich arbeite mich gerade ins Usermanagement ein, da ich ein Backend für mehrere Seiten schreiben muss/möchte.
Das Formular im Umgt-Backend zum Anlegen einer Sichtbarkeitsberechtigung akzeptiert nicht, wenn ich nur eine Gruppe zuordne, aber keinen Benutzer.

Ich habe mir daraufhin den zugehörigen Controller und das Template angesehen. Der UserOrGroupActivatedValidator erlaubt ja, ein weiteres Feld anzugeben. Ich habe zum Form-Tag für die User dann das Attribut 'alt="groups"' hinzugefügt. Jetzt bekomme ich zwar keine Fehlermeldung mehr, verarbeitet wird das Formular aber trotzdem nicht. Ansich müsste es jetzt doch valid sein, oder?

LG :)
Jan

PS: Im zur Installation des Umgt-Moduls beliegenden SQL-File fehlten die Statements für die AuthToken (automatischer Login).

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 19.01.2013, 16:37:11

Hab den Fehler: Ich hatte eine ID angeben, die kein Integer war. Dafür gibt es keinen Listener, uns deshalb habe ich keinen fehler angezeigt bekommen... :D

Btw: Es wäre beim APFelSMS praktisch wenn auch Strings als ID erlaubt wären, um Sichtbarkeitsberechtigungen für Seiten zu regeln, die ja einen String als ID haben! Mit dem aktuellen Datenmodell (XML) wäre eine numerische ID auch gar nicht möglich, da XML für IDs ja keine Ziffern (am Anfang) erlaubt. Dann werd ich mir mal eine Alternative überlegen (müssen). :idea:

LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 19.01.2013, 23:53:11

Hallo Jan,

ich habe den Fehler im 1.17er SVN gefixt - danke für deinen Hinweis und deine Analyse!
Btw: Es wäre beim APFelSMS praktisch wenn auch Strings als ID erlaubt wären, um Sichtbarkeitsberechtigungen für Seiten zu regeln, die ja einen String als ID haben! Mit dem aktuellen Datenmodell (XML) wäre eine numerische ID auch gar nicht möglich, da XML für IDs ja keine Ziffern (am Anfang) erlaubt. Dann werd ich mir mal eine Alternative überlegen (müssen). :idea:
Das UMGT geht aktuell immer von numerischen IDs aus. Insofern ist das Feld appobjectid mit einem IntegerValidator belegt. Dies ist notwendig, da das Feld mit BIGINT(5) keine Strings zulässt. Warum ist in deinem XML keine numerische ID möglich?
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 20.01.2013, 12:47:23

Warum ist in deinem XML keine numerische ID möglich?
Naja, damit der Mapper per getElementById() den entsprechenden Page-Konten finden kann, muss in der DTD für das Attribut "id" auch der Attribut-Typ "ID" angegeben werden. Und der erlaubt, genauso wie in HTML-Element-Ids, keine Zahlen am Anfang.
Außerdem wäre es für SEO äußerst unpraktisch, wenn man eine URL wie /page/5 statt /page/news hätte :)
Ich habe das aktuell jetzt, etwas unsauber, über (Funktions)-Berechtigungen gelöst. Das entsprechende Update vom APFelSMS kommt demnächst. Damit lässt sich über einen Umgt-Provider für den AccessCtrlPageDec der Seite eine Berechtigung zuordnen. Wenn der im Umgt aktuell angemeldete User diese Berechtigung besitzt wird die Seite (unabhängig vom Wert der Berechtigung) angezeigt. Außerdem gibt es noch einen neuen Dekorator, der eine Seite versteckt, wenn kein User angemeldet ist.

Btw.: Für einen Datenbank-Mapper/-Datenschicht plane ich neben einem numerischen PK (Spalte 'PKId') eine Spalte "id" als VARCHAR(50) mit UNIQUE-Index.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 21.01.2013, 00:30:43

Naja, damit der Mapper per getElementById() den entsprechenden Page-Konten finden kann, muss in der DTD für das Attribut "id" auch der Attribut-Typ "ID" angegeben werden. Und der erlaubt, genauso wie in HTML-Element-Ids, keine Zahlen am Anfang.
Das ist doch dein eigenes DTD in dem du tun und lassen kannst, was du möchtest... :roll:
Außerdem wäre es für SEO äußerst unpraktisch, wenn man eine URL wie /page/5 statt /page/news hätte :)
Korrekt, das wäre nicht zielführend.
Ich habe das aktuell jetzt, etwas unsauber, über (Funktions)-Berechtigungen gelöst.
Das halte ich für gefährlich, da du dir damit die Möglichkeit nimmst "echte" Funktionsberechtigungen zu definieren.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 21.01.2013, 17:53:08

Das ist doch dein eigenes DTD in dem du tun und lassen kannst, was du möchtest...
Da hast du zwar prinzipiell Recht, aber eben nicht ganz!
Die DOM-Erweiterung von PHP erkennt nur Attribute als Id (für getElementById()), die den entsprechenden Attributtyp 'ID' in der DTD zugewiesen bekommen haben (der Attributname ist dann irrelevant).
Und die Werte von Attributen mit dem Attributtyp 'ID' müssen den Regeln für Namen entsprechen, ähnlich wie bei Variablennamen in PHP!
Eben diese erlauben keine Zahlen am Anfang.
Das halte ich für gefährlich, da du dir damit die Möglichkeit nimmst "echte" Funktionsberechtigungen zu definieren.
Momentan sind die Seiten zum Anlegen von News bzw. Terminen gedacht, also passen die Funktionsberechtigungen schon eher. Trotzdem sagte ich ja schon, dass ich das unsauber finde und suche daher langfristig eine bessere Lösung mit sichtbarkeiten.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 22.01.2013, 00:18:16

Hi Jan,

ich dachte mich erinnern zu können, dass du SimpleXML nutzt. :roll: Bei DomXML ist das natürlich in der Tat nicht schön. Alternative ist natürlich, den IDs in deinem XML einen präfix zu geben und bei der Abfrage geben das UMGT diesen wieder zu entfernen. Grundsätzlich hätte ich auch nichts gegen eine Erweiterung des UMGTs auf alphanummerische IDs. Wenn du magst, dann schau dir das mal im Code an (da fällt mir wieder das SVN-Issue ein :D).
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 22.01.2013, 19:10:01

Grundsätzlich hätte ich auch nichts gegen eine Erweiterung des UMGTs auf alphanumerische IDs.
In die Richtung hatte ich jetzt noch nicht direkt gedacht - wäre allerdings am einfachsten, ja. Ich schau mir das mal an.

EDIT:
UmgtVisibilityDefinitionBase hat folgende Methodensignaturen. Da der Typ schon "String" ist, sehe ich da kein großes Problem, aus dem Datenbankfeld ein VARCHAR(50) o.ä. zu machen.
Die Frage ist nur: macht es Sinn, welche Vor- und Nachteile hat es? Und da bist du wieder am Zug :P

Code: Alles auswählen

   /**
    * @return string The value for property "AppObjectId".
    */
   public function getAppObjectId() {
      return $this->getProperty('AppObjectId');
   }

   /**
    * @param string $value The value to set for property "AppObjectId".
    * @return UmgtVisibilityDefinition The domain object for further usage.
    */
   public function setAppObjectId($value) {
      $this->setProperty('AppObjectId', $value);
      return $this;
   }
 
LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 22.01.2013, 23:57:30

Hallo Jan,
Die Frage ist nur: macht es Sinn, welche Vor- und Nachteile hat es? Und da bist du wieder am Zug :P
Grundsätzlich macht es sicher Sinn, sofern es eine über den Typ hinweg ein eindeutiger Schlüssel/Selektor ist. Sofern das sichergestellt ist, habe ich keine Einwände.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 23.01.2013, 18:58:20

Grundsätzlich macht es sicher Sinn, sofern es eine über den Typ hinweg ein eindeutiger Schlüssel/Selektor ist.
Das kommt zwar auf die Anwendung an, sollte ja aber in den meisten Fällen der Fall sein ;)
Sofern das sichergestellt ist, habe ich keine Einwände.
Dann müsste das Datenbankfeld entsprechend von BIGINT auf VARCHAR(50) angepasst werden und die Validatoren der GUI angepasst werden.
Ich bin momentan ganz gut eingespannt und komme da nicht zu. Mitte Februar wird es wieder entspannter.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 25.01.2013, 01:30:58

Hallo Jan,
Ich bin momentan ganz gut eingespannt und komme da nicht zu. Mitte Februar wird es wieder entspannter.
Dann schlage ich vor, das auf die Roadmap zu setzen und das ab Mitte Februar anzugehen. Übernimmst du das?
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 25.01.2013, 14:30:01

Dann schlage ich vor, das auf die Roadmap zu setzen und das ab Mitte Februar anzugehen.
Roadmap klingt gut.
Übernimmst du das?
Kann ich nicht versprechen. Ich muss dann schauen, wie es bei mir aussieht. Wenn es Probleme gäbe, müsste ich mich erst tiefer einarbeiten. Mal schauen.
Ich habe ja auch noch APFelSMS, String-Placeholder, GORM und Doku für den NumberScopeValidator am Hals :p
Ich würde mir das gerne bis dahin offen lassen - generell wäre ich bereit, aber Zusagen möchte ich nicht.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 25.01.2013, 16:02:26

Ok, dann trage ich das in die Liste ein.

EDIT: erledigt. Das neue Feature habe ich unter http://wiki.adventure-php-framework.org ... rsion_1.17 in die Liste eingetragen.
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von dr.e. » 16.02.2013, 21:44:24

Hallo Jan,

ich habe das Feature heute umgesetzt und die UMGT-GUI getestet. Wenn du dein APF lokal auf den aktuelle SVN-Stand aktualisierst, kannst du das Feature direkt bei dir testen.

Zu ändern ist im Wesentlichen nur die Konfiguration DEFAULT_umgt_objects.ini:

Code: Alles auswählen

// alt
AppObjectId = "BIGINT(5) NOT NULL"

// neu
AppObjectId = "VARCHAR(10)"
Freue mich über dein Feedback! :)

EDIT: einen Hinweis zur Migration habe ich unter http://wiki.adventure-php-framework.org ... _Proxy-IDs platziert.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: UMGT-GUI: Sichtbarkeit anlegen nur mit Gruppe?

Beitrag von jwlighting » 16.02.2013, 21:55:55

Hallo Christian,

vielen Dank, dass du das schon übernommen hast.
Ich kann verstehen, dass du einen kurzen Key anstrebst und deshalb ein VARCHAR(10) gewählt hast.
Ich sehe darin aber auch die Gefahr, dass sich manche Seiten-IDs damit schon wieder nicht abbilden lassen. Bspw. habe ich in einem System die PID 'apprenticeship', vielleicht gibt es auch mal 'unternehmensgeschichte' oder 'newsarchive2012'. Sicherlich lässt sich das auch auf andere Anwendungen als das APFelSMS mit seinen Seiten-IDs übertragen.
Kurzum: Ich fürchte, das ist schon wieder zur kurz. :( Meist wähle ich (großzügig) für String-IDs bzw. -Alias einen VARCHAR(35).
Wäre das für dich auch ein gangbarer Weg?

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast