Пример #1
0
 protected function get_conf()
 {
     if (!isset($this->conf_ini)) {
         $this->conf_ini = toba_modelo_rest::get_ini_server($this->get_modelo_proyecto());
     }
     return $this->conf_ini;
 }
Пример #2
0
 protected function preProvideApi(Provision $feature)
 {
     $optionsFijas = $feature->getOptions();
     $autoconfigurar = isset($optionsFijas) && isset($optionsFijas['auto-configurar']) && $optionsFijas['auto-configurar'];
     $options = array();
     $modeloProyecto = $this->getModeloProyecto();
     $iniServer = \toba_modelo_rest::get_ini_server($modeloProyecto);
     $iniUsuarios = \toba_modelo_rest::get_ini_usuarios($modeloProyecto);
     if ($autoconfigurar && !$iniServer->existe_entrada("autenticacion")) {
         echo "Autoconfigurando API...";
         $iniServer->agregar_entrada("autenticacion", "digest");
         $iniServer->guardar();
     }
     if ($autoconfigurar && empty($iniUsuarios->get_entradas())) {
         $iniUsuarios->agregar_entrada($this->getProyectoId(), array("password" => md5(uniqid(rand(), true))));
         $iniUsuarios->guardar();
     }
     if ($iniServer->existe_entrada("autenticacion")) {
         $options['auth']['type'] = $iniServer->get_datos_entrada("autenticacion");
     }
     //TODO: esta tomando el primer usuario y lo manda. Es totalmente inseguro, esto tiene que ir hacia un modelo clave privada/crt
     $usuarios = $iniUsuarios->get_entradas();
     if (!empty($usuarios)) {
         foreach ($usuarios as $usuario => $datos) {
             $options['auth']['userId'] = $usuario;
             $options['auth']['userPass'] = $datos['password'];
             break;
         }
     }
     $endpoint = $this->getProyectoUrl() . '/rest/';
     if (isset($_SERVER['DOCKER_NAME'])) {
         //HACK: en el caso de docker la IP interna difiere de la externa. Se trata de sacar con la variable DOCKER_NAME
         $parts = parse_url($endpoint);
         if (isset($parts['host'])) {
             $parts['host'] = $_SERVER['DOCKER_NAME'];
         }
         if (isset($parts['port'])) {
             unset($parts['port']);
         }
         $endpoint = unparse_url($parts);
     }
     $feature->setEndpoint($endpoint);
     $feature->setOptions($options);
 }