Example #1
0
 /**
  * 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;
 }
Example #2
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;
}
Example #3
0
 /**
  * Raise an xmlrpc server fault
  *
  * @param string|\Exception $fault
  * @param int $code
  * @return Server\Fault
  */
 public function fault($fault = null, $code = 404)
 {
     if (!$fault instanceof \Exception) {
         $fault = (string) $fault;
         if (empty($fault)) {
             $fault = 'Unknown Error';
         }
         $fault = new Server\Exception\RuntimeException($fault, $code);
     }
     return Server\Fault::getInstance($fault);
 }
Example #4
0
 /**
  * __toString() test
  */
 public function test__toString()
 {
     $dom = new \DOMDocument('1.0', 'UTF-8');
     $r = $dom->appendChild($dom->createElement('methodResponse'));
     $f = $r->appendChild($dom->createElement('fault'));
     $v = $f->appendChild($dom->createElement('value'));
     $s = $v->appendChild($dom->createElement('struct'));
     $m1 = $s->appendChild($dom->createElement('member'));
     $m1->appendChild($dom->createElement('name', 'faultCode'));
     $cv = $m1->appendChild($dom->createElement('value'));
     $cv->appendChild($dom->createElement('int', 411));
     $m2 = $s->appendChild($dom->createElement('member'));
     $m2->appendChild($dom->createElement('name', 'faultString'));
     $sv = $m2->appendChild($dom->createElement('value'));
     $sv->appendChild($dom->createElement('string', 'Testing fault'));
     $xml = $dom->saveXML();
     $e = new Server\Exception\RuntimeException('Testing fault', 411);
     $fault = Server\Fault::getInstance($e);
     $this->assertEquals(trim($xml), trim($fault->__toString()));
 }