retrieve_user_id($username); $token = vtws_getActiveToken($userId); if($token == null){ throw new WebServiceException(WebServiceErrorCode::$INVALIDTOKEN,"Specified token is invalid or expired"); } $accessKey = vtws_getUserAccessKey($userId); if($accessKey == null){ throw new WebServiceException(WebServiceErrorCode::$ACCESSKEYUNDEFINED,"Access key for the user is undefined"); } $accessCrypt = md5($token.$accessKey); if(strcmp($accessCrypt,$pwd)!==0){ throw new WebServiceException(WebServiceErrorCode::$INVALIDUSERPWD,"Invalid username or password"); } $user = $user->retrieveCurrentUserInfoFromFile($userId); if($user->status != 'Inactive'){ return $user; } throw new WebServiceException(WebServiceErrorCode::$AUTHREQUIRED,'Given user is inactive'); } function vtws_getActiveToken($userId){ global $adb; $sql = "select * from vtiger_ws_userauthtoken where userid=? and expiretime >= ?"; $result = $adb->pquery($sql,array($userId,time())); if($result != null && isset($result)){ if($adb->num_rows($result)>0){ return $adb->query_result($result,0,"token"); } } return null; } function vtws_getUserAccessKey($userId){ global $adb; $sql = "select * from vtiger_users where id=?"; $result = $adb->pquery($sql,array($userId)); if($result != null && isset($result)){ if($adb->num_rows($result)>0){ return $adb->query_result($result,0,"accesskey"); } } return null; } ?>