public function testGetLastSuccessfulAdapterReturnsAdapter() { $adapter1 = new Zym_Auth_Adapter_Mock(Zend_Auth_Result::FAILURE); $adapter2 = new Zym_Auth_Adapter_Mock(Zend_Auth_Result::SUCCESS); $chain = new Zym_Auth_Adapter_Chain(); $chain->addAdapter($adapter1)->addAdapter($adapter2); $result = $chain->authenticate(); $this->assertSame($adapter2, $chain->getLastSuccessfulAdapter()); }
<?php // Adapters to authenticate with $dbAdapter = new Zend_Auth_Adapter_DbTable($db, 'users'); $dbAdapter->setIdentityColumn('username')->setCredentialColumn('password')->setIdentity('john')->setCredential('xxx'); $ldapAdpater = new Zend_Auth_Adapter_Ldap(array(), 'john', 'xxx'); // Setup chain adapter $chain = new Zym_Auth_Adapter_Chain(); $chain->addAdapter($dbAdapter)->addAdapter($ldapAdpater); // Authenticate with Zend_Auth to persist $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($chain); // Did we pass? if ($result->isValid()) { // Get the successful adapter $successAdapter = $chain->getLastSuccessfulAdapter(); if ($successAdapter === $dbAdapter) { // Do something like store user info in session } else { if ($successAdapter === $ldapAdpater) { // Do something like store user info in session } } }