- 1
[Opened] [Résolu]création d'utilisateur avec jauth
Posted by yebmetch on 01/09/2012 14:40
bonsoir à tous encore moi... avant d'installé jauth j'avais un controlleur daoCrud qui me permettait de gerer les utilisateur de façon automatique. vue la dynamique de jAuth je veux que la création des utlisateurs de fasse par jAuth mais toujours dans le même contrôleur. Alors j'ai décommenté la méthode _create($form,$resp,$tpl) de mon crontroleur DaoCrud et modifier comme ceci:
protected function _create($form, $resp, $tpl) { $login=$form->getData('login'); $password=$form->getData('password'); $user=jAuth::createUserObject($login, $password); $user->email=$form->getData('email'); $user->nom_usr=$form->getData('nom_usr'); $user->prenom_usr=$form->getData('prenom_usr'); $user->tel_usr=$form->getData('tel_usr'); $user->id_grp=$form->getData('id_grp'); $res=jAuth::saveNewUser($user); $resp->body->assign('MAIN',$tpl->fetch($tpl)); return $resp; }
et depuis lors je le formulaire de création ne s'affiche plus. dans le fichier log de mon appli j'ai ceci comme message d'erreur:
2012-01-09 14:38:01 127.0.0.1 notice 2012-01-09 14:38:01 127.0.0.1 [8] Undefined variable: gJConfig C:\wamp\www\jelix\myapp\responses\myHtmlResponse.class.php 25 /jelix/rfxcrm/www/index.php?module=user&action=man:create array ( 'module' => 'user', 'action' => 'man:create', ) 0 myHtmlResponse->__construct() C:\wamp\www\jelix\lib\jelix\core\jRequest.class.php : 194 1 jRequest->getResponse() C:\wamp\www\jelix\lib\jelix\core\jController.class.php : 131 2 jController->getResponse() C:\wamp\www\jelix\lib\jelix\controllers\jControllerDaoCrud.class.php : 121 3 jControllerDaoCrud->_getResponse() C:\wamp\www\jelix\lib\jelix\controllers\jControllerDaoCrud.class.php : 278 4 jControllerDaoCrud->create() C:\wamp\www\jelix\lib\jelix\core\jCoordinator.class.php : 205 5 jCoordinator->process() C:\wamp\www\jelix\myapp\www\index.php : 19 2012-01-09 14:38:01 127.0.0.1 notice 2012-01-09 14:38:01 127.0.0.1 [8] Trying to get property of non-object C:\wamp\www\jelix\myapp\responses\myHtmlResponse.class.php 25 /jelix/rfxcrm/www/index.php?module=user&action=man:create array ( 'module' => 'user', 'action' => 'man:create', ) 0 myHtmlResponse->__construct() C:\wamp\www\jelix\lib\jelix\core\jRequest.class.php : 194 1 jRequest->getResponse() C:\wamp\www\jelix\lib\jelix\core\jController.class.php : 131 2 jController->getResponse() C:\wamp\www\jelix\lib\jelix\controllers\jControllerDaoCrud.class.php : 121 3 jControllerDaoCrud->_getResponse() C:\wamp\www\jelix\lib\jelix\controllers\jControllerDaoCrud.class.php : 278 4 jControllerDaoCrud->create() C:\wamp\www\jelix\lib\jelix\core\jCoordinator.class.php : 205 5 jCoordinator->process() C:\wamp\www\jelix\myapp\www\index.php : 19 2012-01-09 14:38:01 127.0.0.1 error 2012-01-09 14:38:01 127.0.0.1 [23000] SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`mydb`.`rfx_user`, CONSTRAINT `rfx_user_ibfk_1` FOREIGN KEY (`id_grp`) REFERENCES `rfx_groupe` (`id_grp`) ON DELETE CASCADE ON UPDATE CASCADE) C:\wamp\www\jelix\lib\jelix\db\jDbPDOConnection.class.php 145 /jelix/rfxcrm/www/index.php?module=user&action=man:create array ( 'module' => 'user', 'action' => 'man:create', ) 0 PDO->exec() C:\wamp\www\jelix\lib\jelix\db\jDbPDOConnection.class.php : 145 1 jDbPDOConnection->exec() C:\wamp\www\jelix\temp\myapp\www\compiled\daos\modules\user~rfx_user~mysql.php : 224 2 cDao_user_Jx_rfx_user_Jx_mysql->insert() C:\wamp\www\jelix\lib\jelix\plugins\auth\db\db.auth.php : 34 3 dbAuthDriver->saveNewUser() C:\wamp\www\jelix\lib\jelix\auth\jAuth.class.php : 132 4 jAuth::saveNewUser() C:\wamp\www\jelix\myapp\modules\user\controllers\man.classic.php : 184 5 manCtrl->_create() C:\wamp\www\jelix\lib\jelix\controllers\jControllerDaoCrud.class.php : 287 6 jControllerDaoCrud->create() C:\wamp\www\jelix\lib\jelix\core\jCoordinator.class.php : 205 7 jCoordinator->process() C:\wamp\www\jelix\myapp\www\index.php : 19
[Opened] création d'utilisateur avec jauth
Posted by foxmask on 01/09/2012 14:49
il faut ajouter dans myResponseHtml.class.php un global $gJConfig
dans la méthode attendue (ligne 25 est utilisé $gJConfig->quelquechose sans l'avoir definie avant)
Après c'est une erreur dans le code qui produit une erreur SQL.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] création d'utilisateur avec jauth
Posted by yebmetch on 01/09/2012 16:48
a propos de $gJConfig j'utilise la variable $gJConfig->urlengine['basePath'] pour ajouter des feuilles de style mais il n'a jamais posé problème "je pensait que l'on ne la déclarait pas avant sont utilistion". Pour le problème SQL je crois pour le moment que les valeur que je recupere dans le formuaire sont nulles. Je vous prie de verifer si j'utilise les methodes qui conviennent.
[Opened] création d'utilisateur avec jauth
Posted by foxmask on 01/09/2012 18:06
yebmetch a dit :
a propos de $gJConfig j'utilise la variable $gJConfig->urlengine['basePath'] pour ajouter des feuilles de style mais il n'a jamais posé problème "je pensait que l'on ne la déclarait pas avant sont utilistion".
yebmetch a dit :
Pour le problème SQL je crois pour le moment que les valeur que je recupere dans le formuaire sont nulles. Je vous prie de verifer si j'utilise les methodes qui conviennent.
oula ... je n'utilise pas le CRUD donc la doc vous aidera.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] création d'utilisateur avec jauth
Posted by laurentj on 01/10/2012 17:59
Bonjour,
Il y a deux soucis dans ce que tu as fait :
1) ce n'est pas _create qu'il faut redéfinir. Cette méthode est appelée pour préparer l'affichage de formulaire, pas pour sauvegarder. Tu confonds avec _beforeSaveCreate ou _afterSaveCreate.
Bref, ton $form est vide, donc ton objet user est vide, donc jAuth::saveNewUser plante...
2) tu aura quand même un problème en voulant sauver toi même. En effet, tu va vouloir donc passer par jAuth, qui effectuera une insertion de l'enregistrement du user. Mais le controleur CRUD va lui aussi le faire de son coté. Tu auras donc un problème (soit des enregistrements dupliqués, soit une collision d'id).
Conclusion : Le contrôleur CRUD n'est fait que pour s'appuyer sur une DAO. Si tu veux utiliser le mécanisme de jAuth pour gérer tes utilisateurs, n'utilise pas le controleur CRUD, fait ton propre contrôleur. Ou alors reste en full DAO. C'est ce que fait le module jauthdb_admin. Que tu pourrais d'ailleurs réutiliser plutôt que de réinventer la roue ;-) (tu peux indiquer le jforms à utiliser dans la conf du plugin jauth).
[Opened] création d'utilisateur avec jauth
Posted by yebmetch on 01/11/2012 16:54
Ok merci beaucoup, je pense qu'il faut que je revoie mon style. je vais finalement créer une nouvelle méthode dans mon contrôleur ou carrément un autre (comme propose le Messie ):). Encore merci!
- 1