Example #1
0
// ////////////////////////////////////////////////////////////////////////////////////////////////////

$BASE = 0;
if(HEBERGEUR_INSTALLATION=='multi-structures')
{
  // Lecture d'un cookie sur le poste client servant à retenir le dernier établissement sélectionné si identification avec succès
  $BASE = (isset($_COOKIE[COOKIE_STRUCTURE])) ? Clean::entier($_COOKIE[COOKIE_STRUCTURE]) : 0 ;
  // Test si id d'établissement transmis dans l'URL
  // Historiquement "id" si connexion normale et "base" si connexion SSO
  // Nouveauté 07/2014 : pouvoir passer l'info de l'établissement comme valeur du paramètre SSO
  $BASE = ctype_digit($_GET['sso']) ? Clean::entier($_GET['sso'])  : $BASE ;
  $BASE = (isset($_GET['id']))      ? Clean::entier($_GET['id'])   : $BASE ;
  $BASE = (isset($_GET['base']))    ? Clean::entier($_GET['base']) : $BASE ;
  // Test si UAI d'établissement transmis dans l'URL
  // Nouveauté 07/2014 : pouvoir passer l'UAI de l'établissement comme valeur du paramètre SSO
  $trans_UAI = (isset($_GET['uai'])) ? Clean::uai($_GET['uai']) : ( tester_UAI($_GET['sso']) ? Clean::uai($_GET['sso']) : NULL ) ;
  $BASE = ($trans_UAI) ? DB_WEBMESTRE_PUBLIC::DB_recuperer_structure_id_base_for_UAI($trans_UAI) : $BASE ;
  if(!$BASE)
  {
    if($trans_UAI)
    {
      exit_error( 'Paramètre incorrect' /*titre*/ , 'Le numéro UAI transmis '.$trans_UAI.' n\'est pas référencé sur cette installation de SACoche : vérifiez son exactitude et si cet établissement est bien inscrit sur ce serveur.' /*contenu*/ );
    }
    else
    {
      exit_error( 'Donnée manquante' /*titre*/ , 'Référence de base manquante (le paramètre "base" ou "id" ou "sso" n\'a pas été transmis ou n\'est pas un entier et n\'a pas non plus été trouvé dans un Cookie).' /*contenu*/ );
    }
  }
  charger_parametres_mysql_supplementaires($BASE);
}
Example #2
0
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// En cas de multi-structures, il faut savoir dans quelle base récupérer les informations.
// Cette page est appelée par SACoche et dans ce cas c'est "base" qui est transmis.
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$BASE = 0;
if (HEBERGEUR_INSTALLATION == 'multi-structures') {
    // Lecture d'un cookie sur le poste client servant à retenir le dernier établissement sélectionné si identification avec succès
    $BASE = isset($_COOKIE[COOKIE_STRUCTURE]) ? Clean::entier($_COOKIE[COOKIE_STRUCTURE]) : 0;
    // Test si id d'établissement transmis dans l'URL ; historiquement "id" si connexion normale et "base" si connexion SSO
    $BASE = isset($_GET['id']) ? Clean::entier($_GET['id']) : $BASE;
    $BASE = isset($_GET['base']) ? Clean::entier($_GET['base']) : $BASE;
    // Test si UAI d'établissement transmis dans l'URL
    $BASE = isset($_GET['uai']) ? DB_WEBMESTRE_PUBLIC::DB_recuperer_structure_id_base_for_UAI(Clean::uai($_GET['uai'])) : $BASE;
    if (!$BASE) {
        if (isset($_GET['uai'])) {
            exit_error('Paramètre incorrect', 'Le numéro UAI transmis n\'est pas référencé sur cette installation de SACoche : vérifiez son exactitude et si cet établissement est bien inscrit sur ce serveur.');
        } else {
            exit_error('Donnée manquante', 'Référence de base manquante (le paramètre "base" ou "id" n\'a pas été transmis en GET ou n\'est pas un entier et n\'a pas non plus été trouvé dans un Cookie).');
        }
    }
    charger_parametres_mysql_supplementaires($BASE);
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Connexion à la base pour charger les paramètres du SSO demandé
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Mettre à jour la base si nécessaire
maj_base_structure_si_besoin($BASE);
$DB_TAB = DB_STRUCTURE_PUBLIC::DB_lister_parametres('"connexion_mode","cas_serveur_host","cas_serveur_port","cas_serveur_root","cas_serveur_url_login","cas_serveur_url_logout","cas_serveur_url_validate","gepi_url","gepi_rne","gepi_certificat_empreinte"');
 // Supprimer la 1e ligne
 $tab_nouvel_uai = array();
 $tab_nouvel_id = array();
 $nb_lignes_trouvees = 0;
 $tab_erreur = array('info' => array('nb' => 0, 'txt' => ' manquant d\'informations !'), 'geo' => array('nb' => 0, 'txt' => ' avec identifiant géographique incorrect !'), 'uai' => array('nb' => 0, 'txt' => ' avec UAI déjà présent ou en double ou incorrect !'), 'mail' => array('nb' => 0, 'txt' => ' avec adresse de courriel incorrecte !'), 'date' => array('nb' => 0, 'txt' => ' avec date d\'inscription incorrecte !'), 'fichier' => array('nb' => 0, 'txt' => ' avec nom de fichier de sauvegarde incorrect !'), 'id' => array('nb' => 0, 'txt' => ' avec identifiant de base déjà utilisé ou en double !'));
 foreach ($tab_lignes as $ligne_contenu) {
     $tab_elements = str_getcsv($ligne_contenu, $separateur);
     $tab_elements = array_slice($tab_elements, 0, 11);
     if (count($tab_elements) == 11) {
         $nb_lignes_trouvees++;
         list($export_id, $import_id, $geo_id, $localisation, $denomination, $uai, $contact_nom, $contact_prenom, $contact_courriel, $date, $fichier_nom) = $tab_elements;
         $import_id = Clean::entier($import_id);
         $geo_id = Clean::entier($geo_id);
         $localisation = Clean::texte($localisation);
         $denomination = Clean::texte($denomination);
         $uai = Clean::uai($uai);
         $contact_nom = Clean::nom($contact_nom);
         $contact_prenom = Clean::prenom($contact_prenom);
         $contact_courriel = Clean::courriel($contact_courriel);
         $_SESSION['tab_info'][$nb_lignes_trouvees] = array('import_id' => $import_id, 'geo_id' => $geo_id, 'localisation' => $localisation, 'denomination' => $denomination, 'uai' => $uai, 'contact_nom' => $contact_nom, 'contact_prenom' => $contact_prenom, 'contact_courriel' => $contact_courriel, 'date' => $date, 'fichier_nom' => $fichier_nom);
         // Vérifier la présence des informations
         if (!$geo_id || !$localisation || !$denomination || !$contact_nom || !$contact_prenom || !$contact_courriel || !$date || !$fichier_nom) {
             $tab_erreur['info']['nb']++;
         }
         // Vérifier que l'id géographique est correct
         if (!isset($tab_geo[$geo_id])) {
             $tab_erreur['geo']['nb']++;
         }
         // Vérifier que le n°UAI est disponible
         if ($uai) {
             if (!tester_UAI($uai) || isset($tab_nouvel_uai[$uai]) || DB_WEBMESTRE_WEBMESTRE::DB_tester_structure_UAI($uai)) {
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
    exit('Action désactivée pour la démo...');
}
$action = isset($_POST['action']) ? $_POST['action'] : '';
$geo1 = isset($_POST['f_geo1']) ? Clean::entier($_POST['f_geo1']) : 0;
$geo2 = isset($_POST['f_geo2']) ? Clean::entier($_POST['f_geo2']) : 0;
$geo3 = isset($_POST['f_geo3']) ? Clean::entier($_POST['f_geo3']) : 0;
$uai = isset($_POST['f_uai']) ? Clean::uai($_POST['f_uai']) : '';
$contact_nom = isset($_POST['f_contact_nom']) ? Clean::nom($_POST['f_contact_nom']) : '';
$contact_prenom = isset($_POST['f_contact_prenom']) ? Clean::prenom($_POST['f_contact_prenom']) : '';
$contact_courriel = isset($_POST['f_contact_courriel']) ? Clean::courriel($_POST['f_contact_courriel']) : '';
$sesamath_id = isset($_POST['f_sesamath_id']) ? Clean::entier($_POST['f_sesamath_id']) : 0;
$sesamath_uai = isset($_POST['f_sesamath_uai']) ? Clean::uai($_POST['f_sesamath_uai']) : '';
$sesamath_type_nom = isset($_POST['f_sesamath_type_nom']) ? Clean::texte($_POST['f_sesamath_type_nom']) : '';
$sesamath_key = isset($_POST['f_sesamath_key']) ? Clean::texte($_POST['f_sesamath_key']) : '';
$etablissement_denomination = isset($_POST['f_etablissement_denomination']) ? Clean::texte($_POST['f_etablissement_denomination']) : '';
$etablissement_adresse1 = isset($_POST['f_etablissement_adresse1']) ? Clean::texte($_POST['f_etablissement_adresse1']) : '';
$etablissement_adresse2 = isset($_POST['f_etablissement_adresse2']) ? Clean::texte($_POST['f_etablissement_adresse2']) : '';
$etablissement_adresse3 = isset($_POST['f_etablissement_adresse3']) ? Clean::texte($_POST['f_etablissement_adresse3']) : '';
$etablissement_telephone = isset($_POST['f_etablissement_telephone']) ? Clean::texte($_POST['f_etablissement_telephone']) : '';
$etablissement_fax = isset($_POST['f_etablissement_fax']) ? Clean::texte($_POST['f_etablissement_fax']) : '';
$etablissement_courriel = isset($_POST['f_etablissement_courriel']) ? Clean::texte($_POST['f_etablissement_courriel']) : '';
$etablissement_url = isset($_POST['f_etablissement_url']) ? Clean::url($_POST['f_etablissement_url']) : '';
$etablissement_langue = isset($_POST['f_etablissement_langue']) ? Clean::texte($_POST['f_etablissement_langue']) : '';
$mois_bascule_annee_scolaire = isset($_POST['f_mois_bascule_annee_scolaire']) ? Clean::entier($_POST['f_mois_bascule_annee_scolaire']) : 0;
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Mettre à jour le formulaire f_geo1 et le renvoyer en HTML
// ////////////////////////////////////////////////////////////////////////////////////////////////////
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */

if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');}

$action           = (isset($_POST['f_action']))           ? Clean::texte($_POST['f_action'])              : '';
$acces            = (isset($_POST['f_acces']))            ? Clean::texte($_POST['f_acces'])               : '';
$check            = (isset($_POST['f_check']))            ? Clean::entier($_POST['f_check'])              : 0;
$base_id          = (isset($_POST['f_base_id']))          ? Clean::entier($_POST['f_base_id'])            : 0;
$listing_base_id  = (isset($_POST['f_listing_id']))       ? $_POST['f_listing_id']                        : '';
$geo_id           = (isset($_POST['f_geo']))              ? Clean::entier($_POST['f_geo'])                : 0;
$localisation     = (isset($_POST['f_localisation']))     ? Clean::texte($_POST['f_localisation'])        : '';
$denomination     = (isset($_POST['f_denomination']))     ? Clean::texte($_POST['f_denomination'])        : '';
$uai              = (isset($_POST['f_uai']))              ? Clean::uai($_POST['f_uai'])                   : '';
$contact_nom      = (isset($_POST['f_contact_nom']))      ? Clean::nom($_POST['f_contact_nom'])           : '';
$contact_prenom   = (isset($_POST['f_contact_prenom']))   ? Clean::prenom($_POST['f_contact_prenom'])     : '';
$contact_courriel = (isset($_POST['f_contact_courriel'])) ? Clean::courriel($_POST['f_contact_courriel']) : '';
$courriel_envoi   = (isset($_POST['f_courriel_envoi']))   ? Clean::entier($_POST['f_courriel_envoi'])     : 0;
$courriel_copie   = (isset($_POST['f_courriel_copie']))   ? Clean::entier($_POST['f_courriel_copie'])     : 0;
$date_fr          = (isset($_POST['f_date_fr']))          ? Clean::date_fr($_POST['f_date_fr'])           : '' ;
$admin_id         = (isset($_POST['f_admin_id']))         ? Clean::entier($_POST['f_admin_id'])           : 0;

// On récupère les zones géographiques pour 2 raisons :
// => vérifier que l'identifiant transmis est cohérent
// => pouvoir retourner la cellule correspondante du tableau
if( ($action!='supprimer') && ($action!='lister_admin') && ($action!='initialiser_mdp') )
{
  $DB_TAB = DB_WEBMESTRE_WEBMESTRE::DB_lister_zones();
  foreach($DB_TAB as $DB_ROW)
Example #6
0
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
// Fichier appelé par un service externe
// Une clef est transmise ; elle est comparée avec celle stockée dans un fichier du dossier /webservices/ donc non visible dans les sources / le svn.
// Passage en POST des paramètres.
// Constantes / Configuration serveur / Autoload classes / Fonction de sortie
require './_inc/_loader.php';
// La classe Sesamail a besoin d'info pour définir son $default_sender.
require CHEMIN_FICHIER_CONFIG_INSTALL;
// Fonctions
require CHEMIN_DOSSIER_INCLUDE . 'fonction_divers.php';
// On récupère les paramètres ; on utilise REQUEST car selon les services les données sont reçues en POST en ou GET.
$WS_qui = isset($_REQUEST['qui']) ? Clean::texte($_REQUEST['qui']) : '';
$WS_cle = isset($_REQUEST['cle']) ? Clean::texte($_REQUEST['cle']) : '';
$WS_uai = isset($_REQUEST['uai']) ? Clean::uai($_REQUEST['uai']) : '';
$WS_uid = isset($_REQUEST['uid']) ? Clean::texte($_REQUEST['uid']) : '';
$WS_data = isset($_REQUEST['data']) ? $_REQUEST['data'] : '';
// tableau sérialisé
/**
 * Cas d'un service externe récupérant les données d'un user authentifié sur SACoche.
 * C'est un webservice un peu particulier qui ne requiert pas d'autre fichier de code dans CHEMIN_DOSSIER_WEBSERVICES.
 * Il y a en revanche quelques lignes de code associées dans le fichier /index.php
 */
if ($WS_qui == 'AutoMaths') {
    $WS_cle = Clean::param_chemin($WS_cle);
    if (!$WS_cle) {
        exit('Erreur : clef non transmise !');
    }
    $fichier = CHEMIN_DOSSIER_LOGINPASS . $WS_cle . '.txt';
    if (!is_file($fichier)) {
$f_action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : '';
$f_annee = isset($_POST['f_annee']) ? Clean::entier($_POST['f_annee']) : -1;
$f_convention_id = isset($_POST['f_convention_id']) ? Clean::entier($_POST['f_convention_id']) : 0;
$f_connexion_mode = isset($_POST['f_connexion_mode']) ? Clean::texte($_POST['f_connexion_mode']) : '';
$f_connexion_ref = isset($_POST['f_connexion_ref']) ? Clean::texte($_POST['f_connexion_ref']) : '';
$cas_serveur_host = isset($_POST['cas_serveur_host']) ? Clean::texte($_POST['cas_serveur_host']) : '';
$cas_serveur_port = isset($_POST['cas_serveur_port']) ? Clean::entier($_POST['cas_serveur_port']) : 0;
$cas_serveur_root = isset($_POST['cas_serveur_root']) ? Clean::texte($_POST['cas_serveur_root']) : '';
$cas_serveur_url_login = isset($_POST['cas_serveur_url_login']) ? Clean::texte($_POST['cas_serveur_url_login']) : '';
$cas_serveur_url_logout = isset($_POST['cas_serveur_url_logout']) ? Clean::texte($_POST['cas_serveur_url_logout']) : '';
$cas_serveur_url_validate = isset($_POST['cas_serveur_url_validate']) ? Clean::texte($_POST['cas_serveur_url_validate']) : '';
$serveur_host_subdomain = isset($_POST['serveur_host_subdomain']) ? Clean::texte($_POST['serveur_host_subdomain']) : '';
$serveur_host_domain = isset($_POST['serveur_host_domain']) ? Clean::texte($_POST['serveur_host_domain']) : '';
$serveur_port = isset($_POST['serveur_port']) ? Clean::entier($_POST['serveur_port']) : 0;
$gepi_saml_url = isset($_POST['gepi_saml_url']) ? Clean::texte($_POST['gepi_saml_url']) : '';
$gepi_saml_rne = isset($_POST['gepi_saml_rne']) ? Clean::uai($_POST['gepi_saml_rne']) : '';
$gepi_saml_certif = isset($_POST['gepi_saml_certif']) ? Clean::texte($_POST['gepi_saml_certif']) : '';
$f_first_time = isset($_POST['f_first_time']) ? Clean::texte($_POST['f_first_time']) : '';
require CHEMIN_DOSSIER_INCLUDE . 'tableau_sso.php';
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Mode de connexion (normal, SSO...)
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($f_action == 'enregistrer_mode_identification') {
    if (!isset($tab_connexion_info[$f_connexion_mode][$f_connexion_ref])) {
        exit_json(FALSE, 'Erreur avec les données transmises !');
    }
    if ($f_connexion_mode == 'cas' && $tab_connexion_info[$f_connexion_mode][$f_connexion_ref]['serveur_host_subdomain'] == '*' && !$serveur_host_subdomain) {
        exit_json(FALSE, 'Sous-domaine manquant !');
    }
    if ($f_connexion_mode == 'cas' && $tab_connexion_info[$f_connexion_mode][$f_connexion_ref]['serveur_port'] == '*' && !$serveur_port) {
        exit_json(FALSE, 'Port manquant !');