Problem mit dem Usermanagement Modul

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Problem mit dem Usermanagement Modul

Beitrag von Well » 05.11.2009, 19:05:27

Moin :)


Ich bin nun bis zum Usermanagement Modul vorgedrungen, hab jetzt aber wieder ein kleines Problem:
Message: [GenericORMapper::saveObject()] The object name "Application" does not exist in the mapping table! Hence, your object cannot be saved! Please check your object configuration.
Message: Undefined index: Application
Message: [MySQLHandler->executeTextStatement()] (1054) Unknown column '' in 'where clause' (Statement: SELECT * FROM `cmp_application2user` WHERE `` = '' AND `UserID` = '1';)
Message: [MySQLHandler->executeTextStatement()] (1054) Unknown column '' in 'field list' (Statement: INSERT INTO `cmp_application2user` (`UserID`,``) VALUES ('1','');)
Diese Meldungen erscheinen, wenn ich versuche, einen neuen User zu erstellen. Der Benutzer an sich wird erstellt, die Beziehung zur Anwendung aber nicht. Ich verwende für die Konfiguration die 3 Dateien aus dem "Beispiel-Konfigurationsdateien"-Pack. (unverändert)

An was kann das liegen?

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

Re: Problem mit dem Usermanagement Modul

Beitrag von dr.e. » 06.11.2009, 00:03:11

Hallo Well,
Diese Meldungen erscheinen, wenn ich versuche, einen neuen User zu erstellen. Der Benutzer an sich wird erstellt, die Beziehung zur Anwendung aber nicht. Ich verwende für die Konfiguration die 3 Dateien aus dem "Beispiel-Konfigurationsdateien"-Pack. (unverändert)
Nur zur Sicherheit: sind das deine Config-Dateien?
*_umgt_objects.ini:

Code: Alles auswählen

;
; Definition of the Application object
;
[Application]
DisplayName = "VARCHAR(100)"


;
; Definition of the User object
;
[User]
DisplayName = "VARCHAR(100)"
FirstName = "VARCHAR(100)"
LastName = "VARCHAR(100)"
StreetName = "VARCHAR(100)"
StreetNumber = "VARCHAR(100)"
ZIPCode = "VARCHAR(100)"
City = "VARCHAR(100)"
EMail = "VARCHAR(100)"
Phone = "VARCHAR(100)"
Mobile = "VARCHAR(100)"
Username = "VARCHAR(100)"
Password = "VARCHAR(100)"


;
; Definition of the Group object
;
[Group]
DisplayName = "VARCHAR(100)"


;
; Definition of the Role object
;
[Role]
DisplayName = "VARCHAR(100)"


;
; Definition of the Permission object
;
[Permission]
DisplayName = "VARCHAR(100)"
Name = "VARCHAR(100)"
Value = "VARCHAR(100)"


;
; Definition of the PermissionSet object
;
[PermissionSet]
DisplayName = "VARCHAR(100)"
*_umgt_relations.ini

Code: Alles auswählen

;
; Definition of the composition of Group objects under the Application object
;
[Application2Group]
Type = "COMPOSITION"
SourceObject = "Application"
TargetObject = "Group"

;
; Definition of the association between Group and User
;
[Group2User]
Type = "ASSOCIATION"
SourceObject = "Group"
TargetObject = "User"

;
; Definition of the association between Role and User
;
[Role2User]
Type = "ASSOCIATION"
SourceObject = "Role"
TargetObject = "User"

;
; Definition of the association between Role and PermissionSet
;
[Role2PermissionSet]
Type = "ASSOCIATION"
SourceObject = "Role"
TargetObject = "PermissionSet"

;
; Definition of the composition of User objects under the Application object
;
[Application2User]
Type = "COMPOSITION"
SourceObject = "Application"
TargetObject = "User"

;
; Definition of the composition of Role objects under the Application object
;
[Application2Role]
Type = "COMPOSITION"
SourceObject = "Application"
TargetObject = "Role"

;
; Definition of the composition of Permission objects under the PermissionSet object
;
[Application2PermissionSet]
Type = "COMPOSITION"
SourceObject = "Application"
TargetObject = "PermissionSet"

