Exemple #1
0
 /**
  * Конструктор класса
  * 
  * @param externalSession $sess объект сессии.
  */
 function __construct($sess)
 {
     parent::__construct($sess);
     require_once ABS_PATH . '/classes/session.php';
     session_start();
     $this->_oSession = $session;
 }
Exemple #2
0
 /**
  * Вызывается для проверки доступности авторизации данного пользователя.
  *
  * @param object $user пользователь (инициализированный экземпляр класса users).
  *
  * @return int код ошибки или 0 -- можно авторизировать.
  */
 protected function _authDenied($user)
 {
     $err = parent::_authDenied($user);
     if (!$err) {
         if (is_emp($user->role)) {
             $err = EXTERNAL_ERR_ONLYFRL;
         }
     }
     return $err;
 }
Exemple #3
0
 /**
  * Обработка запроса, отправка ответа клиенту.
  */
 public function handle()
 {
     $sName = 'http://www.free-lance.ru/external/api/' . $this->_sApi;
     if ($api = externalApi::getInst($sName, $this->_sess)) {
         $this->_aRespData = $api->invoke($this->_sMethod, $this->_aParams);
         $this->response();
     } else {
         $this->error(EXTERNAL_WARN_UNDEFINED_API);
     }
 }
Exemple #4
0
 /**
  * Обработка метода. Инициализирует api, соотвествующее пространству имен данного метода,
  * делает вызов, формирует тег результата.
  *
  * @param DOMNode $m тег метода.
  */
 public function handleMethod($m)
 {
     static $pos = 1;
     $name = $m->localName;
     $this->errorSetContext(array('tag' => $name, 'ns' => $m->namespaceURI, 'pos' => $pos));
     if ($api = externalApi::getInst($m->namespaceURI, $this->_sess)) {
         $args = null;
         foreach ($m->childNodes as $pr) {
             if ($pr->localName == self::XML_VAR_PRM_TAG) {
                 $args[] = $this->varXml2Php($pr);
             }
         }
         $result = $api->invoke($name, $args);
         if ($u = $m->getAttribute(self::XML_METHOD_U_ATT)) {
             $uatt = ' ' . self::XML_METHOD_U_ATT . '="' . $u . '"';
         }
         $xml_prefix = $api->getDefaultPrefix();
         $this->_responseBody .= "<{$xml_prefix}:{$name}{$uatt}>" . $this->varPhp2Xml($result, self::XML_VAR_RES_TAG) . "</{$xml_prefix}:{$name}>";
         $this->_responseXmlns[$xml_prefix] = $m->namespaceURI;
     } else {
         $this->warning(EXTERNAL_WARN_UNDEFINED_API);
     }
     $this->errorSetContext(null);
     ++$pos;
 }