$id = isset($_POST['f_id']) ? Clean::entier($_POST['f_id']) : 0;
$id_ent = isset($_POST['f_id_ent']) ? Clean::texte($_POST['f_id_ent']) : '';
$id_gepi = isset($_POST['f_id_gepi']) ? Clean::texte($_POST['f_id_gepi']) : '';
$sconet_id = isset($_POST['f_sconet_id']) ? Clean::entier($_POST['f_sconet_id']) : 0;
$reference = isset($_POST['f_reference']) ? Clean::ref($_POST['f_reference']) : '';
$profil = isset($_POST['f_profil']) ? Clean::texte($_POST['f_profil']) : '';
$genre = isset($_POST['f_genre']) ? Clean::texte($_POST['f_genre']) : '';
$nom = isset($_POST['f_nom']) ? Clean::nom($_POST['f_nom']) : '';
$prenom = isset($_POST['f_prenom']) ? Clean::prenom($_POST['f_prenom']) : '';
$login = isset($_POST['f_login']) ? Clean::login($_POST['f_login']) : '';
$password = isset($_POST['f_password']) ? Clean::password($_POST['f_password']) : '';
$sortie_date = isset($_POST['f_sortie_date']) ? Clean::date_fr($_POST['f_sortie_date']) : '';
$box_login = isset($_POST['box_login']) ? Clean::entier($_POST['box_login']) : 0;
$box_password = isset($_POST['box_password']) ? Clean::entier($_POST['box_password']) : 0;
$box_date = isset($_POST['box_date']) ? Clean::entier($_POST['box_date']) : 0;
$courriel = isset($_POST['f_courriel']) ? Clean::courriel($_POST['f_courriel']) : '';
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Ajouter un nouveau personnel
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'ajouter' && $profil && isset(Html::$tab_genre['adulte'][$genre]) && $nom && $prenom && ($box_login || $login) && ($box_password || $password) && ($box_date || $sortie_date)) {
    // Vérifier le profil
    if (!isset($_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil]) || !in_array($_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil], array('professeur', 'directeur'))) {
        exit('Erreur : profil incorrect !');
    }
    // Vérifier que l'identifiant ENT est disponible (parmi tous les utilisateurs de l'établissement)
    if ($id_ent) {
        if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('id_ent', $id_ent)) {
            exit('Erreur : identifiant ENT déjà utilisé !');
        }
    }
    // Vérifier que l'identifiant GEPI est disponible (parmi tous les utilisateurs de l'établissement)
Exemplo n.º 2
0
/****************************************************************************************************
 * Récupérer les adresses mails des personnels et les affectations aux classes / groupes.
 ****************************************************************************************************/

