Example #1
0
function delete_user($login)
{
    $sql = "SELECT source FROM " . TABLE_PREFIX . "_utilisateurs\n\t    WHERE login LIKE '{$login}'";
    $res = grr_sql_query($sql);
    $row = grr_sql_row($res, 0);
    $source = $row[0];
    if ($source == 'ext') {
        // Si l'utilisateur avait été créé automatiquement, on le
        // supprime
        // Cf. admin_user.php l99 et l203
        $sql = "DELETE FROM " . TABLE_PREFIX . "_utilisateurs WHERE login='******'";
        if (grr_sql_command($sql) < 0) {
            fatal_error(1, "<p>" . grr_sql_error());
        } else {
            grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_mailuser_room  WHERE login='******'");
            grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_user_area      WHERE login='******'");
            grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_user_room      WHERE login='******'");
            grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_useradmin_area WHERE login='******'");
            grr_sql_command("DELETE FROM " . TABLE_PREFIX . "_j_useradmin_site WHERE login='******'");
        }
        // Fin de la session
        grr_closeSession($_GET['auto']);
    }
    // sinon c'est source="local": on le garde et il y a toujours accès
    // classique login/mot de passe).
}
Example #2
0
function jQuery_DatePicker($typeDate)
{
    if (@file_exists('../include/connect.inc.php')) {
        $racine = "../";
    } else {
        $racine = "./";
    }
    if ($typeDate == 'rep_end' && isset($_GET['id'])) {
        $res = grr_sql_query("SELECT repeat_id FROM " . TABLE_PREFIX . "_entry WHERE id=" . $_GET['id'] . ";");
        if (!$res) {
            fatal_error(0, grr_sql_error());
        }
        $repeat_id = implode('', grr_sql_row($res, 0));
        $res = grr_sql_query("SELECT rep_type, end_date, rep_opt, rep_num_weeks, start_time, end_time FROM " . TABLE_PREFIX . "_repeat WHERE id={$repeat_id}");
        if (!$res) {
            fatal_error(0, grr_sql_error());
        }
        if (grr_sql_count($res) == 1) {
            $row6 = grr_sql_row($res, 0);
            $date = date_parse(date("Y-m-d H:i:s", $row6[1]));
            $day = $date['day'];
            $month = $date['month'];
            $year = $date['year'];
        } else {
            if (isset($_GET['day'])) {
                $day = $_GET['day'];
            } else {
                $day = date("d");
            }
            if (isset($_GET['month'])) {
                $month = $_GET['month'];
            } else {
                $month = date("m");
            }
            if (isset($_GET['year'])) {
                $year = $_GET['year'];
            } else {
                $year = date("Y");
            }
        }
    } else {
        global $start_day, $start_month, $start_year, $end_day, $end_month, $end_year;
        if (isset($_GET['day'])) {
            $day = $_GET['day'];
        } else {
            $day = date("d");
        }
        if (isset($start_day) && $typeDate == 'start') {
            $day = $start_day;
        } elseif (isset($end_day) && $typeDate == 'end') {
            $day = $end_day;
        }
        if (isset($_GET['month'])) {
            $month = $_GET['month'];
        } else {
            $month = date("m");
        }
        if (isset($start_month) && $typeDate == 'start') {
            $month = $start_month;
        } elseif (isset($end_month) && $typeDate == 'end') {
            $month = $end_month;
        }
        if (isset($_GET['year'])) {
            $year = $_GET['year'];
        } else {
            $year = date("Y");
        }
        if (isset($start_year) && $typeDate == 'start') {
            $year = $start_year;
        } elseif (isset($end_year) && $typeDate == 'end') {
            $year = $end_year;
        }
    }
    genDateSelector("" . $typeDate . "_", "{$day}", "{$month}", "{$year}", "");
    echo '<input type="hidden" disabled="disabled" id="mydate_' . $typeDate . '">' . PHP_EOL;
    echo '<script>' . PHP_EOL;
    echo '	$(function() {' . PHP_EOL;
    echo '$.datepicker.setDefaults( $.datepicker.regional[\'fr\'] );' . PHP_EOL;
    echo '	$(\'#mydate_' . $typeDate . '\').datepicker({' . PHP_EOL;
    echo '		beforeShow: readSelected, onSelect: updateSelected,' . PHP_EOL;
    echo '		showOn: \'both\', buttonImageOnly: true, buttonImage: \'images/calendar.png\',buttonText: "Choisir la date"});' . PHP_EOL;
    echo '		function readSelected()' . PHP_EOL;
    echo '		{' . PHP_EOL;
    echo '			$(\'#mydate_' . $typeDate . '\').val($(\'#' . $typeDate . '_day\').val() + \'/\' +' . PHP_EOL;
    echo '			$(\'#' . $typeDate . '_month\').val() + \'/\' + $(\'#' . $typeDate . '_year\').val());' . PHP_EOL;
    echo '			return {};' . PHP_EOL;
    echo '		}' . PHP_EOL;
    echo '		function updateSelected(date)' . PHP_EOL;
    echo '		{' . PHP_EOL;
    echo '			$(\'#' . $typeDate . '_day\').val(date.substring(0, 2));' . PHP_EOL;
    echo '			$(\'#' . $typeDate . '_month\').val(date.substring(3, 5));' . PHP_EOL;
    echo '			$(\'#' . $typeDate . '_year\').val(date.substring(6, 10));' . PHP_EOL;
    echo '		}' . PHP_EOL;
    echo '	});' . PHP_EOL;
    echo '</script>' . PHP_EOL;
}
Example #3
0
    echo "</pre>\n";
}

echo "<table cellspacing=\"0\" border=\"1\" width=\"100%\"><tr>";

# We need to know what all the rooms area called, so we can show them all
# pull the data from the db and store it. Convienently we can print the room
# headings and capacities at the same time

$sql = "select room_name, capacity, id, description, statut_room from ".TABLE_PREFIX."_room where area_id='".$area."' order by order_display, room_name";
$res = grr_sql_query($sql);

