public static function validate($username, $hash, $rememberme = false) { if (!$username) { return false; } // TODO: try to make only one sql request $adapter = Zend_Db_Table_Abstract::getDefaultAdapter(); $authAdapter = new Zend_Auth_Adapter_DbTable($adapter, 'users', 'pseudo', 'password'); $authAdapter->setIdentity($username)->setCredential($hash); $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($authAdapter); if (!$result->isValid()) { self::$_current = null; return false; } $userid = $authAdapter->getResultRowObject('id')->id; $userMapper = new Syj_Model_UserMapper(); $user = new Syj_Model_User(); if (!$userMapper->find($userid, $user)) { throw new Zend_Exception(); } $request = Zend_Controller_Front::getInstance()->getRequest(); if (!$request->getCookie('syj_user') or !$request->getCookie('syj_hashpass')) { if ($rememberme) { // cookie will be valid for 2 weeks $time = time() + 14 * 60 * 24 * 60; } else { $time = 0; } setcookie("syj_user", $username, $time, "", "", false, true); setcookie("syj_hashpass", $hash, $time, "", "", false, true); } self::$_current = $user; return true; }
protected function _itemFromRow(Syj_Model_Pending $item, Zend_Db_Table_Row $row) { $item->setId($row->id)->setHash($row->hash)->setNotificationsNumber($row->notifications_number)->setCreationTime($row->creation_time); if (!$item->getUser()) { $user = new Syj_Model_User(); $userMapper = new Syj_Model_UserMapper(); if ($userMapper->find($row->userid, $user)) { $item->setUser($user); } } return $item; }
protected function _itemFromRow(Syj_Model_Path $item, Zend_Db_Table_Row $row) { $decoder = new gisconverter\WKT(); $geom = $decoder->geomFromText($row->wkt); $item->setId($row->id)->setGeom($geom)->setTitle($row->title)->setUrlComp($row->urlcomp)->setCreatorIp($row->creator_ip); if (!$item->getCreator()) { $user = new Syj_Model_User(); $userMapper = new Syj_Model_UserMapper(); if ($userMapper->find($row->creator, $user)) { $item->setCreator($user); } } return $item; }