Exemplo n.º 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;
 }
Exemplo n.º 2
0
 public function testSettingClassWithArgumentsOnlyPassingToConstructor()
 {
     $this->_server->setClass('ZendTest\\XmlRpc\\TestClass', 'test', 'a1', 'a2');
     $this->_server->sendArgumentsToAllMethods(false);
     $this->assertFalse($this->_server->sendArgumentsToAllMethods());
     $request = new Request();
     $request->setMethod('test.test4');
     $request->setParams(array('foo'));
     $response = $this->_server->handle($request);
     $this->assertNotInstanceOf('Zend\\XmlRpc\\Fault', $response);
     $this->assertSame(array('test1' => 'a1', 'test2' => 'a2', 'arg' => array('foo')), $response->getReturnValue());
 }
Exemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function serve()
 {
     if (!function_exists('xmlrpc_server_create')) {
         throw new \Exception('xmlrpc extension is not installed. Please enable this extension.');
         exit;
     }
     if (!class_exists('Zend\\XmlRpc\\Server')) {
         throw new \Exception("Zend\\XmlRpc\\Server is required. " . "please install it using 'composer require zendframework/zend-xmlrpc'");
         exit;
     }
     if (isset($_GET['xmlrpc']) || isset($_GET['XMLRPC'])) {
         $server = new Server();
         $server->sendArgumentsToAllMethods(false);
         $server->setClass(get_class($this->serviceHandler), 'DBInstance', $this->authentication, $this->connectionStrings, $this->logDir);
         echo $server->handle();
     }
 }