Example #1
0
 * @license      http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License (GPL)
 * @package      core
 * @since        XOOPS
 * @author       http://www.xoops.org The XOOPS Project
 * @author       Sina Asghari (aka stranger) <*****@*****.**>
 * @version      $Id: xmlrpc.php 10806 2010-11-20 17:09:38Z phoenyx $
 */
define('XOOPS_XMLRPC', 1);
include './mainfile.php';
error_reporting(0);
include_once ICMS_LIBRARIES_PATH . '/xml/rpc/xmlrpctag.php';
include_once ICMS_LIBRARIES_PATH . '/xml/rpc/xmlrpcparser.php';

icms::$logger->disableLogger();

$response = new XoopsXmlRpcResponse();
$parser = new XoopsXmlRpcParser(rawurlencode($GLOBALS['HTTP_RAW_POST_DATA']));
if (!$parser->parse())
{
	$response->add(new XoopsXmlRpcFault(102));
} else {
	$module_handler = icms::handler('icms_module');
	$module =& $module_handler->getByDirname('news');
	if (!is_object($module))
	{
		$response->add(new XoopsXmlRpcFault(110));
	} else {
		$methods = explode('.', $parser->getMethodName());
		switch($methods[0])
		{
			case 'blogger':
restore_error_handler();
include_once XOOPS_ROOT_PATH . '/class/xml/rpc/xmlrpctag.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcparser.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/logic/xmlrpclogic.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/base/logicfactory.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcfault.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcrequest.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcresponse.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/view/xmlrpcview.class.php';
include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/view/xmlrpcviewfactory.class.php';
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', 'syslog');
$allow_methods = array('XooNIps.getChildIndexes', 'XooNIps.getFile', 'XooNIps.getFileMetadata', 'XooNIps.getIndex', 'XooNIps.getItem', 'XooNIps.getItemPermission', 'XooNIps.getItemtype', 'XooNIps.getItemtypes', 'XooNIps.getPreference', 'XooNIps.getRootIndex', 'XooNIps.getSimpleItems', 'XooNIps.login', 'XooNIps.logout', 'XooNIps.putItem', 'XooNIps.removeItem', 'XooNIps.searchItem', 'XooNIps.updateItem2');
$rpc_response = new XoopsXmlRpcResponse();
$parser = new XooNIpsXmlRpcParser(file_get_contents("php://input"));
if (!$parser->parse()) {
    $rpc_response->add(new XooNIpsXmlRpcFault(102));
} else {
    if (!in_array($parser->getMethodName(), $allow_methods)) {
        $rpc_response->add(new XooNIpsXmlRpcFault(107));
    } else {
        global $xoopsModule;
        $module =& $xoopsModule;
        $methods = explode('.', $parser->getMethodName());
        if ($methods[0] == 'XooNIps') {
            $request = new XooNIpsXmlRpcRequest($methods[1], $parser->getParam());
            $response = new XooNIpsXmlRpcResponse();
            $factory =& XooNIpsXmlRpcLogicFactory::getInstance();
            $logic =& $factory->create($methods[1]);
Example #3
0
 function test_getRecentPosts()
 {
     $title = '<title>Title</title>';
     $hometext = '<hometext>Hometext</hometext>';
     $moretext = '<moretext>Moretext</moretext>';
     $categories = '<categories>10</categories>';
     $text = $title . $hometext . $moretext . $categories;
     $params = array('', '', 'admin', 'adminadmin', $text);
     $response = new XoopsXmlRpcResponse();
     $module = new XoopsModule();
     $instance = new $this->myClass($params, $response, $module);
     $instance->getRecentPosts();
     $msg = $response->render();
     if (false !== strpos($msg, '<name>faultString</name><value>Module not found')) {
         $this->markTestSkipped();
     }
     $this->markTestIncomplete();
 }
Example #4
0
 function test_setTemplate()
 {
     $params = array(null, null, 'admin', 'goodpassword', null, null);
     $response = new XoopsXmlRpcResponse();
     $module = new XoopsModule();
     $instance = new $this->myClass($params, $response, $module);
     $result = $instance->setTemplate();
     $msg = $response->render();
     $expected = '<?xml version="1.0"?>' . '<methodResponse><fault><value><struct>' . '<member><name>faultCode</name><value>107</value></member>' . "<member><name>faultString</name><value>Method not supported\n</value></member>" . '</struct></value></fault></methodResponse>';
     $this->assertSame($expected, $msg);
     $params = array(null, null, 'admin', 'WRONG_password', null, null);
     $response = new XoopsXmlRpcResponse();
     $module = new XoopsModule();
     $instance = new $this->myClass($params, $response, $module);
     $result = $instance->setTemplate();
     $msg = $response->render();
     $expected = '<?xml version="1.0"?>' . '<methodResponse><fault><value><struct>' . '<member><name>faultCode</name><value>104</value></member>' . "<member><name>faultString</name><value>User authentication failed\n</value></member>" . '</struct></value></fault></methodResponse>';
     $this->assertSame($expected, $msg);
 }