# It might be that there are no rooms defined for this area.
# If there are none then show an error and dont bother doing anything
# else
if (! $res) fatal_error(0, grr_sql_error());
if (grr_sql_count($res) == 0)
{
    echo "<h1>".get_vocab("no_rooms_for_area")."</h1>";
    grr_sql_free($res);
} else {
    // Affichage de la première ligne contenant le nom des jours (lundi, mardi, ...) et les dates ("10 juil", "11 juil", ...)
    echo "<th style=\"width:10%;\">&nbsp;</th>\n"; // Première cellule vide
    $t = $time;
    $num_week_day = $weekstarts; // Pour le calcul des jours à afficher
    for ($weekcol = 0; $weekcol < 7; $weekcol++)
    {
        $num_day = strftime("%d", $t);
        $temp_month = strftime("%m", $t);
        $temp_month2 = strftime("%b", $t);
        $temp_year = strftime("%Y", $t);
Example #4
0
                $starttime = mktime($morningstarts, 0, 0, $month, $day, $year);
                $endtime = mktime($eveningends, 0, $resolution, $month, $day, $year);
                // Pour toutes les dates bon précédement enregistrées, on efface toutes les résa en conflit
                if (!in_array($n, $day_old)) {
                    $sql = "select id from " . TABLE_PREFIX . "_room";
                    $res = grr_sql_query($sql);
                    if ($res) {
                        for ($i = 0; $row = grr_sql_row($res, $i); $i++) {
                            $result += grrDelEntryInConflict($row[0], $starttime, $endtime, 0, 0, 1);
                        }
                    }
                }
                // On enregistre la valeur dans ".TABLE_PREFIX."_calendar
                $sql = "INSERT INTO " . TABLE_PREFIX . "_calendar set DAY='" . $n . "'";
                if (grr_sql_command($sql) < 0) {
                    fatal_error(0, "<p>" . grr_sql_error());
                }
            }
            $day++;
        }
        $month++;
        if ($month == 13) {
            $year++;
            $month = 1;
        }
    }
}
echo '<p>', get_vocab("les_journees_cochees_sont_ignorees"), '</p>', PHP_EOL;
echo '<table class="table table-bordered">', PHP_EOL;
$basetime = mktime(12, 0, 0, 6, 11 + $weekstarts, 2000);
for ($i = 0; $i < 7; $i++) {
Example #5
0
    $duration = $row[4] - $row[3];
    $etype = $row[5];
    $room_id = $row[6];
    $entry_type = $row[7];
    $rep_id = $row[8];
    $option_reservation = $row[9];
    $jours_c = $row[10];
    $clef = $row[14];
    $courrier = $row[15];
    $modif_option_reservation = 'n';
    if ($entry_type >= 1) {
        $sql = 'SELECT rep_type, start_time, end_date, rep_opt, rep_num_weeks, end_time, type, name, beneficiaire, description
		FROM ' . TABLE_PREFIX . "_repeat WHERE id='" . protect_data_sql($rep_id) . "'";
        $res = grr_sql_query($sql);
        if (!$res) {
            fatal_error(1, grr_sql_error());
        }
        if (grr_sql_count($res) != 1) {
            fatal_error(1, get_vocab('repeat_id') . $rep_id . get_vocab('not_found'));
        }
        $row = grr_sql_row($res, 0);
        grr_sql_free($res);
        $rep_type = $row[0];
        if ($rep_type == 2) {
            $rep_num_weeks = $row[4];
        }
        if ($edit_type == 'series') {
            $start_day = (int) strftime('%d', $row[1]);
            $start_month = (int) strftime('%m', $row[1]);
            $start_year = (int) strftime('%Y', $row[1]);
            $start_hour = (int) strftime('%H', $row[1]);
Example #6
0
# On construit alors un tableau de la forme :
# d[weekday][slot][x], où x = id, color, data.
# [slot] is based at 0 for midnight, but only slots within the hours of
# interest (morningstarts : eveningends) are filled in.
# [id] and [data] are only filled in when the meeting should be labeled,
# which is once for each meeting on each weekday.
# Note: weekday here is relative to the $weekstarts configuration variable.
# If 0, then weekday=0 means Sunday. If 1, weekday=0 means Monday.

$first_slot = $morningstarts * 3600 / $resolution;
$last_slot = ($eveningends * 3600 + $eveningends_minutes * 60) / $resolution;

if ($debug_flag) echo "<br />DEBUG: query=$sql <br />first_slot=$first_slot - last_slot=$last_slot\n";

$res = grr_sql_query($sql);
if (! $res) echo grr_sql_error();
else for ($i = 0; ($row = grr_sql_row($res, $i)); $i++)
{
    if ($debug_flag)
        echo "<br />DEBUG: result $i, id $row[4], starts $row[0] (".affiche_date($row[0])."), ends $row[1] (".affiche_date($row[1]).")\n";

    # Fill in slots for the meeting. Start at the meeting start time or
    # week start (which ever is later), and end one slot before the meeting
    # end time or week end (which ever is earlier).
    # Note: int casts on database rows for min and max is needed for PHP3.

    // Pour la réservation en cours, on détermine le début de la journée $debut_jour
    $month_current = date("m",$row[0]);
    $day_current = date("d",$row[0]);
    $year_current  = date("Y",$row[0]);
    $debut_jour=mktime($morningstarts,0,0,$month_current,$day_current,$year_current);
Example #7
0
/**
 * Open a new session
 *
 * Check the provided login and password
 * Register data from the database to the session cookie
 * Log the session
 *
 * Returns 1 if login succeeded, >= 1 otherwise
 *
 * @_login              string                  Login of the user
 * @_password           string                  Password
 *
 * @return              bool                    The session is open
 */
function grr_opensession($_login, $_password, $_user_ext_authentifie = '', $tab_login=array(), $tab_groups=array())
{
    // Initialisation de $auth_ldap
    $auth_ldap = 'no';
    // Initialisation de $auth_imap
    $auth_imap = 'no';
    // Initialisation de $est_authentifie_sso
    $est_authentifie_sso = FALSE;
    /*
    ***********************************************************
    Premier gros morçeau !
    On traite le cas où l'utilisateur a été authentifié par SSO
    ***********************************************************
    */
    if ($_user_ext_authentifie != '') {
        $est_authentifie_sso = TRUE;
        // Statut par défaut
        $_statut = "";
        $sso = getSettingValue("sso_statut");
        if ($sso == "cas_visiteur") $_statut = "visiteur";  // cette ligne n'est pas vraiment utile quand le statut est recalculé plus bas par effectuer_correspondance_profil_statut
        else if ($sso == "cas_utilisateur") $_statut = "utilisateur";   // cette ligne n'est pas vraiment utile quand le statut est recalculé plus bas par effectuer_correspondance_profil_statut
        else if ($sso == "lemon_visiteur") $_statut = "visiteur";
        else if ($sso == "lemon_utilisateur") $_statut = "utilisateur";
        else if ($sso == "http_visiteur") $_statut = "visiteur";
        else if ($sso == "http_utilisateur") $_statut = "utilisateur";
        else if ($sso == "lasso_visiteur") $_statut = "visiteur";
        else if ($sso == "lasso_utilisateur") $_statut = "utilisateur";
        else if ($sso == "lcs") {
            if ($_user_ext_authentifie == "lcs_eleve") $_statut = getSettingValue("lcs_statut_eleve");
            if ($_user_ext_authentifie == "lcs_non_eleve") $_statut = getSettingValue("lcs_statut_prof");
            $temoin_grp_ok="non";
            if (trim(getSettingValue("lcs_liste_groupes_autorises")) == "") {
                $temoin_grp_ok="oui";
            } else {
                $tab_grp_autorise=explode(";",getSettingValue("lcs_liste_groupes_autorises"));
                for($i=0;$i<count($tab_grp_autorise);$i++) {
                    if (in_array($tab_grp_autorise[$i],$tab_groups)) {
                        $temoin_grp_ok="oui";
                    }
                }
            }
            // Si l'utilisateur n'appartient pas aux groupes LCS autorisés
            if ($temoin_grp_ok != 'oui') {
                 return "5";
                 die();
            }

        }
        $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
        from ".TABLE_PREFIX."_utilisateurs
        where login = '******' and ";
        if ($_user_ext_authentifie != 'lasso') $sql .= " password = '' and ";
        $sql .= " etat != 'inactif'";
        $res_user = grr_sql_query($sql);
        $num_row = grr_sql_count($res_user);
        if ($num_row == 1) {  // L'utilisateur est présent dans la base locale
            if ($sso == "lcs") { // Mise à jour des données
                $nom_user = $tab_login["nom"];
                $email_user = $tab_login["email"];
                $prenom_user = $tab_login["fullname"];
                // On met à jour
                $sql = "UPDATE ".TABLE_PREFIX."_utilisateurs SET
                nom='".protect_data_sql($nom_user)."',
                prenom='".protect_data_sql($prenom_user)."',
                email='".protect_data_sql($email_user)."'
                where login='******'";
            } else if ($_user_ext_authentifie == "cas") {
                $nom_user = $tab_login["user_nom"];
                $email_user = $tab_login["user_email"];
                $prenom_user = $tab_login["user_prenom"];
                if ($nom_user != '') {
                   //  On détecte si Nom, Prénom ou Email ont changé,
                   // Si c'est le cas, on met à jour les champs
                   $req = grr_sql_query("select nom, prenom, email from ".TABLE_PREFIX."_utilisateurs where login ='******'");
                   $res = mysql_fetch_array($req);
                   $nom_en_base = $res[0];
                   $prenom_en_base = $res[1];
                   $email_en_base = $res[2];
                   if(  (strcmp($nom_en_base, $nom_user) != 0)
                    ||  (strcmp($prenom_en_base, $prenom_user) != 0)
                    ||  (strcmp($email_en_base, $email_user) != 0)  ) {
                      // Si l'un des champs est différent, on met à jour les champs
                      $sql = "UPDATE ".TABLE_PREFIX."_utilisateurs SET
                      nom='".protect_data_sql($nom_user)."',
                      prenom='".protect_data_sql($prenom_user)."',
                      email='".protect_data_sql($email_user)."'
                      where login='******'";
                      if (grr_sql_command($sql) < 0) {
                        fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());
                        return "2";
                        die();
                      }
                      /* Comme les données de la base on été changés, on doit remettre à jour la variable $row,
                      Pour que les données mises en sessions soient les bonnes
                      on récupère les données de l'utilisateur
                      */
                      $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
                      from ".TABLE_PREFIX."_utilisateurs
                      where login = '******' and
                      source = 'ext' and
                      etat != 'inactif'";
                      $res_user = grr_sql_query($sql);
                      $num_row = grr_sql_count($res_user);
                      if ($num_row == 1) {
                          // on récupère les données de l'utilisateur dans $row
                          $row = grr_sql_row($res_user,0);
                      } else {
                          return "2";
                          die();
                      }
                   }
               }
            }
            if (grr_sql_command($sql) < 0)
                {fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());
                return "2";
                die();
            }
            // on récupère les données de l'utilisateur dans $row
            $row = grr_sql_row($res_user,0);
        } else {
            // L'utilisateur n'est pas présent dans la base locale ou est inactif
            //  ou possède un mot de passe (utilisateur local GRR)
            // On teste si un utilisateur porte déjà le même login
            $test = grr_sql_query1("select login from ".TABLE_PREFIX."_utilisateurs where login = '******'");
            if ($test != '-1') {
                // le login existe déjà : impossible d'importer le profil.
                return "3";
                die();
            } else {
                # Aucun utilisateur dans la base locale ne porte le même login. On peut continuer la procédure d'importation
                # 1er cas : LCS.
                if ($sso == "lcs") {
                    if ($_statut == 'aucun') {
                        // L'utilisateur n'est pas autorisé à se connecter à GRR
                        return "5";
                        die();
                    } else {
                        $nom_user = $tab_login["nom"];
                        $email_user = $tab_login["email"];
                        $prenom_user = $tab_login["fullname"];
                     }
                # 2ème cas : SSO lasso.
                } else if ($sso == "lasso_visiteur" or $sso == "lasso_utilisateur") {
                    if (!empty($tab_login)) {
                        $nom_user = $tab_login["nom"];
                        $email_user = $tab_login["email"];
                        $prenom_user = $tab_login["fullname"];
                     }
                # 3ème cas : SSO CAS.
                } else if ($_user_ext_authentifie == "cas" && !empty($tab_login)) {
                    // Cas d'une authentification CAS
                    $nom_user = $tab_login["user_nom"];
                    $email_user = $tab_login["user_email"];
                    $prenom_user = $tab_login["user_prenom"];
                    $code_fonction_user = $tab_login["user_code_fonction"];
                    $libelle_fonction_user = $tab_login["user_libelle_fonction"];
                    $language_user = $tab_login["user_language"];
                    $default_style_user = $tab_login["user_default_style"];
                    if (getSettingValue("sso_ac_corr_profil_statut")=='y')
                        $_statut = effectuer_correspondance_profil_statut($code_fonction_user, $libelle_fonction_user);

                /*
                   CAS d'un LDAP avec SSO CAS ou avec SSO Lemonldap
                   on tente de récupérer des infos dans l'annuaire avant d'importer le profil dans GRR
                */
                } else if ((getSettingValue("ldap_statut") != '') and (@function_exists("ldap_connect")) and (@file_exists("include/config_ldap.inc.php")) and ($_user_ext_authentifie=='cas')) {
                    // On initialise au cas où on ne réussisse pas à récupérer les infos dans l'annuaire.
                    $l_nom=$_login;
                    $l_email='';
                    $l_prenom='';
                    include "config_ldap.inc.php";
                    // Connexion à l'annuaire
                    $ds = grr_connect_ldap($ldap_adresse,$ldap_port,$ldap_login,$ldap_pwd,$use_tls);
                    $user_dn = grr_ldap_search_user($ds, $ldap_base,getSettingValue("ldap_champ_recherche"), $_login, $ldap_filter, "no");

                    // Test with login and password of the user
                    if (!$ds) {
                        $ds = grr_connect_ldap($ldap_adresse,$ldap_port,$_login,$_password,$use_tls);
                    }
                    if ($ds) {
                        $result = @ldap_read($ds, $user_dn, "objectClass=*", array(getSettingValue("ldap_champ_nom"),getSettingValue("ldap_champ_prenom"),getSettingValue("ldap_champ_email")));
                    }
                    if ($result) {
                        // Recuperer les donnees de l'utilisateur
                        $info = @ldap_get_entries($ds, $result);
                        if (is_array($info)) {
                            for ($i = 0; $i < $info["count"]; $i++) {
                                $val = $info[$i];
                                if (is_array($val)) {
                                  if (isset($val[getSettingValue("ldap_champ_nom")][0]))
                                      $l_nom = ucfirst($val[getSettingValue("ldap_champ_nom")][0]);
                                  else
                                      $l_nom=iconv("ISO-8859-1","utf-8","Nom à préciser");
                                  if (isset($val[getSettingValue("ldap_champ_prenom")][0]))
                                      $l_prenom = ucfirst($val[getSettingValue("ldap_champ_prenom")][0]);
                                  else
                                      $l_prenom=iconv("ISO-8859-1","utf-8","Prénom à préciser");
                                  if (isset($val[getSettingValue("ldap_champ_email")][0]))
                                      $l_email = $val[getSettingValue("ldap_champ_email")][0];
                                  else
                                      $l_email='';
                                }
                            }
                        }
                        // Convertir depuis UTF-8 (jeu de caracteres par defaut)
                        if ((function_exists("utf8_decode")) and (getSettingValue("ConvertLdapUtf8toIso")=="y")) {
                          $l_email = utf8_decode($l_email);
                          $l_nom = utf8_decode($l_nom);
                          $l_prenom = utf8_decode($l_prenom);
                        }
                    }
                    $nom_user = $l_nom;
                    $email_user = $l_email;
                    $prenom_user = $l_prenom;

                /*
                   CAS ou :
                   * LDAP n'est pas configuré,
                   * il peut s'agit d'une authentification "SSO CAS",  "SSO Lemonldap" mais ce n'est alors pas normal
                   * ou bien il s'agit d'une authentification "HTTP"
                */
                } else {
                   //definition du nom
                   $nom_user="";
                   if (getSettingValue("http_champ_nom")!="") {
                      $_nom_user = getSettingValue("http_champ_nom");
                      if (isset($_SERVER["$_nom_user"]))
                          $nom_user = $_SERVER["$_nom_user"];
                   }
                   if ($nom_user =="")
                      $nom_user=$_login;

                   //definition email :
                   $email_user="";
                   if (getSettingValue("http_champ_email")) {
                      $_email_user = getSettingValue("http_champ_email");
                      if (isset($_SERVER["$_email_user"]))
                          $email_user = $_SERVER["$_email_user"];
                      //on verifie le statut si domain statut est actif :
                      if ($email_user != "") {
                          if ((getSettingValue("http_sso_domain")) and (getSettingValue("http_sso_domain")!="")) {
                              //explode du mail :
                              $domaine=explode("@",$email_user);
                              if (isset($domaine[1])) {
                                if($domaine[1] == getSettingValue("http_sso_domain"))
                                    if (getSettingValue("http_sso_statut_domaine")!="")
                                      $_statut=getSettingValue("http_sso_statut_domaine");
                              }
                          }
                      }
                   }

                   //definition du prenom :
                   $prenom_user="";
                   if (getSettingValue("http_champ_prenom")) {
                      $_prenom_user = getSettingValue("http_champ_prenom");
                      if (isset($_SERVER["$_prenom_user"]))
                          $prenom_user = $_SERVER["$_prenom_user"];
                   }

		            }
                // On insère le nouvel utilisateur
                $sql = "INSERT INTO ".TABLE_PREFIX."_utilisateurs SET
                nom='".protect_data_sql($nom_user)."',
                prenom='".protect_data_sql($prenom_user)."',
                login='******',
                password='',
                statut='".$_statut."',
                email='".protect_data_sql($email_user)."',
                etat='actif',";
                if (isset($default_style_user) and ($default_style_user!=""))
                  $sql .= "default_style='".$default_style_user."',";
                if (isset($language_user) and ($language_user!=""))
                  $sql .= "default_language='".$language_user."',";
                $sql .= "source='ext'";

		            if (grr_sql_command($sql) < 0)
                    {fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());
                    return "2";
                    die();
                }
                // on récupère les données de l'utilisateur
                $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
                from ".TABLE_PREFIX."_utilisateurs
                where login = '******' and
                source = 'ext' and
                etat != 'inactif'";
                $res_user = grr_sql_query($sql);
                $num_row = grr_sql_count($res_user);
                if ($num_row == 1) {
                    // on récupère les données de l'utilisateur dans $row
                    $row = grr_sql_row($res_user,0);
               } else {
                   return "2";
                   die();
               }
            }
        }
    /*
     ************************
     On traite le cas NON SSO
     -> LDAP sans SSO
     -> Imap
     ************************
    */
    } else {
        $passwd_md5 = md5($_password);
        $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
        from ".TABLE_PREFIX."_utilisateurs
        where login = '******' and
        password = '******'";
        $res_user = grr_sql_query($sql);
        $num_row = grr_sql_count($res_user);
        /*
        On est toujours dans le cas NON SSO - L'utilisateur n'est pas présent dans la base locale
        */
        if ($num_row != 1) {
            /*
            Cas où Ldap a été configuré
            ---------------------------
            On tente une authentification ldap
            */
            if ((getSettingValue("ldap_statut") != '') and (@function_exists("ldap_connect")) and (@file_exists("include/config_ldap.inc.php"))) {
                //$login_search = ereg_replace("[^-@._[:space:][:alnum:]]", "", $_login);
                $login_search = preg_replace("/[^\-@._[:space:]a-zA-Z0-9]/", "", $_login);
                if ($login_search != $_login) {
                    return "6"; //L'identifiant comporte des caratères non autorisés
                    exit();
                }
	          // Convertir depuis UTF-8 (jeu de caracteres par defaut)
				    if ((function_exists("utf8_decode")) and (getSettingValue("ConvertLdapUtf8toIso")=="y")) {
					    $_password=utf8_encode($_password);
				    }

                $user_dn = grr_verif_ldap($_login, $_password);
                if ($user_dn=="error_1") {
                    //  chemin invalide ou filtre add mauvais
                    return "7";
                    exit();
                } else if ($user_dn=="error_2") {
                    // aucune entrée ne correspond au filtre
                    return "8";
                    exit();
                } else if ($user_dn=="error_3") {
                    // plus de deux résultats dans la recherche -> Echec de l'authentification ldap
                    return "9";
                    exit();
                } else if ($user_dn) {
                    $auth_ldap = 'yes'; // Voir suite plus bas
                } else {
                    // Echec de l'authentification ldap
                    return "4";
                    exit();
                }
          /*
          Cas où Imap a été configuré
          ---------------------------
          */
          } elseif ((getSettingValue("imap_statut") != '') and (@function_exists("imap_open")) and (@file_exists("include/config_imap.inc.php"))) {
          //  $login_search = ereg_replace("[^-@._[:space:][:alnum:]]", "", $_login);
            $login_search = preg_replace("/[^\-@._[:space:]a-zA-Z0-9]/", "", $_login);
            if ($login_search != $_login) {
              return "6"; //L'identifiant comporte des carat?res non autoris?s
              exit();
            }
            $user_imap=grr_verif_imap($_login,$_password);
            if($user_imap){
              $auth_imap='yes';
              imap_close($user_imap);
            } else {
              return "10";
              exit();
            }
          } else {
              return "2";
              exit();
          }
        } else {
            /*
            On est toujours dans le cas NON SSO
            Cas d'un utilisateur présent dans la base
            On récupère les données de l'utilisateur dans $row
            */
            $row = grr_sql_row($res_user,0);
            // S'il s'agit d'un utilisateur inactif, on s'arrête là
            if ($row[12] == 'inactif') {
                return "5";
                exit();
            }
        }
    // Fin du cas NON SSO
    }

    // Cette partie ne concerne que les utilisateurs pour lesquels l'authentification ldap ci-dessus a réussi
    // On tente d'interroger la base ldap pour obtenir des infos sur l'utilisateur
    if ($auth_ldap == 'yes') {
        // Cas particulier des serveur SE3
        // se3_liste_groupes_autorises est vide -> pas de restriction
        if (trim(getSettingValue("se3_liste_groupes_autorises")) == "") {
            $temoin_grp_ok="oui";
        } else {
            // se3_liste_groupes_autorises n'est pas vide -> on teste si le $_login appartient à un des groupes
            $temoin_grp_ok="non";
            $tab_grp_autorise=explode(";",getSettingValue("se3_liste_groupes_autorises"));
            for($i=0;$i<count($tab_grp_autorise);$i++) {
                if(se3_grp_members($tab_grp_autorise[$i],$_login)=="oui"){
                    $temoin_grp_ok="oui";
                }
            }
        }
        if ($temoin_grp_ok!="oui") {
            // Connexion à GRR non autorisée.
            return "5";
            die();
        }
        // Fin cas particulier des serveur SE3


        // on regarde si un utilisateur ldap ayant le même login existe déjà
        $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
        from ".TABLE_PREFIX."_utilisateurs
        where login = '******' and
        source = 'ext' and
        etat != 'inactif'";
        $res_user = grr_sql_query($sql);
        $num_row = grr_sql_count($res_user);
        if ($num_row == 1) {
            // un utilisateur ldap ayant le même login existe déjà
            // Lire les infos sur l'utilisateur depuis LDAP
            $user_info = grr_getinfo_ldap($user_dn,$_login,$_password);
            // Update GRR database
            $sql2 = "UPDATE ".TABLE_PREFIX."_utilisateurs SET
            nom='".protect_data_sql($user_info[0])."',
            prenom='".protect_data_sql($user_info[1])."',
            email='".protect_data_sql($user_info[2])."'
            where login='******'";
            if (grr_sql_command($sql2) < 0) {
                fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());
                return "2";
                die();
            }
            // on récupère les données de l'utilisateur dans $row
            $res_user = grr_sql_query($sql);
            $row = grr_sql_row($res_user,0);
        } else {
             // pas d'utilisateur ldap ayant le même login dans la base GRR
             // Lire les infos sur l'utilisateur depuis LDAP
            $user_info = grr_getinfo_ldap($user_dn,$_login,$_password);
            // On teste si un utilisateur porte déjà le même login
            $test = grr_sql_query1("select login from ".TABLE_PREFIX."_utilisateurs where login = '******'");
            if ($test != '-1') {
                // authentification bonne mais le login existe déjà : impossible d'importer le profil.
                return "3";
                die();
            } else {
                // On insère le nouvel utilisateur
                $sql = "INSERT INTO ".TABLE_PREFIX."_utilisateurs SET
                nom='".protect_data_sql($user_info[0])."',
                prenom='".protect_data_sql($user_info[1])."',
                login='******',
                password='',
                statut='".getSettingValue("ldap_statut")."',
                email='".protect_data_sql($user_info[2])."',
                etat='actif',
                source='ext'";
                if (grr_sql_command($sql) < 0)
                    {fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());
                    return "2";
                    die();
                }

                $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
                from ".TABLE_PREFIX."_utilisateurs
                where login = '******' and
                source = 'ext' and
                etat != 'inactif'";
                $res_user = grr_sql_query($sql);
                $num_row = grr_sql_count($res_user);
                if ($num_row == 1) {
                    // on récupère les données de l'utilisateur dans $row
                    $row = grr_sql_row($res_user,0);
               } else {
                   return "2";
                   die();
               }
            }
        }
    }
  	/*                                IMAP
	  ***************************************************
    Cette partie ne concerne que les utilisateurs pour lesquels l'authentification imap a réussi
    */
    if($auth_imap == 'yes'){
    // on regarde si un utilisateur imap ayant le meme login existe deja
        $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
        from ".TABLE_PREFIX."_utilisateurs
        where login = '******' and
        source = 'ext' and
        etat != 'inactif'";
        $res_user = grr_sql_query($sql);
        $num_row = grr_sql_count($res_user);
        if ($num_row == 1) {
            // un utilisateur imap ayant le meme login existe deja
            // on recupere les donnees de l'utilisateur dans $row
            $row = grr_sql_row($res_user,0);
        } else {
             // pas d'utilisateur imap ayant le m?me login dans la base GRR
             // Lire les infos sur l'utilisateur depuis imap
		         include "config_imap.inc.php";
             // Connexion ? l'annuaire
             $conn_imap = grr_connect_imap($imap_adresse,$imap_port,$_login,$_password,$imap_type,$imap_ssl,$imap_cert,$imap_tls);
             if($conn_imap){
               // Test with login and password of the user
               $l_nom="";
               $l_prenom="";
               $l_email=$_login."@".$imap_domaine;
               imap_close($conn_imap);
            }
            // On teste si un utilisateur porte déjà le même login
            $test = grr_sql_query1("select login from ".TABLE_PREFIX."_utilisateurs where login = '******'");
            if ($test != '-1') {
                // authentification bonne mais le login existe déjà : impossible d'importer le profil.
                return "3";
                die();
            } else {
                // On insère le nouvel utilisateur
                $sql = "INSERT INTO ".TABLE_PREFIX."_utilisateurs SET
                nom='".protect_data_sql($l_nom)."',
                prenom='".protect_data_sql($l_prenom)."',
                login='******',
                password='',
                statut='".getSettingValue("imap_statut")."',
                email='".protect_data_sql($l_email)."',
                etat='actif',
                source='ext'";
                if (grr_sql_command($sql) < 0)
                    {fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());
                    return "2";
                    die();
                }

                $sql = "select upper(login) login, password, prenom, nom, statut, now() start, default_area, default_room, default_style, default_list_type, default_language, source, etat, default_site
                from ".TABLE_PREFIX."_utilisateurs
                where login = '******' and
                source = 'ext' and
                etat != 'inactif'";
                $res_user = grr_sql_query($sql);
                $num_row = grr_sql_count($res_user);
                if ($num_row == 1) {
                    // on r?cup?re les donn?es de l'utilisateur dans $row
                    $row = grr_sql_row($res_user,0);
               } else {
                   return "2";
                   die();
               }
            }
        }

	  }

    // On teste si la connexion est active ou non
    if ((getSettingValue("disable_login")=='yes') and ($row[4] != "administrateur")) {
        return "2";
        die();
    }

    //
    // A ce stade, on dispose dans tous les cas d'un tableau $row contenant les informations nécessaires à l'établissment d'une session
    //

    // Session starts now
    session_name(SESSION_NAME);
    @session_start();
   //modif suppr isauth() 
   session_regenerate_id(); 
    // Is this user already connected ?
    $sql = "select SESSION_ID from ".TABLE_PREFIX."_log where SESSION_ID = '" . session_id() . "' and LOGIN = '******' and now() between START and END";
    $res = grr_sql_query($sql);
    $num_row = grr_sql_count($res);
    if (($num_row > 0) and isset($_SESSION['start'])) {
        $sql = "update ".TABLE_PREFIX."_log set END = now() + interval " . getSettingValue("sessionMaxLength") . " minute where SESSION_ID = '" . session_id() . "' and START = '" . $_SESSION['start'] . "'";
    //  $sql = "update ".TABLE_PREFIX."_log set END = now() + interval " . getSettingValue("sessionMaxLength") . " minute where SESSION_ID = '" . session_id() . "'";

        $res = grr_sql_query($sql);
        return "1";
    } else {
        session_unset();
//      session_destroy();
    }
    // reset $_SESSION
    $_SESSION = array();
    $_SESSION['login'] = $row[0];
    $_SESSION['password'] = $row[1];
    $_SESSION['prenom'] = $row[2];
    $_SESSION['nom'] = $row[3];
    $_SESSION['statut'] = $row[4];
    $_SESSION['start'] = $row[5];
    $_SESSION['maxLength'] = getSettingValue("sessionMaxLength");
    if ($row[6] > 0) $_SESSION['default_area'] = $row[6]; else $_SESSION['default_area'] = getSettingValue("default_area");
    if ($row[7] > 0) $_SESSION['default_room'] = $row[7]; else $_SESSION['default_room'] = getSettingValue("default_room");
    if ($row[8] !='') $_SESSION['default_style'] = $row[8]; else $_SESSION['default_style'] = getSettingValue("default_css");
    if ($row[9] !='') $_SESSION['default_list_type'] = $row[9]; else $_SESSION['default_list_type'] = getSettingValue("area_list_format");
    if ($row[10] !='') $_SESSION['default_language'] = $row[10]; else $_SESSION['default_language'] = getSettingValue("default_language");
    if ($row[13] > 0) $_SESSION['default_site'] = $row[13]; else $_SESSION['default_site'] = getSettingValue("default_site");
    $_SESSION['source_login'] = $row[11];
    if ($est_authentifie_sso) {
        // Variable de session qui permet de savoir qu'un utilisateur est authentifié à un SSO
        $_SESSION['est_authentifie_sso'] = "y";
    }

    // It's a new connection, insert into log
     if (isset($_SERVER["HTTP_REFERER"])) $httpreferer = substr($_SERVER["HTTP_REFERER"],0,254); else $httpreferer = '';
    $sql = "insert into ".TABLE_PREFIX."_log (LOGIN, START, SESSION_ID, REMOTE_ADDR, USER_AGENT, REFERER, AUTOCLOSE, END) values (
                '" . protect_data_sql($_SESSION['login']) . "',
                '" . $_SESSION['start'] . "',
                '" . session_id() . "',
                '" . $_SERVER['REMOTE_ADDR'] . "',
                '" . substr($_SERVER['HTTP_USER_AGENT'],0,254) . "',
                '" . $httpreferer . "',
                '1',
                '" . $_SESSION['start'] . "' + interval " . getSettingValue("sessionMaxLength") . " minute
            )
        ;";
    $res = grr_sql_query($sql);