$tab_annuaire = Laclasse::get_info_from_annuaire( $WS_uai , 'users' , TRUE /*exit_if_error*/ , TRUE /*with_details*/ );
if(!empty($tab_annuaire['data']))
{
  foreach($tab_annuaire['data'] as $tab_infos)
  {
    $user_id = Clean::entier($tab_infos['id']);
    // Cas d'un personnel : on ajoute login et email
    if(isset($tab_personnels[$user_id]))
    {
      $tab_personnels[$user_id]['login'] = Clean::lower($tab_infos['login']);
      $tab_personnels[$user_id]['email'] = Clean::courriel($tab_infos['emails'][0]['adresse']);
      // Cas d'un prof : on ajoute classes et groupes
      if( ($tab_personnels[$user_id]['profil']=='ENS') && (!empty($tab_infos['enseigne_regroupements'])) )
      {
        foreach($tab_infos['enseigne_regroupements'] as $tab_infos_groupe)
        {
          // Il y a des profs sur plusieurs établissements...
          if($tab_infos_groupe['etablissement_code_uai']==$WS_uai)
          {
            $groupe_id = Clean::entier($tab_infos_groupe['id']);
            if( ($tab_infos_groupe['type']=='CLS') && (isset($tab_classes[$groupe_id])) )
            {
              $tab_personnels[$user_id]['classes'][] = $groupe_id;
            }
            else if( ($tab_infos_groupe['type']=='GRP') && (isset($tab_groupes[$groupe_id])) )
            {
 $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)) {
                 $tab_erreur['uai']['nb']++;
             }
             $tab_nouvel_uai[$uai] = TRUE;
 */

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)
  {
    $tab_geo[$DB_ROW['geo_id']] = array( 'ordre'=>$DB_ROW['geo_ordre'] , 'nom'=>$DB_ROW['geo_nom'] );
  }
 foreach ($DB_TAB as $DB_ROW) {
     $tab_eleves_actuels[$DB_ROW['user_id']] = $DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom'];
     $tab_responsabilites[$DB_ROW['user_id']] = 0;
 }
 //
 // On passe les utilisateurs en revue : on mémorise leurs infos, les adresses trouvées, les enfants trouvés
 //
 $tab_genre = array('' => 'I', 'M.' => 'M', 'MME' => 'F', 'Mlle' => 'F');
 $tab_adresses_uniques = array();
 foreach ($tab_lignes as $ligne_contenu) {
     $tab_elements = str_getcsv($ligne_contenu, $separateur);
     if (count($tab_elements) > $numero_max) {
         $genre = isset($tab_genre[$tab_elements[$tab_numero_colonne['genre']]]) ? $tab_genre[$tab_elements[$tab_numero_colonne['genre']]] : 'I';
         $nom = Clean::nom($tab_elements[$tab_numero_colonne['nom']]);
         $prenom = Clean::prenom($tab_elements[$tab_numero_colonne['prenom']]);
         $courriel = Clean::courriel($tab_elements[$tab_numero_colonne['courriel']]);
         $adresse = Clean::adresse($tab_elements[$tab_numero_colonne['adresse']]);
         $codepostal = Clean::codepostal($tab_elements[$tab_numero_colonne['codepostal']]);
         $commune = Clean::commune($tab_elements[$tab_numero_colonne['commune']]);
         $pays = Clean::pays($tab_elements[$tab_numero_colonne['pays']]);
         if ($nom != '' && $prenom != '') {
             $tab_enfants = array();
             for ($num_enfant = 0; $num_enfant < $nb_enfants_maxi; $num_enfant++) {
                 if (!isset($tab_elements[$tab_numero_colonne['enfant_nom'][$num_enfant]]) || !isset($tab_elements[$tab_numero_colonne['enfant_prenom'][$num_enfant]])) {
                     break;
                 }
                 $enfant_nom = Clean::nom($tab_elements[$tab_numero_colonne['enfant_nom'][$num_enfant]]);
                 $enfant_prenom = Clean::prenom($tab_elements[$tab_numero_colonne['enfant_prenom'][$num_enfant]]);
                 $enfant_id = array_search($enfant_nom . ' ' . $enfant_prenom, $tab_eleves_actuels);
                 if ($enfant_id) {
                     $tab_responsabilites[$enfant_id]++;
Exemplo n.º 6
0
}
else
{
  $DB_TAB = DB_STRUCTURE_PUBLIC::DB_lister_parametres('"webmestre_denomination"');
  if(!empty($DB_TAB))
  {
    $structure_denomination = $DB_TAB[0]['parametre_valeur'];
  }
  else
  {
    exit_error( 'Base incomplète' /*titre*/ , 'Base de l\'établissement incomplète ou non encore installée !' /*contenu*/ );
  }
}

// Récupération d'une éventuelle adresse mail de qqun qui signalerait un envoi anormal
$courriel = (isset($_GET['courriel'])) ? Clean::courriel($_GET['courriel']) : '' ;

$message = '';
if($courriel)
{
  $message .= 'Bonjour,'."\r\n";
  $message .= 'J\'ai reçu à mon adresse '.$courriel.' un courriel en provenance de votre instance SACoche alors que je ne n\'ai pas de compte sur ce logiciel.'."\r\n";
  $message .= 'Sans doute la conséquence une adresse erronée dans votre base d\'utilisateurs ?'."\r\n";
  $message .= 'Merci d\'y regarder et me tenir au courant.'."\r\n";
  $message .= 'Cordialement.'."\r\n";
}

// Protection contre les robots (pour éviter des envois intempestifs de courriels)
list($html_imgs,$captcha_soluce) = captcha();
$_SESSION['TMP']['CAPTCHA'] = array(
  'TIME'   => $_SERVER['REQUEST_TIME'] ,
Exemplo n.º 7
0
 * soit la version 3 de cette licence, soit (à votre gré) toute version ultérieure.
 * 
 * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE :
 * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER.
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * 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 !');}
if($_SESSION['SESAMATH_ID']==ID_DEMO) {exit('Action désactivée pour la démo...');}

$action   = (isset($_POST['f_action']))   ? Clean::texte($_POST['f_action'])      : '';
$courriel = (isset($_POST['f_courriel'])) ? Clean::courriel($_POST['f_courriel']) : NULL;

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Mettre à jour son adresse e-mail (éventuellement vide pour la retirer)
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( ($action=='courriel') && ($courriel!==NULL) )
{
  // Vérifier que l'utilisateur a les droits de la modifier / retirer
  if( ($_SESSION['USER_EMAIL_ORIGINE']=='admin') && ($_SESSION['USER_PROFIL_TYPE']!=='administrateur') && !test_user_droit_specifique($_SESSION['DROIT_MODIFIER_EMAIL']) )
  {
    exit_json( FALSE , 'Erreur : droit insuffisant, contactez un administrateur !' );
  }
  // Vérifier le domaine du serveur mail seulement en mode multi-structures car ce peut être sinon une installation sur un serveur local non ouvert sur l'extérieur.
  if($courriel)
  {
     Clean::pays($tab_elements[$tab_numero_colonne['pays_1']]) ,
   );
   $nb_lien_responsabilite++;
   $tab_adresses_uniques[ implode('#',$tab_users_fichier['adresse'][$sconet_num_resp1]) ] = TRUE;
 }
 $sconet_num_resp2 = ( $tab_elements[$tab_numero_colonne['sconet_num_2']] && ($tab_elements[$tab_numero_colonne['sconet_num_2']]!='Non saisi') ) ? Clean::entier($tab_elements[$tab_numero_colonne['sconet_num_2']]) : NULL ;
 if($sconet_num_resp2)
 {
   $tab_users_fichier['sconet_id'   ][$sconet_num_resp2] = 0;
   $tab_users_fichier['sconet_num'  ][$sconet_num_resp2] = $sconet_num_resp2;
   $tab_users_fichier['reference'   ][$sconet_num_resp2] = '';
   $tab_users_fichier['profil_sigle'][$sconet_num_resp2] = 'TUT' ;
   $tab_users_fichier['genre'       ][$sconet_num_resp2] = isset($tab_genre[$tab_elements[$tab_numero_colonne['genre_2']]]) ? $tab_genre[$tab_elements[$tab_numero_colonne['genre_2']]] : 'I' ;
   $tab_users_fichier['nom'         ][$sconet_num_resp2] = Clean::nom($tab_elements[$tab_numero_colonne['nom_2']]);
   $tab_users_fichier['prenom'      ][$sconet_num_resp2] = Clean::prenom($tab_elements[$tab_numero_colonne['prenom_2']]);
   $tab_users_fichier['courriel'    ][$sconet_num_resp2] = Clean::courriel($tab_elements[$tab_numero_colonne['courriel_2']]);
   $tab_users_fichier['enfant'      ][$sconet_num_resp2][$tab_eleves_actuels[$sconet_num_eleve]] = 2;
   $tab_users_fichier['adresse'     ][$sconet_num_resp2] = array(
     Clean::adresse($tab_elements[$tab_numero_colonne['adresse_ligne1_2']]) ,
     Clean::adresse($tab_elements[$tab_numero_colonne['adresse_ligne2_2']]) ,
     Clean::adresse($tab_elements[$tab_numero_colonne['adresse_ligne3_2']]) ,
     '' ,
     Clean::commune($tab_elements[$tab_numero_colonne['code_postal_2']]) , // pas un nombre entier à  l'étranger
     Clean::commune($tab_elements[$tab_numero_colonne['commune_2']]) ,
     Clean::pays($tab_elements[$tab_numero_colonne['pays_2']]) ,
   );
   $nb_lien_responsabilite++;
   $tab_adresses_uniques[ implode('#',$tab_users_fichier['adresse'][$sconet_num_resp2]) ] = TRUE;
   // Correctif pour obtenir la vraie valeur de "commune_2"
   $tab_users_fichier['adresse'][$sconet_num_resp2][5] = mb_substr( $tab_users_fichier['adresse'][$sconet_num_resp2][5] , mb_strlen($tab_users_fichier['adresse'][$sconet_num_resp2][4])+1 );
 }