Changeset 73630 in spip-zone


Ignore:
Timestamp:
Jun 16, 2013, 5:00:32 PM (6 years ago)
Author:
jean-marc.viglino@…
Message:

{MAJ} Gestion des autorisations dans le geoproxy (pour surcharge par le site)

Location:
_plugins_/spip_geoportail
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip_geoportail/action/geoproxy.php

    r57052 r73630  
    2020    // ----------------------------------------------------------
    2121    // global variables :
    22     global $debug, $debug_html, $sUrl, $sReponse, $proxy_host, $proxy_port, $content_types, $url_autorisees;
     22    global $debug, $debug_html, $sUrl, $sReponse, $proxy_host, $proxy_port, $content_types;
    2323    $debug= 0;
    2424    $debug_html= 0;
     
    4646        'text/html');
    4747    // ----------------------------------------------------------
    48     // Table des sites autorises (dans fichier Options)
    49     $geoportail_url_autorisees = $GLOBALS['geoportail_url_autorisees'];
    50     if ($geoportail_url_autorisees AND is_array($geoportail_url_autorisees))
    51                 $url_autorisees = $geoportail_url_autorisees;
    52         else $url_autorisees = array();
    53         // Pour les recherches par adresses
    54         $url_autorisees[] = "http://wxs.ign.fr/";
    55 
    5648    //
    5749    // écriture d'un message de log
     
    202194   
    203195
    204     // On n'autorise pas a se connecter a n'importe quoi
    205     function autoriser_connection_site ($url)
    206     {   global $url_autorisees;
    207                 $url = urldecode($url);
    208                 for ($i=0; $i<sizeof($url_autorisees); $i++)
    209                 {       if (substr($url, 0, strlen($url_autorisees[$i])) == $url_autorisees[$i]) return true;
    210                 }
    211                 return false;
    212     }
    213 
    214196// ----------------------------------------------------------
    215197// programme principal:
     198//
    216199function action_geoproxy_dist()
    217200{
     
    226209                if (!geoportail_good_referer('geoportail')) { echo "<error class='Bad Referer'/>"; exit; }
    227210                //-- Interdir l'acces a des sites non autorises
    228                 if (autoriser_connection_site($sUrl))
     211                include_spip('inc/geoportail_autorisations');
     212                if (autoriser('geoproxy', 'connecter', 0, NULL, Array('url'=>$sUrl)))
    229213                {       carp("Proxying:$sUrl");
    230214                        proxy($sUrl);
  • _plugins_/spip_geoportail/inc/geoportail_autorisations.php

    r59830 r73630  
    3838}
    3939
     40/** Autorisation pour le geoproxy
     41        => On n'autorise que les urls dans la variable globale $GLOBALS['geoportail_url_autorisees']
     42*/
     43function autoriser_geoproxy_dist ($faire, $type, $id, $qui, $opt)
     44{       // Table des sites autorises (dans fichier Options)
     45    $geoportail_url_autorisees = $GLOBALS['geoportail_url_autorisees'];
     46    if (!$geoportail_url_autorisees OR !is_array($geoportail_url_autorisees))
     47                $geoportail_url_autorisees = array();
     48        // Pour les recherches par adresses (obsolete)
     49        $url_autorisees[] = "http://wxs.ign.fr/";
     50       
     51        $url = urldecode($opt['url']);
     52        for ($i=0; $i<sizeof($url_autorisees); $i++)
     53        {       if (substr($url, 0, strlen($url_autorisees[$i])) == $url_autorisees[$i]) return true;
     54        }
     55        return false;
     56}
     57
    4058?>
Note: See TracChangeset for help on using the changeset viewer.