/* Fonctionnalité SE3 (Palissy - Saintes - philippe.duval@ac-poitiers.fr) :
Utilisation du LDAP pour inscrire automatiquement les utilisateurs dans les groupes administration, accès et gestion
Ce code est associé à une nouvelle table :
CREATE TABLE ".TABLE_PREFIX."_j_groupe_se3 (groupe varchar(40) NOT NULL default '',id_area_room int(11) NOT NULL default '0', statut varchar(20) NOT NULL default '',  PRIMARY KEY  (`groupe`,`id_area_room`));
Par ailleurs, pour que cette fonctionnalité soit complète et dans l'esprit de GRR, il faudra développer une "petite" interface dans GRR pour gérer les entrées dans cette table.
*/
	// Début de la fonctionnalité SE3
	$grp=@grr_sql_query("SELECT groupe, id_area_room, statut FROM ".TABLE_PREFIX."_j_groupe_se3");
	if ($grp) { // si la table ".TABLE_PREFIX."_j_groupe_se3 est implantée et non vide
		while ($resgrp=@mysql_fetch_array($grp)) {	// balaye tous les groupes présents dans la table ".TABLE_PREFIX."_j_groupadmin_area
	    $statut_se3 = $resgrp['statut'];		$area_se3 = $resgrp['id_area_room'];
		if ($statut_se3 == 'administrateur')	{ $table_user_se3 = "".TABLE_PREFIX."_j_useradmin_area"; $type_res = 'id_area'; }
		if ($statut_se3 == 'acces_restreint')	{ $table_user_se3 = "".TABLE_PREFIX."_j_user_area"; $type_res = 'id_area'; }
		if ($statut_se3 == 'gestionnaire')		{ $table_user_se3 = "".TABLE_PREFIX."_j_user_room"; $type_res = 'id_room'; }
      if(se3_grp_members($resgrp['groupe'],$_login)=="oui")
		  $add_user_se3 = @grr_sql_query("INSERT INTO `".$table_user_se3."` (login, ".$type_res.") values('".$_login."',".$area_se3.")");
		else	// Cette fonctionnalité enlève les droits, donc elle enlève TOUS LES DROITS même mis à la main ! On peut donc l'enlever si le mode de fonctionnement est mixte (manuel et ldap)
		  $del_user_se3 = @grr_sql_query("DELETE FROM `".$table_user_se3."` WHERE `login`='".$_login."' AND `".$type_res."`=".$area_se3);
	  }
	}
	// Note : Il reste à gérer finement l'interface graphique et à déduire l'incompatibilité éventuelle entre le domaine par défaut et les domaines autorisés pour chaque utilisateur
	// Fin de la fonctionnalité SE3

