/**
  * Index page
  */
 public function indexAction()
 {
     // get user info by api key
     if (null != ($apiKey = $this->getRequest()->getQuery()->api_key)) {
         if (null != ($userInfo = UserIdentityService::getUserInfo($apiKey, UserModelBase::USER_INFO_BY_API_KEY))) {
             // fill the user's info
             if ($userInfo['status'] == UserModelBase::STATUS_APPROVED) {
                 $userIdentity = [];
                 foreach ($userInfo as $fieldName => $value) {
                     $userIdentity[$fieldName] = $value;
                 }
                 // init user identity
                 UserIdentityService::setCurrentUserIdentity($userIdentity);
             }
         }
     }
     XmlRpcServerFault::attachFaultException('XmlRpc\\Exception\\XmlRpcActionDenied');
     $server = new XmlRpcServer();
     // get xmlrpc classes
     if (null != ($classes = $this->getModel()->getClasses())) {
         $server->sendArgumentsToAllMethods(false);
         foreach ($classes as $class) {
             $server->setClass($class['path'], $class['namespace'], $this->getServiceLocator());
         }
     }
     $server->handle();
     // disable layout and view script
     return $this->response;
 }
Beispiel #2
0
 /**
  * Zend_XmlRpc_Server_Fault::detachFaultException() test
  */
 public function testDetachFaultException()
 {
     Server\Fault::attachFaultException('ZendTest\\XmlRpc\\Server\\Exception');
     $e = new Exception('test exception', 411);
     $fault = Server\Fault::getInstance($e);
     $this->assertEquals('test exception', $fault->getMessage());
     $this->assertEquals(411, $fault->getCode());
     Server\Fault::detachFaultException('ZendTest\\XmlRpc\\Server\\Exception');
     $fault = Server\Fault::getInstance($e);
     $this->assertEquals('Unknown error', $fault->getMessage());
     $this->assertEquals(404, $fault->getCode());
     $exceptions = array('ZendTest\\XmlRpc\\Server\\Exception', 'ZendTest\\XmlRpc\\Server\\Exception2', 'ZendTest\\XmlRpc\\Server\\Exception3');
     Server\Fault::attachFaultException($exceptions);
     foreach ($exceptions as $class) {
         $e = new $class('test exception', 411);
         $fault = Server\Fault::getInstance($e);
         $this->assertEquals('test exception', $fault->getMessage());
         $this->assertEquals(411, $fault->getCode());
     }
     Server\Fault::detachFaultException($exceptions);
     foreach ($exceptions as $class) {
         $e = new $class('test exception', 411);
         $fault = Server\Fault::getInstance($e);
         $this->assertEquals('Unknown error', $fault->getMessage());
         $this->assertEquals(404, $fault->getCode());
     }
 }
Beispiel #3
0
function plugin_xmlrpc_action()
{
    global $use_pingback;
    //$headers = Header::getHeaders('application/xml');
    header('Content-Type: application/xml');
    $server = new XmlRpcServer();
    XmlRpcServer\Fault::attachFaultException('Services\\Exception');
    if (!DEBUG && !XmlRpcServer\Cache::get(XMLRPC_CACHE, $server)) {
        if ($use_pingback) {
            $server->setClass('PukiWiki\\Service\\PingBack', 'pingback');
        }
        $server->setClass('PukiWiki\\Service\\WikiRpc', 'wiki');
        XmlRpcServer\Cache::save(XMLRPC_CACHE, $server);
    }
    //Header::writeResponse($headers, 200, $server->handle());
    echo $server->handle();
    exit;
}