/** * Creates a session for an anonymous user * * @author KnowledgeTree Team * @access public * @param KTAPI $ktapi Instance of the KTAPI object * @param string $ip The users ip address * @param string $app Optional. The originating application type - Default is ws => webservices | webapp => The web application * @return KTAPI_Session|PEAR_Error Returns a session object | a PEAR_Error on failure */ function &start_session(&$ktapi, $ip = null, $app = 'ws') { $user =& User::get(-2); if (is_null($user) || PEAR::isError($user) || $user === false || !$user->isAnonymous()) { return new KTAPI_Error(_kt("The anonymous user could not be found."), $user); } $authenticated = true; $config =& KTConfig::getSingleton(); $allow_anonymous = $config->get('session/allowAnonymousLogin', false); if (!$allow_anonymous) { return new PEAR_Error(_kt('Anonymous user not allowed')); } if (is_null($ip)) { $ip = '127.0.0.1'; //$ip = KTAPI_Session::resolveIP(); } list($session, $sessionid) = KTAPI_UserSession::_check_session($user, $ip, $app); if (PEAR::isError($sessionid)) { return $sessionid; } $session =& new KTAPI_AnonymousSession($ktapi, $user, $session, $sessionid, $ip); return $session; }
public function login() { if (!$this->isLoggedIn()) { $user = $this->kt->get_user_object_by_username($this->request['auth']['user']); if (!PEAR::isError($user)) { $pass = $user->getPassword(); $passHash = md5($pass . $this->token); //$this->request['auth']['passhash']=md5(md5($this->request['auth']['pass']).$this->token); $this->setDebug('Expected passHash', $passHash); $this->setDebug('Serverside Token', $this->token); $this->setDebug('Expected Password', $pass); if ($passHash == $this->request['auth']['passhash']) { $uSession = KTAPI_UserSession::_check_session($user, null, $this->request['auth']['appType']); $this->response['debug']['pass_confirmed_sess_detail'] = $uSession; if (!PEAR::isError($uSession)) { $this->session =& new KTAPI_UserSession($this->kt, $user, $uSession[0], $uSession[1], NULL); $this->session = $this->kt->get_active_session($session_id, null, $application); $this->session_id = $uSession[0]; $this->response['debug']['session'] = $this->session; $this->response['status']['session_id'] = $uSession[0]; $this->response['debug']['isLoggedIn'] = $this->isLoggedIn() ? 'True' : 'False'; $this->kt = new KTAPI(); } else { //handle the session error } } } $this->response['debug']['isLoggedIn2'] = $this->isLoggedIn() ? 'True' : 'False'; } return $this->isLoggedIn(); }
protected function creatNewSession() { $this->ret->addDebug('Auth', array('Attempting to Create a New Session')); if ($this->checkCredentials()) { $ssession = KTAPI_UserSession::_check_session($this->getUserObject(), $this->remoteIp, $this->auth['appType']); $session = $ssession[0]; $this->ret->addDebug('####################################Session Created : ' . $session); $this->auth['session'] = session_id(); $this->ret->setStatus('session_id', session_id()); return true; } else { return false; } }