;
; Definition of the association of a Permission object with a PermissionSet object
;
[PermissionSet2Permission]
Type = "ASSOCIATION"
SourceObject = "PermissionSet"
TargetObject = "Permission"

;
; Definition of the composition of a Permission object under an Application object
;
[Application2Permission]
Type = "COMPOSITION"
SourceObject = "Application"
TargetObject = "Permission"
An was kann das liegen?
Ich habe irgendwie den Verdacht, dass die Konfigurationen unvollständig sind (vielleicht einfach ein Bug), denn das Objekt "Application" wird vom GORM als vemisst gemeldet. Das bestätigt sich nicht nur in der Applikations-Fehlermeldung, sondern auch in den Statements.

Rufst du den umgtManager auf oder nutzt du die mitgelieferte GUI?
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit dem Usermanagement Modul

Beitrag von Well » 06.11.2009, 14:34:02

Ja, die Konfigurationsdateien sind 1 zu 1.

Ich habe versucht ein kleines Registrierungsskript zu erstellen, darin rufe ich den Manager folgendermaßen auf:

Code: Alles auswählen

$umgtMgr = &$this->__getAndInitServiceObject("modules::usermanagement::biz", "umgtManager", "Default");
$User = new GenericDomainObject("User");
$User->setProperty("Username", $UsernameValue);
$User->setProperty("Password", $PasswordValue);
$User->setProperty("EMail", $EMailValue);
$User->setProperty("FirstName", $FirstNameValue);
$User->setProperty("LastName", $LastNameValue);
$umgtMgr->saveUser($User);

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

Re: Problem mit dem Usermanagement Modul

Beitrag von dr.e. » 06.11.2009, 14:37:31

Hallo Well,

an deinem Code sehe ich keinen Fehler. Ich versuche das heute Abend nachzustellen und melde mich wieder bei dir. Interessant wäre noch: welche Version setzt du ein?
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit dem Usermanagement Modul

Beitrag von Well » 06.11.2009, 14:46:49

Oh! :D

Jetzt merke ich erst, dass ich ja seither immer die Version 1.1 statt 1.9 heruntergeladen habe. :)
(Wobei ich es auch etwas verwirrent finde, dass die ältere Version über der neueren aufgelistet wird...)

Nungut, mit Version 1.9 funktioniert es perfekt. :)

Dankeschön.

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

Re: Problem mit dem Usermanagement Modul

Beitrag von dr.e. » 06.11.2009, 23:05:05

Hallo Well,
Jetzt merke ich erst, dass ich ja seither immer die Version 1.1 statt 1.9 heruntergeladen habe. :)
(Wobei ich es auch etwas verwirrent finde, dass die ältere Version über der neueren aufgelistet wird...)
Version 1.1? Meinst du 1.10? Letzeres ist die aktuelle stable Version (siehe http://adventure-php-framework.org/Seit ... s#1.10_rel). Diese (=1.10) wird auch bei mir vor 1.9 angezeigt. Kannst du mir mal einen Screenshot davon schicken?

Den Fehler habe ich gerade versucht mit 1.11 (aktuelle SVN-Version), 1.10 (aktuelle stable) und 1.9 (ältere stable) nachzuvollziehen - leider ohne Erfolg. In der aktuellen SVN-Version funktioniert das genau wie in der 1.10er. Bei der 1.9er erhalte ich bei PHP 5.2.8 einen beliebten Fehler, da hier die PHP-API sehr unglücklich geändert wurde. Nutze ich eine ältere PHP-Version funktioniert das auch wieder. In jedem meiner Versuche erhalte ich ein neues User-Objekt in der Datenbank. Hier mein Test-Code:

Code: Alles auswählen

include_once('./apps/core/pagecontroller/pagecontroller.php');

class UmgtTest extends coreObject {
   public function createUser(){
      import('modules::usermanagement::biz','umgtManager'); // optional bei 1.11/1.10, verpflichtend bei 1.9
      $umgtMgr = &$this->__getAndInitServiceObject('modules::usermanagement::biz', 'umgtManager', 'Default');
      $user = new GenericDomainObject('User');
      $user->setProperty('Username', 'cachatz');
      $user->setProperty('Password', '12345');
      $user->setProperty('EMail', 'christian.achatz@adventure-php-framework.org');
      $user->setProperty('FirstName', 'Christian');
      $user->setProperty('LastName', 'Achatz');
      echo $umgtMgr->saveUser($user);
   }
}

$uT = new UmgtTest();
$uT->set('Context','umgtdev');
$uT->createUser();
Nungut, mit Version 1.9 funktioniert es perfekt. :)
Im Hinblick auf das demnächst erscheindende 1.11 wäre ich beruhigt, wenn das bei dir auch mit 1.10 funktioniert. :)
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Problem mit dem Usermanagement Modul