/* Application du patch en production depuis la rentrée à Palissy : Zéro problème (ci-dessous, l'extraction de la table via phpmyadmin)
CREATE TABLE `".TABLE_PREFIX."_j_groupe_se3` (
  `groupe` varchar(40) NOT NULL default '',
  `id_area_room` int(11) NOT NULL default '0',
  `statut` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`groupe`,`id_area_room`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `".TABLE_PREFIX."_j_groupe_se3` (`groupe`, `id_area_room`, `statut`) VALUES
('GRR_ADMIN_SALLES_REUNIONS', 1, 'administrateur'),
('GRR_ADMIN_SALLES_PEDAGOGIQUES', 2, 'administrateur'),
('GRR_ADMIN_LABOS_LANGUES', 3, 'administrateur'),
('GRR_SALLES_REUNIONS', 1, 'acces_restreint'),
('GRR_SALLES_PEDAGOGIQUES', 2, 'acces_restreint'),
('GRR_LABOS_LANGUES', 3, 'acces_restreint'),
('GRR_GESTION_SALLE_A01', 1, 'gestionnaire'),
('GRR_GESTION_SALLE_A03', 2, 'gestionnaire'),
('GRR_GESTION_SALLE_A314', 3, 'gestionnaire'),
('GRR_GESTION_SALLE_A409', 4, 'gestionnaire'),
('GRR_GESTION_SALLE_D05', 5, 'gestionnaire'),
('GRR_GESTION_SALLE_A301E', 6, 'gestionnaire');
*/

    return "1";
}
Example #8
0
unset($user_login);
$user_login = isset($_POST["user_login"]) ? $_POST["user_login"] : ($user_login = isset($_GET["user_login"]) ? $_GET["user_login"] : NULL);
$valid = isset($_POST["valid"]) ? $_POST["valid"] : NULL;
$msg = '';
if ($valid == "yes") {
    unset($reg_password1);
    $reg_password1 = unslashes($_POST["reg_password1"]);
    unset($reg_password2);
    $reg_password2 = unslashes($_POST["reg_password2"]);
    $reg_password_c = md5($reg_password1);
    if ($reg_password1 != $reg_password2 || strlen($reg_password1) < $pass_leng) {
        $msg = get_vocab("passwd_error");
    } else {
        $sql = "UPDATE " . TABLE_PREFIX . "_utilisateurs SET password='******' WHERE login='******'";
        if (grr_sql_command($sql) < 0) {
            fatal_error(0, get_vocab('update_pwd_failed') . grr_sql_error());
        } else {
            $msg = get_vocab('update_pwd_succeed');
        }
    }
}
$user_nom = '';
$user_prenom = '';
$user_source = '';
// On appelle les informations de l'utilisateur
if (isset($user_login) && $user_login != '') {
    $sql = "SELECT nom,prenom, source FROM " . TABLE_PREFIX . "_utilisateurs WHERE login='******'";
    $res = grr_sql_query($sql);
    if ($res) {
        for ($i = 0; $row = grr_sql_row($res, $i); $i++) {
            $user_nom = $row[0];
Example #9
0
/**
 * Resume a session
 *
 * Check that all the expected data is present
 * Check login / password against database
 * Update the timeout in the ".TABLE_PREFIX."_log table
 *
 * Returns true if session resumes, false otherwise
 *
 *
 * @return boolean
 */
function grr_resumeSession()
{
    // Resuming session
    session_name(SESSION_NAME);
    @session_start();
    if (Settings::get('sso_statut') == 'lcs' and !isset($_SESSION['est_authentifie_sso']) and $_SESSION['source_login'] == "ext") {
        return false;
    }
    // La session est-elle expirée
    if (isset($_SESSION['login'])) {
        $test_session = grr_sql_query1("SELECT count(LOGIN) from " . TABLE_PREFIX . "_log where END > now() and LOGIN = '******'login']) . "'");
        if ($test_session == 0) {
            $_SESSION = array();
        }
    }
    if (!isset($_SESSION) or !isset($_SESSION['login'])) {
        return false;
    }
    if (Settings::get("disable_login") == 'yes' and $_SESSION['statut'] != "administrateur") {
        return false;
    }
    // To be removed
    // Validating session data
    $sql = "SELECT password = '******'password'] . "' PASSWORD, login = '******'login']) . "' LOGIN, statut = '" . $_SESSION['statut'] . "' STATUT\n\tfrom " . TABLE_PREFIX . "_utilisateurs where login = '******'login']) . "'";
    $res = grr_sql_query($sql);
    $row = grr_sql_row($res, 0);
    // Checking for a timeout
    $sql2 = "SELECT now() > END TIMEOUT from " . TABLE_PREFIX . "_log where SESSION_ID = '" . session_id() . "' and START = '" . $_SESSION['start'] . "'";
    if ($row[0] != "1" || $row[1] != "1" || $row[2] != "1") {
        return false;
    } else {
        if (grr_sql_query1($sql2)) {
            // Le temps d'inactivité est supérieur à la limite fixée.
            // cas d'une authentification LCS
            if (Settings::get('sso_statut') == 'lcs') {
                // l'utilisateur est authentifié par LCS, on renouvelle la session
                if ($is_authentified_lcs == 'yes') {
                    $sql = "UPDATE " . TABLE_PREFIX . "_log set END = now() + interval " . $_SESSION['maxLength'] . " minute where SESSION_ID = '" . session_id() . "' and START = '" . $_SESSION['start'] . "'";
                    $res = grr_sql_query($sql);
                    if (!$res) {
                        fatal_error(0, 'erreur mysql' . grr_sql_error());
                    }
                    return true;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            $sql = "UPDATE " . TABLE_PREFIX . "_log set END = now() + interval " . $_SESSION['maxLength'] . " minute where SESSION_ID = '" . session_id() . "' and START = '" . $_SESSION['start'] . "'";
            $res = grr_sql_query($sql);
            if (!$res) {
                fatal_error(0, 'erreur mysql' . grr_sql_error());
            }
            return true;
        }
    }
}
Example #10
0
                if (grr_sql_command($sql) < 0) {
                    fatal_error(0, '<p>' . grr_sql_error() . '</p>');
                }
                $id_site = mysqli_insert_id($GLOBALS['db_c']);
            }
            // On affecte tous les domaines à un site.
            $sql = "SELECT id FROM " . TABLE_PREFIX . "_area";
            $res = grr_sql_query($sql);
            if ($res) {
                for ($i = 0; $row = grr_sql_row($res, $i); $i++) {
                    // l'area est-elle déjà affectée à un site ?
                    $test_site = grr_sql_query1("SELECT count(id_area) FROM " . TABLE_PREFIX . "_j_site_area WHERE id_area='" . $row[0] . "'");
                    if ($test_site == 0) {
                        $sql = "INSERT INTO " . TABLE_PREFIX . "_j_site_area SET id_site='" . $id_site . "', id_area='" . $row[0] . "'";
                        if (grr_sql_command($sql) < 0) {
                            fatal_error(0, '<p>' . grr_sql_error() . '</p>');
                        }
                    }
                }
            }
        }
    }
}
if (isset($_GET['use_fckeditor'])) {
    if (!Settings::set("use_fckeditor", $_GET['use_fckeditor'])) {
        echo "Erreur lors de l'enregistrement de use_fckeditor !<br />";
        die;
    }
}
print_header("", "", "", $type = "with_session");
if (isset($_GET['ok'])) {
Example #11
0
 function moderate_entry_do($_id,$_moderate,$_description,$send_mail="yes")
 {
global $dformat;

// On vérifie que l'utilisateur a bien le droit d'être ici
$room_id = grr_sql_query1("select room_id from ".TABLE_PREFIX."_entry where id='".$_id."'");
if (authGetUserLevel(getUserName(),$room_id) < 3)
{
    fatal_error(0,"Opération interdite");
    exit();
}


// j'ai besoin de $repeat_id '
$sql = "select repeat_id from ".TABLE_PREFIX."_entry where id =".$_id;
$res = grr_sql_query($sql);
if (! $res) fatal_error(0, grr_sql_error());
$row = grr_sql_row($res, 0);
$repeat_id = $row['0'];

// Initialisation
$series = 0;
if ($_moderate == "S1") {
     $_moderate = "1";
     $series = 1;
}
if ($_moderate == "S0") {
     $_moderate = "0";
     $series = 1;
}

if ($series==0) {
    //moderation de la ressource
    if ($_moderate == 1) {
        $sql = "update ".TABLE_PREFIX."_entry set moderate = 2 where id = ".$_id;
    } else {
        $sql = "update ".TABLE_PREFIX."_entry set moderate = 3 where id = ".$_id;
    }
    $res = grr_sql_query($sql);
    if (! $res) fatal_error(0, grr_sql_error());

    if (!(grr_backup($_id,$_SESSION['login'],$_description))) fatal_error(0, grr_sql_error());
    $tab_id_moderes = array();
} else { // cas d'une série
    // on constitue le tableau des id de la périodicité
    $sql = "select id from ".TABLE_PREFIX."_entry where repeat_id=".$repeat_id;
    $res = grr_sql_query($sql);
    if (! $res) fatal_error(0, grr_sql_error());
    $tab_entry = array();
    for ($i = 0; ($row = grr_sql_row($res, $i)); $i++) {
        $tab_entry[] = $row['0'];
    }
    $tab_id_moderes = array();
    // Boucle sur les résas
    foreach ($tab_entry as $entry_tom) {
        $test = grr_sql_query1("select count(id) from ".TABLE_PREFIX."_entry_moderate where id = '".$entry_tom."'");
        // Si il existe déjà une entrée dans ".TABLE_PREFIX."_entry_moderate, cela signifie que la réservation a déjà été modérée.
        // Sinon :
        if ($test == 0) {
            //moderation de la ressource
            if ($_moderate == 1) {
                $sql = "update ".TABLE_PREFIX."_entry set moderate = 2 where id = '".$entry_tom."'";
            } else {
                $sql = "update ".TABLE_PREFIX."_entry set moderate = 3 where id = '".$entry_tom."'";
           }
           $res = grr_sql_query($sql);
           if (! $res) fatal_error(0, grr_sql_error());

           if (!(grr_backup($entry_tom,$_SESSION['login'],$_description))) fatal_error(0, grr_sql_error());           // Backup : on enregistre les infos dans ".TABLE_PREFIX."_entry_moderate
           // On constitue un tableau des réservations modérées
           $tab_id_moderes[] = $entry_tom;
        }
    }
}

// Avant d'effacer la réservation, on procède à la notification par mail, uniquement si la salle n'a pas déjà été modérée.
if ($send_mail=="yes")
   send_mail($_id,6,$dformat,$tab_id_moderes);

//moderation de la ressource
if ($_moderate != 1) {
    // on efface l'entrée de la base
    if ($series==0) {
        $sql = "delete from ".TABLE_PREFIX."_entry where id = ".$_id;
        $res = grr_sql_query($sql);
        if (! $res) fatal_error(0, grr_sql_error());
    } else {
        // On sélectionne toutes les réservation de la périodicité
        $res = grr_sql_query("select id from ".TABLE_PREFIX."_entry where repeat_id='".$repeat_id."'");
        if (! $res) fatal_error(0, grr_sql_error());
        for ($i = 0; ($row = grr_sql_row($res, $i)); $i++) {
            $entry_tom = $row['0'];
            // Pour chaque réservation, on teste si celle-ci a été refusée
            $test = grr_sql_query1("select count(id) from ".TABLE_PREFIX."_entry_moderate where id = '".$entry_tom."' and moderate='3'");
            // Si oui, on supprime la réservation
            if ($test > 0)
                $del = grr_sql_query("delete from ".TABLE_PREFIX."_entry where id = '".$entry_tom."'");
        }
        // On supprime l'info de périodicité
        $del_repeat = grr_sql_query("delete from ".TABLE_PREFIX."_repeat where id='".$repeat_id."'");
        $dupdate_repeat = grr_sql_query("update ".TABLE_PREFIX."_entry set repead_id = '0' where repead_id='".$repeat_id."'");
    }
}
}
Example #12
0
function cree_calendrier_date_valide($n,$i) {
        if ($i <= getSettingValue("nombre_jours_Jours/Cycles")) {
            $sql = "INSERT INTO ".TABLE_PREFIX."_calendrier_jours_cycle set DAY='".$n."', Jours = $i";
            if (grr_sql_command($sql) < 0) {
                fatal_error(1, "<p>" . grr_sql_error());
            }
            $i++;
        }
        else {
            $i = 1;
            $sql = "INSERT INTO ".TABLE_PREFIX."_calendrier_jours_cycle set DAY='".$n."', Jours = $i";
            if (grr_sql_command($sql) < 0) {
                fatal_error(1, "<p>" . grr_sql_error());
            }
            $i++;
        }
        return $i;
    }
Example #13
0
//
// Suppression d'un type de réservation
//
if ((isset($_GET['action_del'])) and ($_GET['js_confirmed'] ==1) and ($_GET['action_del']='yes')) {
    // faire le test si il existe une réservation en cours avec ce type de réservation
    $type_id = grr_sql_query1("select type_letter from ".TABLE_PREFIX."_type_area where id = '".$_GET['type_del']."'");
    $test1 = grr_sql_query1("select count(id) from ".TABLE_PREFIX."_entry where type= '".$type_id."'");
    $test2 = grr_sql_query1("select count(id) from ".TABLE_PREFIX."_repeat where type= '".$type_id."'");
    if (($test1 != 0) or ($test2 != 0)) {
        $msg =  "Suppression impossible : des réservations ont été enregistrées avec ce type.";
    } else {
        $sql = "DELETE FROM ".TABLE_PREFIX."_type_area WHERE id='".$_GET['type_del']."'";
        if (grr_sql_command($sql) < 0) {fatal_error(1, "<p>" . grr_sql_error());}
        $sql = "DELETE FROM ".TABLE_PREFIX."_j_type_area WHERE id_type='".$_GET['type_del']."'";
        if (grr_sql_command($sql) < 0) {fatal_error(1, "<p>" . grr_sql_error());}

    }
}
affiche_pop_up($msg,"admin");

echo "<h2>".get_vocab('admin_type.php')."</h2>";
echo get_vocab('admin_type_explications');
echo "<br />\n";
echo "<br />\n";
echo "| <a href=\"admin_type_modify.php?id=0\">".get_vocab("display_add_type")."</a> |\n";
echo "<br />\n";
echo "<br />\n";
$sql = "SELECT id, type_name, order_display, couleur, type_letter, disponible FROM ".TABLE_PREFIX."_type_area
ORDER BY order_display,type_letter";
$res = grr_sql_query($sql);
Example #14
0
 function update_site($id)
 {
   if ((isset($_POST['back']) or isset($_GET['back']))) {
     // On affiche le tableau des sites
     read_sites();
     exit();
   }
   // On affiche le formulaire de saisie quand l'appel de la fonction ne provient pas de la validation de ce même formulaire
   if (! (isset($_POST['save']) or isset($_GET['save'])))
   {
     // Initialisation
     $res = grr_sql_query("SELECT * FROM ".TABLE_PREFIX."_site WHERE id='".$id."'");
     if (! $res) fatal_error(0,'<p>'.grr_sql_error().'</p>');
     $row = grr_sql_row_keyed($res, 0);
     grr_sql_free($res);
     $sitecode = $row['sitecode'];
     $sitename = $row['sitename'];
     $adresse_ligne1 = $row['adresse_ligne1'];
     $adresse_ligne2 = $row['adresse_ligne2'];
     $adresse_ligne3 = $row['adresse_ligne3'];
     $cp = $row['cp'];
     $ville = $row['ville'];
     $pays = $row['pays'];
     $tel = $row['tel'];
     $fax = $row['fax'];

     // Affichage des titres de la page
     echo '      <h2>'.get_vocab('modifier site').'</h2>';
     echo '
      <form action="admin_site.php?action=update" method="post">
        <table>
          <tr><td>'.get_vocab('site_code').'&nbsp;*</td><td><input type="text" name="sitecode" value="'.$sitecode.'" size="10" title="'.get_vocab('site_code').'" /></td></tr>
          <tr><td>'.get_vocab('site_name').'&nbsp;*</td><td><input type="text" name="sitename" value="'.$sitename.'" size="50" title="'.get_vocab('site_name').'" /></td></tr>
          <tr><td>'.get_vocab('site_adresse_ligne1').'</td><td><input type="text" name="adresse_ligne1" value="'.$adresse_ligne1.'" size="38" title="'.get_vocab('site_adresse_ligne1').'" /></td></tr>
          <tr><td>'.get_vocab('site_adresse_ligne2').'</td><td><input type="text" name="adresse_ligne2" value="'.$adresse_ligne2.'" size="38" title="'.get_vocab('site_adresse_ligne2').'" /></td></tr>
          <tr><td>'.get_vocab('site_adresse_ligne3').'</td><td><input type="text" name="adresse_ligne3" value="'.$adresse_ligne3.'" size="38" title="'.get_vocab('site_adresse_ligne3').'" /></td></tr>
          <tr><td>'.get_vocab('site_cp').'</td><td><input type="text" name="cp" value="'.$cp.'" size="5" title="'.get_vocab('site_cp').'" /></td></tr>
          <tr><td>'.get_vocab('site_ville').'</td><td><input type="text" name="ville" value="'.$ville.'" size="50" title="'.get_vocab('site_ville').'" /></td></tr>
          <tr><td>'.get_vocab('site_pays').'</td><td><input type="text" name="pays" value="'.$pays.'" size="50" title="'.get_vocab('site_pays').'" /></td></tr>
          <tr><td>'.get_vocab('site_tel').'</td><td><input type="text" name="tel" value="'.$tel.'" size="25" title="'.get_vocab('site_tel').'" /></td></tr>
          <tr><td>'.get_vocab('site_fax').'</td><td><input type="text" name="fax" value="'.$fax.'" size="25" title="'.get_vocab('site_fax').'" /></td></tr>
        </table>
        <div>
        <input type="hidden" name="valid" value="yes" />
        <input type="hidden" name="id" value="'.$id.'" />
        <input type="submit" name="save" value="'.get_vocab('save').'" />
        <input type="submit" name="back" value="'.get_vocab('back').'" /></div>
        </form>';
      echo get_vocab("required");
   // Sinon, il faut valider le formulaire
   } else {
     $msg ='';
     if (!isset($id)) $id = isset($_POST['id']) ? $_POST['id'] :  NULL;
     if (!isset($sitecode)) $sitecode = isset($_POST['sitecode']) ? $_POST['sitecode'] : NULL;
     if (!isset($sitename)) $sitename = isset($_POST['sitename']) ? $_POST['sitename'] :  NULL;
     if (!isset($adresse_ligne1)) $adresse_ligne1 = isset($_POST['adresse_ligne1']) ? $_POST['adresse_ligne1'] :  NULL;
     if (!isset($adresse_ligne2)) $adresse_ligne2 = isset($_POST['adresse_ligne2']) ? $_POST['adresse_ligne2'] :  NULL;
     if (!isset($adresse_ligne3)) $adresse_ligne3 = isset($_POST['adresse_ligne3']) ? $_POST['adresse_ligne3'] :  NULL;
     if (!isset($cp)) $cp = isset($_POST['cp']) ? $_POST['cp'] :  NULL;
     if (!isset($ville)) $ville = isset($_POST['ville']) ? $_POST['ville'] :  NULL;
     if (!isset($pays)) $pays = isset($_POST['pays']) ? $_POST['pays'] :  NULL;
     if (!isset($tel)) $tel = isset($_POST['tel']) ? $_POST['tel'] :  NULL;
     if (!isset($fax)) $fax = isset($_POST['fax']) ? $_POST['fax'] :  NULL;

     // On vérifie que le code et le nom du site ont été renseignés
     if ($sitecode=='' or $sitecode==NULL or $sitename=='' or $sitename==NULL)
     {
       $_POST['save'] = 'no';
       $_GET['save'] = 'no';
       echo '<span class="avertissement">'.get_vocab('required').'</span>';
     }

     // Sauvegarde du record
     if ((isset($_POST['save']) and ($_POST['save']!='no')) or ((isset($_GET['save'])) and ($_GET['save']!='no')))
     {
         $sql="update ".TABLE_PREFIX."_site
       		SET sitecode='".strtoupper(protect_data_sql($sitecode))."',
       			sitename='".protect_data_sql($sitename)."',
       			adresse_ligne1='".protect_data_sql($adresse_ligne1)."',
       			adresse_ligne2='".protect_data_sql($adresse_ligne2)."',
       			adresse_ligne3='".protect_data_sql($adresse_ligne3)."',
       			cp='".protect_data_sql($cp)."',
       			ville='".strtoupper(protect_data_sql($ville))."',
       			pays='".strtoupper(protect_data_sql($pays))."',
       			tel='".protect_data_sql($tel)."',
       			fax='".protect_data_sql($fax)."'
          where id='".$id."'";
         if (grr_sql_command($sql) < 0)
           fatal_error(0,'<p>'.grr_sql_error().'</p>');
           $site = mysql_insert_id();
     }
     // On affiche le tableau des sites
     read_sites();
   }

 }
Example #15
0
		$res = grr_sql_query1($sql);
		if ($res == -1) {
			$sql = "insert into ".TABLE_PREFIX."_j_useradmin_area (login, id_area) values ('$reg_admin_login',$id_area)";
			if (grr_sql_command($sql) < 0) {fatal_error(1, "<p>" . grr_sql_error());}  else {$msg=get_vocab("add_user_succeed");}
		} else {
           $msg = get_vocab("warning_exist");
		}
	}

}

