createRow(); $association->handle = $handle; $association->macfunc = $macFunc; $association->secret = $secret; $association->expires = $expires; $association->save(); return true; } public function getAssociation($handle, &$macFunc, &$secret, &$expires) { $associations = new Model_Associations(); $association = $associations->getAssociationGivenHandle($handle); if (!$association) { return false; } if ($association->expires < time()) { return false; } $macFunc = $association->macfunc; $secret = $association->secret; $expires = $association->expires; return true; } /** * Always returns false, since we'll be adding user through the GUI interface only */ public function addUser($id, $password) { return false; } public function hasUser($id) { $users = new Users_Model_Users(); $user = $users->getUserWithOpenId($id); return $user? true : false; } public function checkUser($id, $password) { $auth = Zend_Auth::getInstance(); $db = Zend_Db::factory(Zend_Registry::get('config')->database); $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users', 'openid', 'password'); $authAdapter->setIdentity($id); $authAdapter->setCredential($password); $result = $auth->authenticate($authAdapter); if ($result->isValid()) { // we don't wanna login into community-id Zend_Auth::getInstance()->clearIdentity(); return true; } return false; } /** * Returns array of all trusted/untrusted sites for given user identified * by $id * * @param string $id user identity URL * @return array */ public function getTrustedSites($id) { $users = new Users_Model_Users(); $user = $users->getUserWithOpenId($id); $sites = new Model_Sites(); $trustedSites = array(); foreach ($sites->getTrusted($user) as $site) { $trustedSites[$site->site] = unserialize($site->trusted); } return $trustedSites; } /** * Stores information about trusted/untrusted site for given user * * @param string $id user identity URL * @param string $site site URL * @param mixed $trusted trust data from extension or just a boolean value. If null, delete site. I know, bad desing. Blame it on ZF. * @return bool */ public function addSite($id, $site, $trusted) { $users = new Users_Model_Users(); $user = $users->getUserWithOpenId($id); $sites = new Model_Sites(); $sites->deleteForUserSite($user, $site); if (!is_null($trusted)) { $siteObj = $sites->createRow(); $siteObj->user_id = $user->id; $siteObj->site = $site; $siteObj->creation_date = date('Y-m-d'); $siteObj->trusted = serialize($trusted); $siteObj->save(); } return true; } }