Beitrag von Well » 06.11.2009, 23:33:30

dr.e. hat geschrieben:Hallo Well,
Jetzt merke ich erst, dass ich ja seither immer die Version 1.1 statt 1.9 heruntergeladen habe. :)
(Wobei ich es auch etwas verwirrent finde, dass die ältere Version über der neueren aufgelistet wird...)
Version 1.1? Meinst du 1.10? Letzeres ist die aktuelle stable Version (siehe http://adventure-php-framework.org/Seit ... s#1.10_rel). Diese (=1.10) wird auch bei mir vor 1.9 angezeigt. Kannst du mir mal einen Screenshot davon schicken?
Oh! Da bin ich dann wohl, was die Versionsnummern betrifft, nicht so fit. :D
Ich ging davon aus, dass 1.9 neuer als 1.10 sei. - Wüsste man es besser als ich macht das natürlich alles einen Sinn. :)
Mein Fehler!
dr.e. hat geschrieben:Den Fehler habe ich gerade versucht mit 1.11 (aktuelle SVN-Version), 1.10 (aktuelle stable) und 1.9 (ältere stable) nachzuvollziehen - leider ohne Erfolg. In der aktuellen SVN-Version funktioniert das genau wie in der 1.10er. Bei der 1.9er erhalte ich bei PHP 5.2.8 einen beliebten Fehler, da hier die PHP-API sehr unglücklich geändert wurde. Nutze ich eine ältere PHP-Version funktioniert das auch wieder. In jedem meiner Versuche erhalte ich ein neues User-Objekt in der Datenbank. Hier mein Test-Code:

Code: Alles auswählen

include_once('./apps/core/pagecontroller/pagecontroller.php');

class UmgtTest extends coreObject {
   public function createUser(){
      import('modules::usermanagement::biz','umgtManager'); // optional bei 1.11/1.10, verpflichtend bei 1.9
      $umgtMgr = &$this->__getAndInitServiceObject('modules::usermanagement::biz', 'umgtManager', 'Default');
      $user = new GenericDomainObject('User');
      $user->setProperty('Username', 'cachatz');
      $user->setProperty('Password', '12345');
      $user->setProperty('EMail', 'christian.achatz@adventure-php-framework.org');
      $user->setProperty('FirstName', 'Christian');
      $user->setProperty('LastName', 'Achatz');
      echo $umgtMgr->saveUser($user);
   }
}

$uT = new UmgtTest();
$uT->set('Context','umgtdev');
$uT->createUser();
Nungut, mit Version 1.9 funktioniert es perfekt. :)
Im Hinblick auf das demnächst erscheindende 1.11 wäre ich beruhigt, wenn das bei dir auch mit 1.10 funktioniert. :)
Hm... Ich habe nun nochmal die Ordner core / tools und modules von 1.10 in das Projekt kopiert (Zusammengeführt / Ersetzt) und es funktioniert nach wie vor.
Wer weiß, was ich da wieder vergeigt hatte... :roll:

Vielen Dank für die Hilfe.

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

Re: Problem mit dem Usermanagement Modul

Beitrag von dr.e. » 06.11.2009, 23:36:12

Hallo Well,

da bin ich ja beruhigt. :) Dann noch viel Spass beim entwickeln.
Viele Grüße,
Christian

Antworten