if ($action) {
    if ($action == "del_admin") {
        unset($login_admin); $login_admin = $_GET["login_admin"];
        $sql = "DELETE FROM ".TABLE_PREFIX."_j_useradmin_area WHERE (login='******' and id_area = '$id_area')";
        if (grr_sql_command($sql) < 0) {fatal_error(1, "<p>" . grr_sql_error());} else {$msg=get_vocab("del_user_succeed");}
    }
}

echo "<h2>".get_vocab('admin_right_admin.php').grr_help("aide_grr_administateur_restreint")."</h2>\n";
echo "<p><i>".get_vocab("admin_right_admin_explain")."</i></p>\n";

// Affichage d'un pop-up
affiche_pop_up($msg,"admin");

# Table with areas.
echo "<table><tr>\n";
$this_area_name = "";
# Show all areas
echo "<td ><p><b>".get_vocab("areas")."</b></p>\n";
$out_html = "<form id=\"area\" action=\"admin_right_admin.php\" method=\"post\"><div><select name=\"area\" onchange=\"area_go()\">\n";
Example #16
0
             $n = mktime(0,0,0,$month,$day,$year);
             if (isset($_POST[$n])) {
                 // Le jour a été selectionné dans le calendrier
                 $starttime = mktime($morningstarts, 0, 0, $month, $day  , $year);
                 $endtime   = mktime($eveningends, 0, $resolution, $month, $day, $year);
                 // Pour toutes les dates bon précédement enregistrées, on efface toutes les résa en conflit
                 if (!in_array($n,$day_old)) {
                   $sql = "select id from ".TABLE_PREFIX."_room";
                   $res = grr_sql_query($sql);
                   if ($res) for ($i = 0; ($row = grr_sql_row($res, $i)); $i++)
                       $result += grrDelEntryInConflict($row[0], $starttime, $endtime, 0, 0, 1);
                 }

                 // On enregistre la valeur dans ".TABLE_PREFIX."_calendar
                 $sql = "INSERT INTO ".TABLE_PREFIX."_calendar set DAY='".$n."'";
                 if (grr_sql_command($sql) < 0) fatal_error(0, "<p>" . grr_sql_error());
             }
             $day++;
         }
         $month++;
         if ($month == 13) {
            $year++;
             $month = 1;
         }
    }
}


    echo "\n<p>".get_vocab("les_journees_cochees_sont_ignorees")."</p>";
    echo "\n<table cellpadding=\"3\">\n";
    $basetime = mktime(12,0,0,6,11+$weekstarts,2000);
