Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Autre chose svp. J'ai un utilisateur connecté et il peut modifier certaines de ses informations. Mais les changements effectuées ne seront visibles à l'utilisateur que pour la prochaine identification.
Bien sûre j'ai le code :
---------------------------------------------
// setup Zend_Auth adapter for a database table
Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry::get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('users');
$authAdapter->setIdentityColumn('username');
$authAdapter->setCredentialColumn('password');
// Set the input credential values to authenticate against
$authAdapter->setIdentity($username);
$authAdapter->setCredential($password);
// do the authentication
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
// success: store database row to auth's storage
// system. (Not the password though!)
$data = $authAdapter->getResultRowObject(null, 'password');
$auth->getStorage()->write($data);
------------------------------------------
Merci pour votre aide. et bonne journée.
Hors ligne
tu peux modifier dynamiquement ton user
dans mon cas mon utilisateur lorsqu'il s'est connecté, peut choisir un role parmis tous ceux auquel il a droit.
une fois le rôle choisit je l'ajoute à l'utilisateur
$auth = Zend_Auth::getInstance(); $data = $auth->getIdentity(); $data->profile = $newRole; $auth->getStorage()->write($data);
tu peux donc mettre à jour les différents champs de ton utilisateur en cour de route
A+JYT
Hors ligne
Bonjour,
Je suis un peu sur la meme partie pour mon application, c'est à dire l'auth via une table. Par contre pour une "bonne" pratique où mettez vous cette partie d'authentification ? j'avais penser au bootstrap mais il ne me semble pas que ce soit la bonne idée, du coup je l'ai mis dans mon "loginController" action "login".
Par contre depuis le bootstrap j'essayais de sauver la connexion à la base dans le registre mais je n'y avait pas accès dans les autres controleur, la aussi je ne sais pas pourquoi.
PS : ilyas09 je me suis permis de parler de mon problème car le tien est résolu par sekaijin et qu'il y a un lien
-- itecman
Hors ligne
j'ai un module login dédié à l'authentification (réutilisable d'apli en appli) il contient un contrôleur auth
qui possède les méthodes
indexAction logoutAction showLoginAction autoLoginAction checkLoginAction loginAction showRolesAction checkRoleAction getpwdAction sendpwdAction newpwdAction checkPwdAction setpwdAction
pour la base c'est dans le bootstrap
if ($config->get($parameters->fast->db)) { $params = $config->get($parameters->fast->db)->toArray(); Zend_Loader::loadClass('Zend_Db_Table'); // connexion $dbAdapter = Zend_Db::factory($parameters->fast->db, $params); Zend_Db_Table::setDefaultAdapter($dbAdapter); Zend_Registry::set('dbAdapter', $dbAdapter); }
A+JYT
Hors ligne