Example #17
0
File: year.php Project: Birssan/GRR
//row[0] = Start time
//row[1] = End time
//row[2] = Entry ID
//row[3] = Entry name (brief description)
//row[4] = beneficiaire of the booking
//row[5] = Nom de la ressource
//row[6] = statut
//row[7] = Description complète
$sql = "SELECT start_time, end_time," . TABLE_PREFIX . "_entry.id, name, beneficiaire, room_name, statut_entry, " . TABLE_PREFIX . "_entry.description, " . TABLE_PREFIX . "_entry.option_reservation, " . TABLE_PREFIX . "_room.delais_option_reservation, type, " . TABLE_PREFIX . "_entry.moderate, beneficiaire_ext\nFROM " . TABLE_PREFIX . "_entry inner join " . TABLE_PREFIX . "_room on " . TABLE_PREFIX . "_entry.room_id=" . TABLE_PREFIX . "_room.id\nWHERE (start_time <= {$month_end} AND end_time > {$month_start} and area_id='" . $area . "')\nORDER by start_time, end_time, " . TABLE_PREFIX . "_room.room_name";
//Build an array of information about each day in the month.
//The information is stored as:
// d[monthday]["id"][] = ID of each entry, for linking.
// d[monthday]["data"][] = "start-stop" times of each entry.
$res = grr_sql_query($sql);
if (!$res) {
    echo grr_sql_error();
} else {
    for ($i = 0; $row = grr_sql_row($res, $i); $i++) {
        //Fill in data for each day during the month that this meeting covers.
        //Note: int casts on database rows for min and max is needed for PHP3.
        $t = max((int) $row[0], $month_start);
        $end_t = min((int) $row[1], $month_end);
        $day_num = date("j", $t);
        $month_num = date("m", $t);
        $year_num = date("Y", $t);
        if ($enable_periods == 'y') {
            $midnight = mktime(12, 0, 0, $month_num, $day_num, $year_num);
        } else {
            $midnight = mktime(0, 0, 0, $month_num, $day_num, $year_num);
        }
        while ($t < $end_t) {
Example #18
0
        }
    }
    if (IsAllowedToModifyProfil() && $champ_manquant == 'y') {
        $msg .= "\\n" . get_vocab('required');
    }
}
if ($valid == 'yes' || $valid == 'reset') {
    $default_site = isset($_POST['id_site']) ? $_POST['id_site'] : NULL;
    $default_area = isset($_POST['id_area']) ? $_POST['id_area'] : NULL;
    $default_room = isset($_POST['id_room']) ? $_POST['id_room'] : NULL;
    $default_style = isset($_POST['default_css']) ? $_POST['default_css'] : NULL;
    $default_list_type = isset($_POST['area_item_format']) ? $_POST['area_item_format'] : NULL;
    $default_language = isset($_POST['default_language']) ? $_POST['default_language'] : NULL;
    $sql = "UPDATE " . TABLE_PREFIX . "_utilisateurs\n\tSET default_site = '" . protect_data_sql($default_site) . "',\n\tdefault_area = '" . protect_data_sql($default_area) . "',\n\tdefault_room = '" . protect_data_sql($default_room) . "',\n\tdefault_style = '" . protect_data_sql($default_style) . "',\n\tdefault_list_type = '" . protect_data_sql($default_list_type) . "',\n\tdefault_language = '" . protect_data_sql($default_language) . "'\n\tWHERE login='******'";
    if (grr_sql_command($sql) < 0) {
        fatal_error(0, get_vocab('message_records_error') . grr_sql_error());
    } else {
        if ($default_site != '' && $default_site != '0') {
            $_SESSION['default_site'] = $default_site;
        } else {
            $_SESSION['default_site'] = Settings::get('default_site');
        }
        if ($default_area != '' && $default_area != '0') {
            $_SESSION['default_area'] = $default_area;
        } else {
            $_SESSION['default_area'] = Settings::get('default_area');
        }
        if ($default_room != '' && $default_room != '0') {
            $_SESSION['default_room'] = $default_room;
        } else {
            $_SESSION['default_room'] = Settings::get('default_room');
Example #19
0
         $texte = str_replace(CHR(13), " ", $texte);
         echo ltrim(rtrim($texte)) . ";";
         //Date derniere modif
         echo date_time_string($row[7], $dformat) . ";";
         echo "\r\n";
     }
 }
 if ($summarize == 5) {
     //Télécharger le fichier CSV
     header('Content-Encoding: UTF-8');
     header("Content-Type: application/csv-tab-delimited-table");
     header("Content-disposition: filename=resume.csv");
     echo "";
     $res = grr_sql_query($sql);
     if (!$res) {
         fatal_error(0, grr_sql_error());
     }
     $nmatch = grr_sql_count($res);
     if ($nmatch == 0) {
         echo html_entity_decode($vocab["nothing_found"]) . "\r\n";
         grr_sql_free($res);
     } else {
         if ($_GET["sumby"] == "6") {
             echo html_entity_decode($vocab["summarize_by"]) . " " . html_entity_decode($vocab["sum_by_creator"]) . " - {$day} {$month} {$year};";
         } else {
             if ($_GET["sumby"] == "3") {
                 echo html_entity_decode($vocab["summarize_by"]) . " " . html_entity_decode($vocab["sum_by_descrip"]) . " - {$day} {$month} {$year};";
             } else {
                 if ($_GET["sumby"] == "5") {
                     echo html_entity_decode($vocab["summarize_by"]) . " " . html_entity_decode($vocab["type"]) . " - {$day} {$month} {$year};";
                 } else {
Example #20
0
//
if (isset($_GET['action_del']) and $_GET['js_confirmed'] == 1) {
    $temp = $_GET['user_del'];
    // un gestionnaire d'utilisateurs ne peut pas supprimer un administrateur général ou un gestionnaire d'utilisateurs
    $can_delete = 'yes';
    if (authGetUserLevel(getUserName(), -1, 'user') == 1) {
        $test_statut = grr_sql_query1('SELECT statut FROM ' . TABLE_PREFIX . "_utilisateurs WHERE login='******'user_del'] . "'");
        if ($test_statut == 'gestionnaire_utilisateur' || $test_statut == 'administrateur') {
            $can_delete = 'no';
        }
    }
    if ($temp != getUserName() && $can_delete == 'yes') {
        $temp = str_replace('\\', '\\\\', $temp);
        $sql = 'DELETE FROM ' . TABLE_PREFIX . "_utilisateurs WHERE login='******'";
        if (grr_sql_command($sql) < 0) {
            fatal_error(1, '<p>' . grr_sql_error());
        } else {
            grr_sql_command('DELETE FROM ' . TABLE_PREFIX . "_j_mailuser_room WHERE login='******'");
            grr_sql_command('DELETE FROM ' . TABLE_PREFIX . "_j_user_area WHERE login='******'");
            grr_sql_command('DELETE FROM ' . TABLE_PREFIX . "_j_user_room WHERE login='******'");
            grr_sql_command('DELETE FROM ' . TABLE_PREFIX . "_j_useradmin_area WHERE login='******'");
            grr_sql_command('DELETE FROM ' . TABLE_PREFIX . "_j_useradmin_site WHERE login='******'");
            $msg = get_vocab('del_user_succeed');
        }
    }
}
if (isset($mess) and $mess != '') {
    echo '<p>' . $mess . '</p>';
}
echo '<h2>' . get_vocab('admin_user.php') . '</h2>';
if (empty($display)) {