Modification de la bdd + affichage des modules + dragndrop en cours + affichage à arranger/refaire

This commit is contained in:
xdrm-brackets 2015-10-28 18:08:12 +01:00
parent 29ac8943bc
commit c86836c1b2
24 changed files with 1411 additions and 1054 deletions

10
API.php
View File

@ -1,4 +1,6 @@
<?php define('__ROOT__', dirname(__FILE__));
<?php define('__ROOT__', dirname(__FILE__) );
require_once __ROOT__.'/manager/security.php';
/* GESTION DE L'AUTHENTIFICATION - SI L'UTILISATEUR EST CONNECTÉ */
@ -31,7 +33,7 @@
/***************/
case 'user':
if( isset($request->level_1) ){ require_once __ROOT__.'/manager/user.php'; user_switch_level_1($request, $answer); }
else { $answer->request = 'missing_level_1'; }
else { $answer->request = 'missing_level_1'; }
break;
@ -40,7 +42,7 @@
/***********/
case 'groups':
if( isset($request->level_1) ){ require_once __ROOT__.'/manager/groups.php'; groups_switch_level_1($request, $answer); }
else { $answer->request = 'missing_level_1'; }
else { $answer->request = 'missing_level_1'; }
break;
@ -55,6 +57,8 @@
/* MODULE */
/**********/
case 'modules':
if( isset($request->level_1) ){ require_once __ROOT__.'/manager/modules.php'; modules_switch_level_1($request, $answer); }
else { $answer->request = 'missing_level_1'; }
break;

25
css/global.css Normal file → Executable file
View File

@ -119,7 +119,7 @@ table.basic tr:hover td{
#CONTAINER section > p{
/* position */
padding: 1em;
margin-left: 10em;
margin-left: 1em;
/* border */
border-radius: 3px;
@ -131,20 +131,19 @@ table.basic tr:hover td{
}
#CONTAINER section > p:before{
content: attr(data-pre);
content: '';
/* position */
display: block;
position: absolute;
top: 2em;
left: 0;
width: 8em;
height: 1.3em;
padding: 1em;
margin-left: 1em;
top: calc( 2.7em - 3px );
left: calc( 1.1em - 5px );
/* foreground */
color: #666;
text-align: right;
/* border */
border: calc(1em + 3px) solid transparent;
border-right-color: #ddd;
/* Z */
z-index: -1;
}
#CONTAINER section > p:after{
@ -153,12 +152,12 @@ table.basic tr:hover td{
display: block;
position: absolute;
top: 2.7em;
left: 10.1em;
left: 1.1em;
/* border */
border: 1em solid transparent;
border-right-color: #fff;
/* Z */
z-index: 1;
z-index: 2;
}

View File

@ -305,3 +305,16 @@ body{
background-color: #3dcc70;
color: #fff;
}
/* errorbox (identifiants incorrects) */
#AUTH span.errorbox{
/* position */
display: inline-block;
position: relative;
padding-top: 1em;
padding-left: 1em;
color: #ff5c5c;
}

View File

@ -1,37 +1,8 @@
<?php define('__ROOT__', dirname(__FILE__) );
require_once __ROOT__.'/manager/security.php';
$LOGIN_postAreSet = isset($_POST['username']) && isset($_POST['password']); // variables POST existent
$LOGIN_postStrings = $LOGIN_postAreSet && is_string($_POST['username']) && is_string($_POST['password']); // sont toutes 2 des strings
$LOGIN_postNotEmpty = $LOGIN_postStrings && strlen($_POST['username']) > 1 && strlen($_POST['password']) > 1; // d'au moins 2 caractères
// $_SESSION['username'] = null;
// si on a soumis le formulaire
if( $LOGIN_postNotEmpty ){
$userlist = file_get_contents('src/userlist.json');
$userlistObj = json_decode($userlist);
if( $userlistObj != null ){ // si format non corrompu
if( isset($userlistObj->{$_POST['username']}) ) // si non d'utilisateur connu
if( $userlistObj->{$_POST['username']}->password == $_POST['password'] ) // si mot de passe ok
$_SESSION['username'] = $_POST['username'];
}
}
if( !(isset($_SESSION['username']) && is_string($_SESSION['username']) && strlen($_SESSION['username']) > 1) )
$_SESSION['username'] = null;
/* VARIABLES DES NOTIFICATIONS */
$memberNotifNum = 10;
$messageNotifNum = 0;
$notifNotifNum = 5;
$notifNotifNum = 5;
?>
@ -72,17 +43,19 @@ $notifNotifNum = 5;
<!-- MENU DE LA PAGE -->
<nav id='MENU'>
<?php
if( $_SESSION['username'] != null ) // si $_SESSION['username'] est défini
echo "<div class='userdata M'>".$_SESSION['username']."</div>";
if( $_SESSION['identifiant'] != null ) // si $_SESSION['identifiant'] est défini
echo "<div class='userdata M'>".$_SESSION['identifiant']."</div>";
else
echo "<div class='userdata'>Connexion</div>";
?>
<span data-link='home' >Accueil </span>
<?php if( $_SESSION['identifiant'] != null ){ ?>
<span data-link='groups' >Composition</span>
<span data-link='ue' >Suivi </span>
<span data-link='modules' >Modules </span>
<span data-link='marks' >Notes </span>
<span data-link='settings'>Paramètres </span>
<?php } ?>
</nav>
<!-- HEADER DE LA PAGE -->
@ -94,7 +67,7 @@ $notifNotifNum = 5;
if( $_SESSION['username'] != null ){ // si l'utilisateur est connecté, on affiche les notifications
if( $_SESSION['identifiant'] != null ){ // si l'utilisateur est connecté, on affiche les notifications
/* BOUTON DE DECONNECTION */
echo "<div id='LOGOUT' data-info='Déconnection'></div>";
@ -148,11 +121,11 @@ $notifNotifNum = 5;
<div id='AUTH_FILTER'></div>
<?php if( $_SESSION['username'] == null ){ // si on est pas connecté ?>
<?php if( $_SESSION['identifiant'] == null ){ // si on est pas connecté ?>
<form id='AUTH' action='' method='POST'>
<label>Connexion</label>
<input type='text' name='username' placeholder='Username'>
<input type='password' name='password' placeholder='Password'>
<input type='text' name='identifiant' placeholder='Username'>
<input type='password' name='mdp' placeholder='Password'>
<span class='errorbox'>&nbsp</span>
<input type='button' value='Connection'>
</form>

View File

@ -180,6 +180,10 @@ var connected = !( DOM.AUTH.children[0].innerHTML == 'Connexion' );
var target = document.querySelector('#CONTAINER section[name='+subSection.dataset.sectname+']');
if( target != null )
addClass(target, 'active');
// on définit la sous-page de pageManager.js
pageM.vars[0] = subSection.dataset.sectname;
pageM.updateURL();
addClass(subSection, 'active'); // on active @subSection
}
@ -307,20 +311,8 @@ initForm( // initialisation du formulaire de connection
API.send(request, function(response){
if( response.request == 'success' )// si connection ok
document.location = '';
else
document.querySelector('#AUTH .errorbox').innerHTML = 'Identifiants incorrects.';
});
}
);
/* TEST DRAG N DROP */
var dnd = new DragnDrop();
setTimeout(function(){
var members = document.querySelectorAll('#CONTAINER table.basic tr td:not(.more)');
for( var i = 0 ; i < members.length ; i++ ){
dnd.setDraggable(members[i]);
dnd.setDroppable(members[i]);
}
dnd.init();
}, 500);
);

25
js/dragndrop.js Normal file → Executable file
View File

@ -41,16 +41,15 @@ DragnDrop.prototype = {
// evenement mousedown
document.body.addEventListener('mousedown', function(e){
if( pointer.draggableElements.indexOf(e.target) > -1 ){ // si l'élément est dans la liste des "draggables"
pointer.dragElement = e.target;
pointer.dragElement = e.target.parentNode;
DOM.DRAGNDROP.innerHTML = '';
DOM.DRAGNDROP.appendChild( e.target.cloneNode() );
DOM.DRAGNDROP.children[0].innerHTML = e.target.innerHTML;
DOM.DRAGNDROP.appendChild( e.target.parentNode.cloneNode() );
DOM.DRAGNDROP.children[0].innerHTML = e.target.parentNode.innerHTML;
DOM.DRAGNDROP.children[0].style.border = '1px solid #aaa';
DOM.DRAGNDROP.children[0].style.boxShadow = '0 0 10px #ddd';
DOM.DRAGNDROP.style.top = e.clientY + 'px';
DOM.DRAGNDROP.style.left = e.clientX + 'px';
DOM.DRAGNDROP.style.display = 'block';
e.target.style.backgroundColor = '#28b965';
pointer.state = true;
}
}, false);
@ -61,11 +60,12 @@ DragnDrop.prototype = {
DOM.DRAGNDROP.style.top = e.clientY + 'px';
DOM.DRAGNDROP.style.left = e.clientX + 'px';
if( pointer.droppableElements.indexOf(e.target) > -1 ) // si on est sur un "receveur"
e.target.style.backgroundColor = '#28b965';
else
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.droppableElements[i].style.backgroundColor = 'inherit';
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.droppableElements[i].style.color = '#777';
if( pointer.droppableElements.indexOf(e.target) > -1 )
e.target.style.color = 'red';
}
}, false);
@ -74,10 +74,6 @@ DragnDrop.prototype = {
if( pointer.state ){
DOM.DRAGNDROP.style.display = 'none';
pointer.state = false;
for( var i = 0 ; i < pointer.draggableElements.length ; i++ )
pointer.draggableElements[i].style.backgroundColor = 'inherit';
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.droppableElements[i].style.backgroundColor = 'inherit';
if( pointer.droppableElements.indexOf(e.target) > -1 ){ // si l'élément est dans la liste des "draggables" et qu'il est "draggé"
pointer.dropElement = e.target;
@ -85,6 +81,9 @@ DragnDrop.prototype = {
console.log('Dest. : '); console.log( pointer.dropElement );
}
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.droppableElements[i].style.color = '#777';
}
}, false);

View File

@ -136,6 +136,14 @@ pageManager.prototype = {
});
},
/* =======================================================================
Met à jour l'URL de la page en fonction de la page chargée et des
variables associées (ne recharge aucune ressource)
======================================================================= */
updateURL: function(){
window.history.pushState(null, this.page, '#/'+this.page+'/'+this.vars.join('/')+'/');
},
/* =======================================================================
Cette fonction est celle qui gère les 2 autres et celle que l'utilisateur utilisera
PARAMETRES:

View File

@ -1,4 +1,5 @@
<?php
<?php require_once __ROOT__.'/manager/security.php';
class DataBase{
@ -23,36 +24,37 @@ class DataBase{
/* retourne une instance de la classe */
public static function getInstance(){
return new DataBase("localhost", "sid", "php", "Qt358nUdyeTxLDM8");
return new DataBase("localhost", "sid2", "php", "Qt358nUdyeTxLDM8");
}
/*********************************************/
/*** création d'un utilisateur dans la bdd ***/
/*********************************************/
public function creerUtilisateur($username, $prenom, $nom, $email, $password, $droits){
$getLastId = $this->pdo->query('SELECT max(`id_utilisateur`) as `id` FROM `utilisateurs`');
$lastId = (int) $getLastId->fetch()['id'];
public function creerUtilisateur($identifiant, $prenom, $nom, $mail, $mdp, $droits){
$getLastCount = $this->pdo->query('SELECT count(identifiant) as count FROM utilisateur');
$lastCount = (int) $getLastCount->fetch()['count'];
// on applique une normalisation
$prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule
$nom = strtoupper($nom); // nom en majuscules
$email = strtolower($email); // email en minuscules
$password = sha1($password); // on hash le password
$prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule
$nom = strtoupper($nom); // nom en majuscules
$mail = strtolower($mail); // email en minuscules
$mdp = sha1($mdp); // on hash le password
$req = $this->pdo->prepare("INSERT INTO `utilisateurs`(`id_utilisateur`, `pseudo`, `prenom`, `nom`, `email`, `password`, `droits`) VALUES(default, :pseudo, :prenom, :nom, :email, :password, :droits)");
$req = $this->pdo->prepare("INSERT INTO utilisateur(identifiant, prenom, nom, mail, mdp, droits) VALUES(:identifiant, :prenom, :nom, :mail, :mdp, :droits)");
$req->execute(array(
':pseudo' => $username,
':prenom' => $prenom ,
':nom' => $nom ,
':email' => $email ,
':password' => $password,
':droits' => $droits
':identifiant' => $identifiant,
':prenom' => $prenom,
':nom' => $nom,
':mail' => $mail,
':mdp' => $mdp,
':droits' => $droits
));
$added = (int) $this->pdo->lastInsertId();
$getNewCount = $this->pdo->query('SELECT count(identifiant) as count FROM utilisateur');
$newCount = (int) $getNewCount->fetch()['count'];
if( $added > $lastId ) // si on a bien ajouté un entrée
if( $newCount > $lastCount ) // si on a bien ajouté un entrée
return 'success';
else
return 'error';
@ -66,23 +68,23 @@ class DataBase{
/*** création d'un groupe dans la bdd ***/
/****************************************/
public function creerGroupe($nom){
$getLastId = $this->pdo->query('SELECT max(`id_groupe`) as `id` FROM `groupes`');
$lastId = (int) $getLastId->fetch()['id'];
$getLastCount = $this->pdo->query('SELECT count(id_groupe) as count FROM groupe');
$lastCount = (int) $getLastCount->fetch()['count'];
// on applique une normalisation
$nom = strtoupper($nom); // nom en majuscules
$req = $this->pdo->prepare("INSERT INTO `groupes`(`id_groupe`, `nom`) VALUES(default, :nom)");
$req = $this->pdo->prepare("INSERT INTO groupe(id_groupe, nom) VALUES(default, :nom)");
$req->execute(array(
':nom' => $nom
));
// echo var_dump( $this->pdo->errorInfo() ).'<br>';
$added = (int) $this->pdo->lastInsertId();
$getNewCount = $this->pdo->query('SELECT count(id_groupe) as count FROM groupe');
$newCount = (int) $getNewCount->fetch()['count'];
if( $added > $lastId ) // si on a bien ajouté un entrée
if( $newCount > $lastCount ) // si on a bien ajouté un entrée
return 'success';
else
return 'error';
@ -92,88 +94,133 @@ class DataBase{
/******************************************************/
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
/******************************************************/
public function ajouterEtudiantGroupe($etudiant, $groupe){
public function ajouterEtudiantGroupe($etudiant, $groupe, $semestre, $annee){
$getLastCount = $this->pdo->query('SELECT count(id_etudiant) as count FROM appartenance');
$lastCount = (int) $getLastCount->fetch()['count'];
// on cherche un utilisateur avec ce pseudo
$getEtudiantUID = $this->pdo->prepare("SELECT `id_utilisateur` FROM `utilisateurs` WHERE `pseudo` = :username");
/*** on cherche un utilisateur avec cet identifiant ***/
$getEtudiantUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :etudiant");
$getEtudiantUID->execute(array(
':username' => $etudiant
':etudiant' => $etudiant
));
// si on trouve, on le définit, sinon on retourne "unknown_user"
if( $etudiantUID = $getEtudiantUID->fetch()['id_utilisateur'] )
$etudiantUID = (int) $etudiantUID;
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
$etudiantUID = $etudiantUID;
else
return 'unknown_user';
echo '[1]';
// on cherche un groupe avec ce nom
$getGroupeUID = $this->pdo->prepare("SELECT `id_groupe` FROM `groupes` WHERE `nom` = :nom");
/*** on cherche un groupe avec ce nom ***/
$getGroupeUID = $this->pdo->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom");
$getGroupeUID->execute(array(
':nom' => $groupe
));
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $groupeUID = $getGroupeUID->fetch()['id_groupe'] )
if( $groupeUID = $getGroupeUID->fetch()['id'] )
$groupeUID = (int) $groupeUID;
else
return 'unknown_group';
echo '[2]';
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
$getSemestreUID->execute(array(
':rang' => $semestre,
':annee' => $annee
));
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $semestreUID = $getSemestreUID->fetch()['id'] )
$semestreUID = (int) $semestreUID;
else
return 'unknown_semestre';
// si on a l'UID utilisateur & l'UID groupe => on créé l'association
$asso = $this->pdo->prepare("INSERT INTO `association_utilisateur_groupe`(`id_utilisateur`, `id_groupe`) VALUES( (SELECT `id_utilisateur` FROM `utilisateurs` WHERE `id_utilisateur` = :utilisateur), (SELECT `id_groupe` FROM `groupes` WHERE `id_groupe` = :groupe) )");
$asso = $this->pdo->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre) ".
"VALUES( ".
"(SELECT identifiant FROM utilisateur WHERE identifiant = :etudiantUID), ".
"(SELECT id_groupe FROM groupe WHERE id_groupe = :groupeUID), ".
"(SELECT id_semestre FROM semestre WHERE id_semestre = :semestreUID) ".
" )");
$asso->execute(array(
':utilisateur' => $etudiantUID,
':groupe' => $groupeUID
':etudiantUID' => $etudiantUID,
':groupeUID' => $groupeUID,
':semestreUID' => $semestreUID
));
echo '[3]';
return 'success';
$getNewCount = $this->pdo->query('SELECT count(id_etudiant) as count FROM appartenance');
$newCount = (int) $getNewCount->fetch()['count'];
if( $newCount > $lastCount ) // si on a bien ajouté un entrée
return 'success';
else
return 'error';
}
/******************************************************/
/*** retourne la liste des utilisateurs d'un groupe ***/
/******************************************************/
public function listeEtudiantsGroupe($groupe){
public function listeEtudiantsGroupe($groupe, $semestre, $annee){
// on cherche un groupe avec ce nom
$getGroupeUID = $this->pdo->prepare("SELECT `id_groupe` FROM `groupes` WHERE `nom` = :nom");
/*** on cherche un groupe avec ce nom ***/
$getGroupeUID = $this->pdo->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom");
$getGroupeUID->execute(array(
':nom' => $groupe
));
// si on trouve pas le groupe, on retourne "unknown_group"
if( !($groupeUID = $getGroupeUID->fetch()['id_groupe']) )
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $groupeUID = $getGroupeUID->fetch()['id'] )
$groupeUID = (int) $groupeUID;
else
return 'unknown_group';
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
$getSemestreUID->execute(array(
':rang' => $semestre,
':annee' => $annee
));
// si le groupe existe => on créé récupère ses utilisateurs
$asso = $this->pdo->prepare("SELECT `u`.`pseudo`, `u`.`prenom`, `u`.`nom`, `u`.`email`, `u`.`droits` ".
"FROM `utilisateurs` as `u`, `groupes` as `g`, `association_utilisateur_groupe` as `asso` ".
"WHERE `u`.`id_utilisateur` = `asso`.`id_utilisateur` ".
"AND `g`.`id_groupe` = `asso`.`id_groupe` ".
"AND `g`.`nom` = :groupe ".
"ORDER BY `u`.`prenom`, `u`.`nom`");
$asso->execute(array(
':groupe' => $groupe
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $semestreUID = $getSemestreUID->fetch()['id'] )
$semestreUID = (int) $semestreUID;
else
return 'unknown_semestre';
// si le groupe existe => on récupère ses utilisateurs
$appartenance = $this->pdo->prepare("SELECT u.identifiant, u.prenom, u.nom, u.mail, u.droits ".
"FROM utilisateur as u, groupe as g, semestre as s, appartenance as app ".
"WHERE u.identifiant = app.id_etudiant ".
"AND g.id_groupe = app.id_groupe ".
"AND s.id_semestre = app.id_semestre ". // à virer (peut-être)
"AND g.id_groupe = :groupeUID ".
"AND s.id_semestre = :semestreUID ".
"ORDER BY u.prenom, u.nom");
$appartenance->execute(array(
':groupeUID' => $groupeUID,
':semestreUID' => $semestreUID
));
$userlist = $asso->fetchAll();
$userlist = $appartenance->fetchAll();
// on supprime les doublons des entrées (indice numérique)
for( $j = 0 ; $j < count($userlist) ; $j++ ) // pour tout les utilisateurs
foreach($userlist[$j] as $col => $val) // pour toutes les entrées
for( $i = 0 ; $i < count($userlist) ; $i++ ) // pour tout les utilisateurs
foreach($userlist[$i] as $col => $val) // pour toutes les entrées
if( is_int($col) ) // si l'indice est un entier
unset( $userlist[$j][$col] ); // on le supprime
unset( $userlist[$i][$col] ); // on le supprime
return $userlist; // on retourne le liste d'utilisateurs
@ -183,19 +230,41 @@ class DataBase{
/******************************************************/
/*** retourne la liste des utilisateurs des groupes ***/
/******************************************************/
public function listeEtudiantsTousGroupes(){
public function listeEtudiantsTousGroupes($semestre, $annee){
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
$getSemestreUID->execute(array(
':rang' => $semestre,
':annee' => $annee
));
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $semestreUID = $getSemestreUID->fetch()['id'] )
$semestreUID = (int) $semestreUID;
else
return 'unknown_semestre';
// on cherche tout les groupes du même semestre de la même année
$getGroupesUID = $this->pdo->prepare("SELECT DISTINCT g.nom ".
"FROM groupe as g, semestre as s, appartenance as app ".
"WHERE g.id_groupe = app.id_groupe ".
"AND s.id_semestre = app.id_semestre ".
"AND s.id_semestre = :semestreUID ".
"ORDER BY g.nom");
$getGroupesUID->execute(array(
':semestreUID' => $semestreUID
));
$grouplist = array(); // contiendra tout les groupes
// on cherche tout les groupes
$getGroupesUID = $this->pdo->query("SELECT `id_groupe`, `nom` FROM `groupes` ORDER BY `nom`");
// on parcourt tous les groupes
while( $groupeUID = $getGroupesUID->fetch() ){
$groupe = new stdClass();
$groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe
$groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom); // on charge la liste des utilisateurs de ce groupe
$groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $semestre, $annee); // on charge la liste des utilisateurs de ce groupe
array_push($grouplist, $groupe); // on l'ajoute au résultat
}
@ -208,16 +277,28 @@ class DataBase{
/***********************************************/
/*** retourne le nom du groupe d'un étudiant ***/
/***********************************************/
public function getGroupeEtudiant($etudiant){
$grouplist = array(); // contiendra tout les groupes
public function getGroupeEtudiant($etudiant, $semestre, $annee){
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
$getSemestreUID->execute(array(
':rang' => $semestre,
':annee' => $annee
));
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $semestreUID = $getSemestreUID->fetch()['id'] )
$semestreUID = (int) $semestreUID;
else
return 'unknown_semestre';
// on cherche le groupe associé
$getNomGroupe = $this->pdo->prepare("SELECT `g`.`nom` ".
"FROM `utilisateurs` as `u`, `groupes` as `g`, `association_utilisateur_groupe` as `asso` ".
"WHERE `u`.`id_utilisateur` = `asso`.`id_utilisateur` ".
"AND `g`.`id_groupe` = `asso`.`id_groupe` ".
"AND `u`.`pseudo` = :etudiant ".
"ORDER BY `g`.`nom`");
$getNomGroupe = $this->pdo->prepare("SELECT g.nom ".
"FROM utilisateur as u, groupe as g, appartenance as app ".
"WHERE u.identifiant = app.id_etudiant ".
"AND g.id_groupe = app.id_groupe ".
"AND u.identifiant = :etudiant ".
"ORDER BY g.nom");
$getNomGroupe->execute(array(
':etudiant' => $etudiant
));
@ -230,6 +311,75 @@ class DataBase{
}
/******************************************/
/*** retourne les modules d'un étudiant ***/
/******************************************/
public function getModulesEtudiant($etudiant, $semestre, $annee){
/*** on cherche un utilisateur avec cet identifiant ***/
$getEtudiantUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :etudiant");
$getEtudiantUID->execute(array(
':etudiant' => $etudiant
));
// si on trouve, on le définit, sinon on retourne "unknown_user"
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
$etudiantUID = $etudiantUID;
else
return 'unknown_user';
/*** on cherche le groupe de cet utilisateur ***/
$getGroupeUID = $this->pdo->prepare("SELECT g.id_groupe as id ".
"FROM utilisateur as u, groupe as g, appartenance as app, semestre as s ".
"WHERE app.id_etudiant = u.identifiant ".
"AND app.id_groupe = g.id_groupe ".
"AND app.id_semestre = s.id_semestre ".
"AND u.identifiant = :etudiant ".
"AND s.rang = :semestre ".
"AND s.annee = :annee");
$getGroupeUID->execute(array(
':etudiant' => $etudiant,
':semestre' => $semestre,
':annee' => $annee
));
// si on trouve, on le définit, sinon on retourne "unknown_user"
if( $groupeUID = $getGroupeUID->fetch()['id'] )
$groupeUID = $groupeUID;
else
return 'unknown_group';
// si on a l'UID utilisateur & l'UID groupe => on récupère les modules
$getModuleList = $this->pdo->prepare("SELECT DISTINCT m.nom, m.libelle ".
"FROM module as m, groupe as g, semestre as s, programme as prog, ue, appartenance as app ".
"WHERE app.id_semestre = prog.id_semestre ".
"AND app.id_semestre = s.id_semestre ".
"AND app.id_groupe = g.id_groupe ".
"AND prog.id_ue = ue.id_ue ".
"AND prog.id_module = m.id_module ".
"AND g.id_groupe = :groupeUID ".
"AND s.rang = :semestre ".
"AND s.annee = :annee ".
"ORDER BY m.nom, m.libelle ASC");
$getModuleList->execute(array(
':groupeUID' => $groupeUID,
':semestre' => $semestre,
':annee' => $annee
));
$modulelist = $getModuleList->fetchAll(); // on récupère la liste des modules
// on supprime les doublons des entrées (indice numérique)
for( $i = 0 ; $i < count($modulelist) ; $i++ ) // pour tout les modules
foreach($modulelist[$i] as $col => $val) // pour toutes les entrées
if( is_int($col) ) // si l'indice est un entier
unset( $modulelist[$i][$col] ); // on le supprime
return $modulelist;
}
@ -240,7 +390,6 @@ class DataBase{
/******************************************************/
/***** déplace un étudiant d'un groupe à un autre *****/
/******************************************************/
public function deplacerEtudiant($nomEtudiant,$nouveauGroupe) {
// !!! Réfléchir à la gestion des AS, LP etc..

View File

@ -41,8 +41,8 @@ require_once __ROOT__.'/manager/database.php';
$areSetParam = isset($request->nom) ; // l'argument existe
$typeOkParam = $areSetParam && is_string($request->nom); // si c'est une string
$nEmptyParam = $typeOkParam && strlen($request->nom) > 0; // d'au moins 1 caractère
$nomCheck = $nEmptyParam && preg_match('/^[a-z -]{1,50}$/i', $request->nom); // nom bon format
$nomCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->nom); // nom bon format
if( $nomCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->creerGroupe($request->nom);
}else
@ -53,14 +53,16 @@ require_once __ROOT__.'/manager/database.php';
/* ajout d'un étudiant à un groupe */
/***********************************/
case 'add':
$areSetParam = isset($request->etudiant) && isset($request->groupe); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe); // si c'est des strings
$areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère
$utilisateurCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // utilisateur (username) bon format
$groupeCheck = $utilisateurCheck && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // groupe (nom) bon format
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
$groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
$semestreCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $groupeCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->ajouterEtudiantGroupe($request->etudiant, $request->groupe);
if( $anneeCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->ajouterEtudiantGroupe($request->etudiant, $request->groupe, $request->semestre, $request->annee);
}else
$answer->request = 'param_error';
break;
@ -69,13 +71,15 @@ require_once __ROOT__.'/manager/database.php';
/* retourne les utilisateurs d'un groupe */
/*****************************************/
case 'userlist':
$areSetParam = isset($request->groupe); // l'argument existe
$typeOkParam = $areSetParam && is_string($request->groupe); // si c'est une string
$areSetParam = isset($request->groupe) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->groupe) > 0; // d'au moins 1 caractère
$groupeCheck = $nEmptyParam && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // groupe (nom) bon format
$groupeCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
$semestreCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $groupeCheck ){ // si tout les paramètres sont bons
$userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->groupe);
if( $anneeCheck ){ // si tout les paramètres sont bons
$userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->groupe, $request->semestre, $request->annee);
if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs
$answer->userlist = $userlist;
@ -92,31 +96,43 @@ require_once __ROOT__.'/manager/database.php';
/* retourne les utilisateurs de tous les groupe */
/************************************************/
case 'grouplist':
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupes();
$areSetParam = isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings
$semestreCheck = $typeOkParam && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
$answer->grouplist = $grouplist;
$answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur
$answer->answer = $grouplist;
if( $anneeCheck ){
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupes($request->semestre, $request->annee);
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
$answer->grouplist = $grouplist;
$answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur
$answer->answer = $grouplist;
}else
return 'param_error';
break;
/**********************************************/
/* retourne le nom du groupe d'un utilisateur */
/**********************************************/
case 'get':
$areSetParam = isset($request->etudiant); // l'argument existe
$typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est une string
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
$semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
$groupe = DataBase::getInstance()->getGroupeEtudiant($request->etudiant);
$groupe = DataBase::getInstance()->getGroupeEtudiant($request->etudiant, $request->semestre, $request->annee);
if( $groupe != 'error' ){ // si on a récupéré quelque chose
$answer->groupe = $groupe;
$answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur
}else // si on a pas "success", alors c'est que $groupe est un message d'erreur
$answer->answer = 'error';
break;

73
manager/modules.php Executable file
View File

@ -0,0 +1,73 @@
<?php
require_once __ROOT__.'/manager/security.php';
require_once __ROOT__.'/manager/database.php';
/***********************************************************
* *
* MANAGER DES MODULES *
* *
************************************************************
* *
* [0] Constantes *
* [1] ROUTAGE de niveau 1 *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [1] ROUTAGE DE NIVEAU 1
============================================================*/
function modules_switch_level_1($request, $answer){
switch( $request->level_1 ){
/***********************************/
/* liste des modules d'un ETUDIANT */
/***********************************/
case 'getByEtudiant':
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{6,100}$/i', $request->etudiant); // nom bon format
$semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons
$modules = DataBase::getInstance()->getModulesEtudiant($request->etudiant, $request->semestre, $request->annee);
if( is_array($modules) ){ // si on a bien un tableau
$answer->modules = $modules; // on renvoie dans answer->modules
$answer->request = 'success'; // et on renvoie success
}else // sinon si c'est pas un tableau
$answer->request = $modules; // on retourne l'erreur
}else
$answer->request = 'param_error';
break;
/***********/
/* DEFAULT */
/***********/
default:
$answer->request = 'unknown_level_1';
break;
}
}
?>

View File

@ -25,7 +25,11 @@
============================================================*/
function getPermissions(){ return array('student', 'teacher', 'master', 'admin'); }
function debug(){
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
}
@ -59,22 +63,18 @@
$PERMISSIONS = getPermissions();
// on vérifie l'intégrité des variables session
$usernameDefinedProperly = isset($_SESSION['username']) && !empty($_SESSION['username']) && gettype($_SESSION['username']) == 'string' && strlen($_SESSION['username']) > 0;
$permissionsDefinedProperly = isset($_SESSION['permissions']) && !empty($_SESSION['permissions']) && gettype($_SESSION['permissions']) == 'string' && strlen($_SESSION['permissions']) > 0;
$identifiantDefinedProperly = isset($_SESSION['identifiant']) && !empty($_SESSION['identifiant']) && gettype($_SESSION['identifiant']) == 'string' && strlen($_SESSION['identifiant']) > 0;
$droitsDefinedProperly = isset($_SESSION['droits']) && !empty($_SESSION['droits']) && gettype($_SESSION['droits']) == 'string' && strlen($_SESSION['droits']) > 0;
// si les variables sessions ne sont pas toutes les 2 correctes
if( !($usernameDefinedProperly && $permissionsDefinedProperly) ){
$_SESSION['username'] = null; // on les initialise à NULL
$_SESSION['permissions'] = null;
if( !($identifiantDefinedProperly && $droitsDefinedProperly) ){
$_SESSION['identifiant'] = null; // on les initialise à NULL
$_SESSION['droits'] = null;
}
}session_init();
function debug(){
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
}

View File

@ -43,18 +43,19 @@ require_once __ROOT__.'/manager/database.php';
/* authentification (login) */
/****************************/
case 'authentification':
$areSetParam = isset($request->username) && isset($request->password); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->username) && is_string($request->password); // ils sont tous 2 des string
$nEmptyParam = $typeOkParam && strlen($request->username) > 0 && strlen($request->password) > 0; // d'au moins 1 caractère
$usernameCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->username); // username bon format
$passwordCheck = $usernameCheck && preg_match('/^[\w -]{6,100}$/i', $request->password); // password bon format
$areSetParam = isset($request->identifiant) && isset($request->mdp); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->identifiant) && is_string($request->mdp); // ils sont tous 2 des string
$nEmptyParam = $typeOkParam && strlen($request->identifiant) > 0 && strlen($request->mdp) > 0; // d'au moins 1 caractère
$identifiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant bon format
$mdpCheck = $identifiantCheck && preg_match('/^[\w -]{6,100}$/i', $request->mdp); // mdp bon format
if( $passwordCheck ) // si tout les params sont ok
$answer->request = user_authentification($request->username, $request->password);
if( $mdpCheck ) // si tout les params sont ok
$answer->request = user_authentification($request->identifiant, $request->mdp);
else{
if ( !$areSetParam ) $answer->request= 'missing_param';
if ( !$areSetParam ) $answer->request = 'missing_param';
elseif( !$typeOkParam ) $answer->request = 'wrong_type';
else $answer->request = 'empty_param';
elseif( !$nEmptyParam ) $answer->request = 'empty_param';
else $answer->request = 'wrong password';
}
break;
@ -63,8 +64,8 @@ require_once __ROOT__.'/manager/database.php';
/* déconnection */
/*****************/
case 'exit':
$_SESSION['username'] = null; // on supprime l'identifiant
if( $_SESSION['username'] == null )
$_SESSION['identifiant'] = null; // on supprime l'identifiant
if( $_SESSION['identifiant'] == null )
$answer->request = 'success'; // succès
else
$answer->request = 'error';
@ -74,18 +75,18 @@ require_once __ROOT__.'/manager/database.php';
/* création d'utilisateur */
/**************************/
case 'create':
$areSetParam = isset($request->username) && isset($request->prenom) && isset($request->nom) && isset($request->email) && isset($request->password) && isset($request->droits); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->username) && is_string($request->prenom) && is_string($request->nom) && is_string($request->email) && is_string($request->password) && is_string($request->droits); // ils sont tous 2 des string
$nEmptyParam = $typeOkParam && strlen($request->username) > 0 && strlen($request->prenom) > 0 && is_string($request->nom) && is_string($request->email) && is_string($request->password) && is_string($request->droits); // d'au moins 1 caractère
$usernameCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->username); // username bon format
$prenomCheck = $usernameCheck && preg_match('/^[a-z -]{3,50}$/i', $request->prenom); // prenom bon format
$nomCheck = $prenomCheck && preg_match('/^[a-z -]{3,50}$/i', $request->nom); // nom bon format
$emailCheck = $nomCheck && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $request->email); // email bon format
$passwordCheck = $emailCheck && preg_match('/^[\w -]{6,100}$/i', $request->password); // password bon format
$droitsCheck = $passwordCheck && is_int(array_search($request->droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format
$areSetParam = isset($request->identifiant) && isset($request->prenom) && isset($request->nom) && isset($request->mail) && isset($request->mdp) && isset($request->droits); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->identifiant) && is_string($request->prenom) && is_string($request->nom) && is_string($request->mail) && is_string($request->mdp) && is_string($request->droits); // ils sont tous 2 des string
$nEmptyParam = $typeOkParam && strlen($request->identifiant) > 0 && strlen($request->prenom) > 0 && is_string($request->nom) && is_string($request->mail) && is_string($request->mdp) && is_string($request->droits); // d'au moins 1 caractère
$identifiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant bon format
$prenomCheck = $identifiantCheck && preg_match('/^[a-z -]{3,50}$/i', $request->prenom); // prenom bon format
$nomCheck = $prenomCheck && preg_match('/^[a-z -]{3,50}$/i', $request->nom); // nom bon format
$mailCheck = $nomCheck && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $request->mail); // mail bon format
$mdpCheck = $mailCheck && preg_match('/^[\w -]{6,100}$/i', $request->mdp); // mdp bon format
$droitsCheck = $mdpCheck && is_int(array_search($request->droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format
if( $droitsCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->creerUtilisateur($request->username, $request->prenom, $request->nom, $request->email, $request->password, $request->droits);
$answer->request = DataBase::getInstance()->creerUtilisateur($request->identifiant, $request->prenom, $request->nom, $request->mail, $request->mdp, $request->droits);
}else
$answer->request = 'param_error';
break;
@ -158,8 +159,8 @@ require_once __ROOT__.'/manager/database.php';
// [3] On check le mot de passe
if( $userList->{$username}->password == $password ){
// on définit les variables session
$_SESSION['username'] = $username;
$_SESSION['permissions'] = $userList->{$username}->permissions;
$_SESSION['identifiant'] = $username;
$_SESSION['droits'] = $userList->{$username}->permissions;
return 'success';
}else
return 'wrong_password';

View File

@ -1,80 +0,0 @@
/***********************************************************
* *
* SCRIPT LOCAL DE LA PAGE D'AUTHENTIFICATION *
* *
************************************************************
* *
* [0] Variables *
* [1] Gestion des formulaires *
* [a] Gestion des réponses *
* [b] Initialisation des formulaires *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [0] Variables
==============================================================*/
var subSections = document.querySelectorAll('hgroup');
/* [1] Gestion des formulaires
==============================================================*/
/* [a] Gestion des réponses
==============================================================*/
/* GESTION DU COMPORTEMENT EN FONCTION DE LA REPONSE POUR LE [LOGIN]
*
* @param response
*
* Gestion de toutes les réponse possibles avec une "messageBox" ou de redirection
*
*/
function manageAuthentificationResponse(response){
switch( response.request ){
case 'success':
messageBox('Vous êtes maintenant connecté', 'success'); // on affiche le message
selectSection( document.querySelector('#MENU li:first-child') ); // on redirige vers la page d'accueil
break;
// case 'missing_param': messageBox('Un des champs requis n\'est pas présent', 'warning'); break;
// case 'empty_param': messageBox('Un des champs requis est vide', 'warning'); break;
// case 'unknown_user': messageBox('Nom d\'utilisateur inconnu', 'error'); break;
// case 'wrong_password': messageBox('Mot de passe incorrect', 'error'); break;
case 'empty_param': case 'missing_param': case 'unknown_user': case 'wrong_password':
messageBox('Identifiants incorrects', 'error');
break;
default:
messageBox('Erreur interne', 'error');
break;
}
}
/* [b] Initialisation des formulaires
==============================================================*/
initForm( // initialisation du formulaire de connection
document.querySelector('#user'), // formulaire (élément DOM)
function(request){ // handler
// ajout d'informations à la requête
request.level_0 = 'user';
request.level_1 = 'authentification';
API.send(request, function(response){ manageAuthentificationResponse(response); });
}
);

View File

@ -33,6 +33,8 @@ if( document.querySelector('#CONTAINER hgroup.active') == null )
var request = {
level_0: 'groups',
level_1: 'grouplist',
semestre: '3',
annee: '2015',
};
// console.log( request );
@ -54,4 +56,24 @@ function afficherCacherGroupes(e){
}
DOM.CONTAINER.addEventListener('click', afficherCacherGroupes, false);
DOM.CONTAINER.addEventListener('click', afficherCacherGroupes, false);
/* GESTION DU DRAG N DROP */
if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ // si c'set l'admin
var dnd = new DragnDrop();
var members = document.querySelectorAll('#CONTAINER section[name=movestudents] table tr td:not(.more)');
for( var i = 0 ; i < members.length ; i++ )
dnd.setDraggable(members[i]);
var groups = document.querySelectorAll('#CONTAINER section[name=movestudents] table thead th:first-child');
for( var i = 0 ; i < groups.length ; i++ )
dnd.setDroppable(groups[i]);
dnd.init();
}

View File

@ -1,42 +0,0 @@
<?php require('../manager/security.php'); session_init();
/****************************/
/* FORMULAIRE DE CONNECTION */
/****************************/
?>
<hgroup class='active'>Connection</hgroup>
<section>
<form id='user' style='width: 20em; margin-left: calc(50% - 20em/2);'>
<input type='text' name='username' placeholder='username' class='user' style='width:calc( 100% - 2*1.8em );'>
<input type='password' name='password' placeholder='password' style='width:calc( 100% - 2*1.8em );'>
<input type='button' name='submit' value='Connection' style='width:50%;margin-left: 25%;'>
</form>
</section>
<?php
/***************************/
/* VISUALISATION DU PROFIL */
/***************************/
if( isset($_SESSION['permissions']) && $_SESSION['permissions'] != null ){ ?>
<hgroup>Mon Profil</hgroup>
<section>
username = <?php echo $_SESSION['username']; ?><br>
droits = <?php echo $_SESSION['permissions']; ?>
</section>
<?php } ?>

View File

@ -1,4 +1,5 @@
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/security.php';
require_once __ROOT__.'/manager/groups.php';
/****************************************
@ -19,13 +20,15 @@ require_once __ROOT__.'/manager/groups.php';
<section name='allgroups' title='tous les groupes' class='basic'>
<?php if( $_SESSION['username'] != null ){ // si connecté
<?php if( $_SESSION['identifiant'] != null ){ // si connecté
$request = new stdClass();
$answer = new stdClass();
$request->level_1 = 'grouplist';
$request->level_1 = 'grouplist';
$request->semestre = '3';
$request->annee = '2015';
groups_switch_level_1($request, $answer);
@ -90,14 +93,16 @@ require_once __ROOT__.'/manager/groups.php';
/******************/
/*** MON GROUPE ***/
/******************/
if( $_SESSION['username'] != null && $_SESSION['permissions'] == 'student' ){ // si l'utilisateur est connecté et que c'est un élève
if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // si l'utilisateur est connecté et que c'est un élève
echo "<section name='mygroup' title='Mon groupe' class='basic'>";
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'get';
$request->etudiant = $_SESSION['username'];
$request->etudiant = $_SESSION['identifiant'];
$request->semestre = '3';
$request->annee = '2015';
groups_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si pas d'erreur
@ -106,6 +111,8 @@ if( $_SESSION['username'] != null && $_SESSION['permissions'] == 'student' ){ //
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'userlist';
$request->groupe = $monGroupe;
$request->semestre = '3';
$request->annee = '2015';
groups_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
@ -149,13 +156,15 @@ if( $_SESSION['username'] != null && $_SESSION['permissions'] == 'student' ){ //
/****************************/
/*** DEPLACEMENT D'ELEVES ***/
/****************************/
if( $_SESSION['username'] != null && $_SESSION['permissions'] == 'admin' ){ // si l'utilisateur est connecté et que c'est un élève
if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'admin' ){ // si l'utilisateur est connecté et que c'est un élève
echo "<section name='movestudents' title=\"Déplacements\" class='basic'>";
$request = new stdClass();
$answer = new stdClass();
$request->level_1 = 'grouplist';
$request->semestre = '3';
$request->annee = '2015';
groups_switch_level_1($request, $answer);

View File

@ -1,4 +1,5 @@
<?php require('../manager/security.php'); session_init();
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/groups.php';
/****************************************
* *
@ -12,9 +13,9 @@
* [4] Répartir les élèves (admin)
*
*****************************************/
?>
<section name='home' title='Présentation'>
<p data-pre='admin1'>Bienvenue sur la plateforme de gestion des étudiants de l'IUT Informatique de l'université Paul Sabatier, Toulouse 3</p>
</section>

View File

@ -1,4 +1,64 @@
<?php require('../manager/security.php'); session_init(); ?>
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/security.php';
debug();
require_once __ROOT__.'/manager/groups.php';
require_once __ROOT__.'/manager/modules.php';
/****************************************
* *
* SECTION "GROUPES" *
* *
*****************************************
*
* [1] Présentation (studend + prof)
* [2] Tout les groupes (tous connecté)
* [3] Modifier les groupes (admin)
* [4] Répartir les élèves (admin)
*
*****************************************/
?>
modules.php
<!-- mes modules -->
<?php
/*******************/
/*** MES MODULES ***/
/*******************/
if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // si l'utilisateur est connecté et que c'est un élève
echo "<section name='mymodules' title='Mes modules' class='basic'>";
$request = new stdClass(); $answer = new stdClass();
debug();
$request->level_1 = 'getByEtudiant';
$request->etudiant = $_SESSION['identifiant'];
$request->semestre = '3';
$request->annee = '2015';
modules_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
////////////////////////////////////////////////////////////////////////////////
foreach($answer->modules as $module){
echo "<table class='basic'>";
echo "<thead class='active'><tr>";
echo '<th colspan=5>'.$module['nom'].'</th>';
echo '</tr></thead>';
echo '<tbody>';
echo '<tr><td>'.$module['libelle'].'</td></tr>';
echo '</tbody>';
echo '</table>';
}
////////////////////////////////////////////////////////////////////////////////
}else
echo "Erreur interne.";
echo '</section>';
} ?>

View File

@ -4,6 +4,11 @@
"password" : "eleve1password"
},
"eme1913a": {
"permissions": "student",
"password" : "password"
},
"eleve2": {
"permissions": "student",
"password" : "eleve2password"

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,20 @@
<?php define('__ROOT__', dirname(__FILE__) );
require_once __ROOT__.'/manager/security.php';
/*** CRÉATION D'UTILISATEUR ***/
// require('manager/user.php');
// debug();
// $request = new stdClass();
// $answer = new stdClass();
// $request->level_1 = 'create';
// $request->username = 'fvg1856a';
// $request->identifiant = 'fvg1856a';
// $request->prenom = 'guillaume';
// $request->nom = 'fauvet';
// $request->email = 'guillaume.fauvet@etu.iut-tlse3.fr';
// $request->password = ' Test_Password _';
// $request->mail = 'guillaume.fauvet@etu.iut-tlse3.fr';
// $request->mdp = ' Test_Password _';
// $request->droits = 'student';
@ -38,15 +39,13 @@
/*** CRÉATION GROUPE ***/
// require('manager/groups.php');
// require_once __ROOT__.'/manager/groups.php';
// $request = new stdClass();
// $answer = new stdClass();
// $request->level_1 = 'create';
// $request->nom = 'F';
// $request->nom = 'S4C';
// groups_switch_level_1($request, $answer);
@ -73,12 +72,47 @@
// require __ROOT__.'/manager/groups.php';
// $request = new stdClass();
// $answer = new stdClass();
// $request->level_1 = 'add';
// $request->etudiant = 'fvg1856a'; // utilisateur.username
// $request->groupe = 'A'; // groupe.nom
// $request->level_1 = 'add';
// $request->etudiant = 'fvg1856a'; // utilisateur.identifiant
// $request->groupe = 'S3A'; // groupe.nom
// $request->semestre = '3'; // semestre.rang
// $request->annee = '2015'; // semestre.annee
// groups_switch_level_1($request, $answer);
// echo var_dump( $answer );
// echo "<br><br><br><br><br><br><br>It works !";
/*** AFFICHER LE GROUPE D'UN ETUDIANT ***/
// require __ROOT__.'/manager/groups.php';
// $request = new stdClass();
// $answer = new stdClass();
// $request->level_1 = 'get';
// $request->etudiant = 'ihf1991a'; // utilisateur.identifiant
// $request->semestre = '3'; // groupe.nom
// $request->annee = '2015'; // groupe.nom
// groups_switch_level_1($request, $answer);
@ -102,6 +136,10 @@
/*** AFFICHER LES MEMBRES D'UN GROUPE ***/
// require('manager/groups.php');
@ -109,8 +147,10 @@
// $request = new stdClass();
// $answer = new stdClass();
// $request->level_1 = 'userlist';
// $request->groupe = 'E'; // groupe.nom
// $request->level_1 = 'userlist';
// $request->groupe = 'S3A'; // groupe.nom
// $request->semestre = '3'; // semestre.rang
// $request->annee = '2015'; // semestre.annee
// groups_switch_level_1($request, $answer);
@ -134,25 +174,29 @@
/*** AFFICHER LES MEMBRES DE TOUS LES GROUPES ***/
// require('manager/groups.php');
require('manager/groups.php');
// $request = new stdClass();
// $answer = new stdClass();
$request = new stdClass();
$answer = new stdClass();
// $request->level_1 = 'grouplist';
$request->level_1 = 'grouplist';
$request->semestre = '3';
$request->annee = '2015';
// groups_switch_level_1($request, $answer);
groups_switch_level_1($request, $answer);
// var_dump( $answer );
// echo '<br><br><br><br>';
var_dump( $answer );
echo '<br><br><br><br>';
// foreach($answer->grouplist as $group)
// foreach($group as $userlist)
// foreach($userlist as $user)
// foreach($user as $key=>$value)
// echo $key.' = '.$value.'<br>';
foreach($answer->grouplist as $group){
echo "<br>=== GROUPE ".$group->nom."===<br>";
foreach($group as $userlist)
foreach($userlist as $user)
foreach($user as $key=>$value)
echo $key.' = '.$value.'<br>';
}
// echo "<br><br><br><br><br><br><br>It works !";
echo "<br><br><br><br><br><br><br>It works !";

View File

@ -25,26 +25,29 @@ foreach( $sample as $user ){
foreach($user as $k=>$v)
switch($k){
case 'pseudo': $request1->username = $v; break;
case 'prenom': $request1->prenom = $v; break;
case 'nom': $request1->nom = $v; break;
case 'email': $request1->email = $v; break;
case 'password': $request1->password = sha1($v); break;
case 'droits': $request1->droits = $v; break;
case 'identifiant': $request1->identifiant = $v; break;
case 'prenom' : $request1->prenom = $v; break;
case 'nom' : $request1->nom = $v; break;
case 'mail' : $request1->mail = $v; break;
case 'mdp' : $request1->mdp = $v; break;
case 'droits' : $request1->droits = $v; break;
}
user_switch_level_1($request1, $answer1);
echo $request1->username;
echo $request1->identifiant;
if( $answer1->request == 'success' ){
/* AJOUT A UN GROUPE */
$request2->etudiant = $request1->username; // utilisateur.username
$request2->groupe = chr(rand(65,70)); // groupe entre A - F
$rang = ''.(rand(1,4));
$request2->etudiant = $request1->identifiant; // utilisateur.identifiant
$request2->groupe ='S'.$rang.chr(rand(65,70)); // groupe entre S1A - S4F
$request2->semestre = $rang; // semestre.rang
$request2->annee = '2015'; // semestre.annee
groups_switch_level_1($request2, $answer2);
echo 'yeah';
if( $answer2->request == 'success' )
echo '['.$request2->groupe.']<br>';

141
xdoc/requêtes_sql_types.sql Normal file → Executable file
View File

@ -1,49 +1,134 @@
/*************************************************/
/*** AFFICHE LES LIENS ENTRE TOUTES LES TABLES ***/
/*************************************************/
SELECT DISTINCT util.pseudo as pseudo, g.nom as groupe, m.identifiant as module, u.nom as UE, s.nom as semestre, s.annee as annee
FROM utilisateurs as util, groupes as g, association_utilisateur_groupe as asso1, modules as m, ue as u, semestre as s, association_module_semestre_ue as asso2
WHERE asso2.id_module = m.id_module
AND asso2.id_ue = u.id_ue
AND asso2.id_semestre = s.id_semestre
/*****************/
/*** REFLEXION ***/
/*****************/
AND asso1.id_groupe = g.id_groupe
AND asso1.id_semestre = s.id_semestre
AND asso1.id_utilisateur = util.id_utilisateur
/*
* 1 etudiant (utilisateur) s'inscrit à un semestre
* + 1 semestre pour une année scolaire particulière contient les modules d'un UE
* + un UE pour un semestre+année particuliers contient des modules
* + un module pour un groupe particulier contient des notes
*
* [ETUDIANT] est membre d'un [GROUPE] associé à un [SEMESTRE] qui contient des [UE] qui en fonction de l [ANNEE] ont certains [MODULES]
*
******************************************************************************************************************************************
*
* [ETUDIANT] || [ADMIN] || [PROF]
* + identifiant (mrd1609a)
* + prenom (adrien)
* + nom (LIGOU-MARQUES)
* + email (adrien.ligou-marques@etu.iut-tlse3.fr)
* + mdp (89N7VNIOUDJOFUJSO83YNERDLUSC)
* + droits (etu|admin|prof|saisienote|visunote|visuetu|...)
*
* [GROUPE]
* + id_groupe (++)
* + nom (S1A)
*
* [SEMESTRE]
* + id_semestre (++)
* + nom (S1)
* + rang (1,2,3 ou 4)
* + annee (2015) => année scolaire 2015-2016
*
* [MODULE]
* + id_module (++)
* + nom (M2105)
* + libelle (Algorithmique et structure de données)
*
* [UE]
* + id_ue (++)
* + nom (UE1)
* + libelle (Informatique générale)
*
* [APPARTENANCE]
* + id_etudiant (mrd1609a)
* + id_groupe (4) => A
* + id_semestre (63) => S3
*
* [PROGRAMME]
* + id_semestre (63) => S3
* + id_ue (3) => UE3
* + id_module (39) => M3305
*
* [ETUDIANT] membre d'un [GROUPE] associé à un [SEMESTRE] = appartenance_groupe [id_etudiant, id_groupe, id_semestre]
*
* [UE] contient des [MODULES] en fonction du [SEMESTRE] = programme [id_semestre, id_ue, id_module]
*
*
*/
ORDER BY g.nom, util.pseudo ASC;
/******************************************************/
/*** AFFICHE LES MODULES D'UN GROUPE POUR UNE ANNEE ***/
/******************************************************/
SELECT DISTINCT g.nom as groupe, m.nom as module, m.libelle
FROM module as m, groupe as g, semestre as s, programme as prog, ue, appartenance as app
WHERE app.id_semestre = prog.id_semestre
AND app.id_semestre = s.id_semestre
AND app.id_groupe = g.id_groupe
AND ue.id_ue = prog.id_ue
AND m.id_module = prog.id_module
AND s.annee = '2015'
AND g.nom = 'S3A'
ORDER BY g.nom, m.nom, m.libelle ASC
/**********************************/
/*** AFFICHE LES MODULES PAR UE ***/
/**********************************/
SELECT DISTINCT u.nom as UE, m.identifiant as module
FROM modules as m, ue as u, association_module_semestre_ue as asso
WHERE asso.id_module = m.id_module
AND asso.id_ue = u.id_ue
ORDER BY u.nom, m.identifiant ASC;
SELECT DISTINCT ue.nom as UE, m.nom as module, m.libelle
FROM module as m, ue, semestre as s, programme as prog
WHERE prog.id_semestre = s.id_semestre
AND prog.id_module = m.id_module
AND prog.id_ue = ue.id_ue
AND ue.nom = 'UE1'
ORDER BY ue.nom, m.nom, m.libelle ASC
/*****************************************************/
/*** AFFICHER LES ANNES AVEC LES MODULES ET LES UE ***/
/*****************************************************/
SELECT DISTINCT semestre.annee as annee, ue.nom as UE, module.nom as module
FROM module, ue, semestre, programme as p
WHERE p.id_module = module.id_module
AND p.id_semestre = semestre.id_semestre
AND p.id_ue = ue.id_ue
ORDER BY semestre.annee DESC, ue.nom ASC;
/************************************/
/*** AFFICHE LES UE PAR SEMESTRES ***/
/************************************/
SELECT DISTINCT s.nom as semestre, u.nom as UE
FROM ue as u, semestre as s, association_module_semestre_ue as asso
WHERE asso.id_ue = u.id_ue
AND asso.id_semestre = s.id_semestre
ORDER BY s.nom, u.nom ASC;
/************************************/s
SELECT DISTINCT s.nom as semestre, ue.nom as UE
FROM semestre as s, ue, programme as prog
WHERE prog.id_semestre = s.id_semestre
AND prog.id_ue = ue.id_ue
AND s.annee = '2015'
ORDER BY s.nom, ue.nom ASC
/****************************************/
/*** AFFICHE LES MODULES PAR SEMESTRE ***/
/****************************************/
SELECT DISTINCT s.nom as semestre, m.identifiant as module
FROM modules as m, semestre as s, association_module_semestre_ue as asso
WHERE asso.id_module = m.id_module
AND asso.id_semestre = s.id_semestre
ORDER BY s.nom, m.identifiant ASC;
SELECT DISTINCT s.annee as annee, ue.nom as UE, m.nom as module
FROM module as m, semestre as s, ue, programme as prog
WHERE prog.id_semestre = s.id_semestre
AND prog.id_ue = ue.id_ue
AND prog.id_module = m.id_module
ORDER BY s.annee, ue.nom, m.nom ASC
/*************************************************/
/*** AFFICHE LE NOMBRE DE MODULES PAR SEMESTRE ***/
/*************************************************/
SELECT DISTINCT s.annee as annee, ue.nom as UE, count(m.nom) as nb_modules
FROM module as m, semestre as s, ue, programme as prog
WHERE prog.id_semestre = s.id_semestre
AND prog.id_ue = ue.id_ue
AND prog.id_module = m.id_module
GROUP BY s.annee, ue.nom
ORDER BY s.annee, ue.nom, m.nom ASC
/******************************************/

713
xdoc/sid.sql Normal file → Executable file
View File

@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le: Dim 25 Octobre 2015 à 19:39
-- Généré le: Mer 28 Octobre 2015 à 18:05
-- Version du serveur: 5.5.44-0ubuntu0.14.04.1
-- Version de PHP: 5.5.9-1ubuntu4.13
@ -17,230 +17,250 @@ SET time_zone = "+00:00";
/*!40101 SET NAMES utf8 */;
--
-- Base de données: `sid`
-- Base de données: `sid2`
--
CREATE DATABASE IF NOT EXISTS `sid` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `sid`;
-- --------------------------------------------------------
--
-- Structure de la table `association_module_semestre_ue`
-- Structure de la table `appartenance`
--
CREATE TABLE IF NOT EXISTS `association_module_semestre_ue` (
`id_module` int(11) NOT NULL,
`id_ue` int(11) NOT NULL,
CREATE TABLE IF NOT EXISTS `appartenance` (
`id_etudiant` varchar(8) NOT NULL,
`id_groupe` int(11) NOT NULL,
`id_semestre` int(11) NOT NULL,
KEY `id_module` (`id_module`,`id_ue`,`id_semestre`),
KEY `id_ue` (`id_ue`),
KEY `id_semestre` (`id_semestre`)
KEY `id_etudiant` (`id_etudiant`),
KEY `id_groupe` (`id_groupe`),
KEY `id_semestre` (`id_semestre`),
KEY `identifiant` (`id_etudiant`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- RELATIONS POUR LA TABLE `association_module_semestre_ue`:
-- RELATIONS POUR LA TABLE `appartenance`:
-- `id_etudiant`
-- `utilisateur` -> `identifiant`
-- `id_groupe`
-- `groupe` -> `id_groupe`
-- `id_semestre`
-- `semestre` -> `id_semestre`
--
--
-- Contenu de la table `appartenance`
--
INSERT INTO `appartenance` (`id_etudiant`, `id_groupe`, `id_semestre`) VALUES
('ydw1981a', 25, 3),
('ihf1991a', 26, 4),
('mma1990a', 23, 3),
('lme1952a', 9, 3),
('imf1922a', 9, 3),
('gyy1983a', 28, 4),
('otm1902a', 28, 4),
('tnx1949a', 25, 3),
('sjl1937a', 12, 2),
('anj1991a', 4, 2),
('xdh1989a', 6, 4),
('agl1956a', 11, 1),
('mhu1946a', 17, 1),
('cvv1936a', 22, 2),
('mzh1955a', 27, 4),
('pdi1904a', 13, 3),
('cuk1947a', 23, 3),
('non1968a', 7, 1),
('hmn1970a', 16, 1),
('hth1975a', 22, 2),
('liw1940a', 11, 1),
('dtg1946a', 6, 4),
('oxz1985a', 12, 2),
('ono1984a', 27, 4),
('auy1966a', 10, 4),
('dui1946a', 27, 4),
('cyw1979a', 4, 2),
('pfv1965a', 11, 1),
('oqz1937a', 13, 3),
('aft1950a', 20, 2),
('bae1943a', 22, 2),
('kul1903a', 19, 1),
('rmj1965a', 9, 3),
('yyt1926a', 16, 1),
('ktz1997a', 27, 4),
('hku1995a', 5, 3),
('zgy1948a', 7, 1),
('vau1957a', 7, 1),
('hsx1927a', 5, 3),
('eca1977a', 11, 1),
('wpa1966a', 4, 2),
('qoe1974a', 16, 1),
('tkz1955a', 7, 1),
('wnx1995a', 16, 1),
('sft1994a', 9, 3),
('vgb1979a', 22, 2),
('wbt1993a', 11, 1),
('xtb1903a', 27, 4),
('msj1985a', 25, 3),
('wvn1982a', 20, 2),
('psg1965a', 25, 3),
('hpa1908a', 24, 3),
('maq1980a', 21, 2),
('agq1929a', 28, 4),
('gwe1975a', 6, 4),
('gdb1939a', 4, 2),
('jrc1974a', 17, 1),
('jfa1965a', 10, 4),
('buz1982a', 24, 3),
('mhr1952a', 10, 4),
('pos1958a', 7, 1),
('xdi1926a', 11, 1),
('awl1901a', 25, 3),
('uix1942a', 7, 1),
('ngz1932a', 26, 4),
('kpf1942a', 26, 4),
('aiv1989a', 23, 3),
('sjw1936a', 21, 2),
('fei1944a', 8, 2),
('zge1937a', 10, 4),
('rpl1936a', 4, 2),
('hrv1902a', 12, 2),
('djo1928a', 5, 3),
('scm1996a', 13, 3),
('ylq1926a', 26, 4),
('eme1913a', 5, 3),
('otv1930a', 27, 4),
('cda1951a', 20, 2),
('eee1933a', 26, 4),
('kfx1995a', 27, 4),
('jgd1966a', 19, 1),
('rwg1909a', 21, 2),
('ngw1997a', 20, 2),
('obg1973a', 24, 3),
('hzg1935a', 14, 4),
('iyh1918a', 10, 4),
('tdc1978a', 8, 2),
('swd1951a', 5, 3),
('vdj1905a', 12, 2),
('bit1985a', 8, 2),
('iah1936a', 6, 4),
('ypt1989a', 19, 1),
('ljc1902a', 26, 4),
('hcc1997a', 24, 3),
('bky1924a', 11, 1),
('vul1953a', 12, 2),
('ssr1906a', 21, 2),
('yjh1944a', 16, 1),
('ste1994a', 21, 2),
('ypo1964a', 9, 3);
-- --------------------------------------------------------
--
-- Structure de la table `groupe`
--
CREATE TABLE IF NOT EXISTS `groupe` (
`id_groupe` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_groupe`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;
--
-- Contenu de la table `groupe`
--
INSERT INTO `groupe` (`id_groupe`, `nom`) VALUES
(2, 'S1A'),
(4, 'S2A'),
(5, 'S3A'),
(6, 'S4A'),
(7, 'S1B'),
(8, 'S2B'),
(9, 'S3B'),
(10, 'S4B'),
(11, 'S1C'),
(12, 'S2C'),
(13, 'S3C'),
(14, 'S4C'),
(16, 'S1E'),
(17, 'S1D'),
(19, 'S1F'),
(20, 'S2D'),
(21, 'S2E'),
(22, 'S2F'),
(23, 'S3D'),
(24, 'S3E'),
(25, 'S3F'),
(26, 'S4D'),
(27, 'S4E'),
(28, 'S4F');
-- --------------------------------------------------------
--
-- Structure de la table `module`
--
CREATE TABLE IF NOT EXISTS `module` (
`id_module` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`libelle` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_module`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
--
-- Contenu de la table `module`
--
INSERT INTO `module` (`id_module`, `nom`, `libelle`) VALUES
(1, 'M1101', 'Bases de l''algorithmique'),
(2, 'M1102', 'Programmation web'),
(3, 'M2101', 'Magazine'),
(4, 'M2102', 'Affiche'),
(5, 'M3101', 'Algorithmique et structures de données'),
(6, 'M3102', 'Programmation Orientée Objet'),
(7, 'M4101', 'Stage partie 1'),
(8, 'M4102', 'Stage partie 2');
-- --------------------------------------------------------
--
-- Structure de la table `programme`
--
CREATE TABLE IF NOT EXISTS `programme` (
`id_programme` int(11) NOT NULL AUTO_INCREMENT,
`id_module` int(11) NOT NULL,
`id_ue` int(11) NOT NULL,
`id_semestre` int(11) NOT NULL,
PRIMARY KEY (`id_programme`),
KEY `id_module` (`id_module`),
KEY `id_ue` (`id_ue`),
KEY `id_semestre` (`id_semestre`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
--
-- RELATIONS POUR LA TABLE `programme`:
-- `id_semestre`
-- `semestre` -> `id_semestre`
-- `id_module`
-- `modules` -> `id_module`
-- `module` -> `id_module`
-- `id_ue`
-- `ue` -> `id_ue`
--
--
-- Contenu de la table `association_module_semestre_ue`
-- Contenu de la table `programme`
--
INSERT INTO `association_module_semestre_ue` (`id_module`, `id_ue`, `id_semestre`) VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 3),
(4, 4, 4),
(5, 1, 1);
-- --------------------------------------------------------
--
-- Structure de la table `association_utilisateur_groupe`
--
CREATE TABLE IF NOT EXISTS `association_utilisateur_groupe` (
`id_utilisateur` int(11) NOT NULL,
`id_groupe` int(11) NOT NULL,
`id_semestre` int(11) NOT NULL,
PRIMARY KEY (`id_utilisateur`,`id_groupe`),
UNIQUE KEY `id_utilisateur` (`id_utilisateur`,`id_groupe`),
UNIQUE KEY `id_utilisateur_2` (`id_utilisateur`,`id_groupe`),
UNIQUE KEY `id_utilisateur_3` (`id_utilisateur`,`id_groupe`),
UNIQUE KEY `id_utilisateur_4` (`id_utilisateur`,`id_groupe`),
KEY `asso_groupe_utilisateur-foreign_groupe` (`id_groupe`),
KEY `id_semestre` (`id_semestre`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- RELATIONS POUR LA TABLE `association_utilisateur_groupe`:
-- `id_groupe`
-- `groupes` -> `id_groupe`
-- `id_utilisateur`
-- `utilisateurs` -> `id_utilisateur`
--
--
-- Contenu de la table `association_utilisateur_groupe`
--
INSERT INTO `association_utilisateur_groupe` (`id_utilisateur`, `id_groupe`, `id_semestre`) VALUES
(13, 5, 1),
(14, 5, 1),
(15, 2, 1),
(42, 2, 1),
(57, 3, 1),
(58, 7, 1),
(59, 5, 1),
(60, 4, 1),
(61, 2, 1),
(62, 7, 1),
(63, 2, 1),
(64, 2, 1),
(65, 2, 1),
(66, 4, 1),
(67, 2, 1),
(68, 1, 1),
(69, 2, 1),
(70, 1, 1),
(71, 3, 1),
(72, 5, 1),
(73, 1, 1),
(74, 5, 1),
(75, 7, 1),
(76, 4, 1),
(77, 3, 1),
(78, 4, 1),
(79, 2, 1),
(80, 7, 1),
(81, 3, 1),
(82, 4, 1),
(83, 4, 1),
(84, 5, 1),
(85, 7, 1),
(86, 4, 1),
(87, 1, 1),
(88, 2, 1),
(89, 4, 1),
(90, 7, 1),
(91, 7, 1),
(92, 5, 1),
(93, 5, 1),
(94, 2, 1),
(95, 1, 1),
(96, 7, 1),
(97, 7, 1),
(98, 3, 1),
(99, 1, 1),
(100, 2, 1),
(101, 3, 1),
(102, 4, 1),
(103, 7, 1),
(104, 3, 1),
(105, 2, 1),
(106, 5, 1),
(107, 1, 1),
(108, 5, 1),
(109, 3, 1),
(110, 2, 1),
(111, 4, 1),
(112, 7, 1),
(113, 7, 1),
(114, 2, 1),
(115, 4, 1),
(116, 5, 1),
(117, 7, 1),
(118, 4, 1),
(119, 1, 1),
(120, 3, 1),
(121, 3, 1),
(122, 1, 1),
(123, 2, 1),
(124, 2, 1),
(125, 2, 1),
(126, 2, 1),
(127, 2, 1),
(128, 2, 1),
(129, 4, 1),
(130, 3, 1),
(131, 3, 1),
(132, 7, 1),
(133, 7, 1),
(134, 2, 1),
(135, 3, 1),
(136, 2, 1),
(137, 1, 1),
(138, 3, 1),
(139, 7, 1),
(140, 3, 1),
(141, 5, 1),
(142, 4, 1),
(143, 2, 1),
(144, 4, 1),
(145, 5, 1),
(146, 7, 1),
(147, 3, 1),
(148, 4, 1),
(149, 3, 1),
(150, 3, 1),
(151, 7, 1),
(152, 7, 1),
(153, 3, 1),
(154, 1, 1),
(155, 1, 1);
-- --------------------------------------------------------
--
-- Structure de la table `groupes`
--
CREATE TABLE IF NOT EXISTS `groupes` (
`id_groupe` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(20) NOT NULL,
PRIMARY KEY (`id_groupe`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
--
-- Contenu de la table `groupes`
--
INSERT INTO `groupes` (`id_groupe`, `nom`) VALUES
(1, 'A'),
(2, 'B'),
(3, 'C'),
(4, 'D'),
(5, 'E'),
(7, 'F');
-- --------------------------------------------------------
--
-- Structure de la table `modules`
--
CREATE TABLE IF NOT EXISTS `modules` (
`id_module` int(11) NOT NULL AUTO_INCREMENT,
`identifiant` varchar(5) NOT NULL,
`nom` varchar(50) NOT NULL,
PRIMARY KEY (`id_module`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Contenu de la table `modules`
--
INSERT INTO `modules` (`id_module`, `identifiant`, `nom`) VALUES
(1, 'M1001', 'Module S1 numéro 1'),
(2, 'M2001', 'Module S2 numéro 1'),
(3, 'M3001', 'Module S3 numéro 1'),
(4, 'M4001', 'Module S4 numéro 1'),
(5, 'M1002', 'Module S1 numéro 2');
INSERT INTO `programme` (`id_programme`, `id_module`, `id_ue`, `id_semestre`) VALUES
(1, 1, 1, 1),
(2, 2, 1, 1),
(3, 3, 2, 2),
(4, 4, 2, 2),
(5, 5, 3, 3),
(6, 6, 3, 3),
(7, 7, 4, 4),
(8, 8, 4, 4);
-- --------------------------------------------------------
@ -250,20 +270,26 @@ INSERT INTO `modules` (`id_module`, `identifiant`, `nom`) VALUES
CREATE TABLE IF NOT EXISTS `semestre` (
`id_semestre` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(50) NOT NULL,
`nom` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`rang` tinyint(4) NOT NULL,
`annee` year(4) NOT NULL,
PRIMARY KEY (`id_semestre`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
PRIMARY KEY (`id_semestre`),
UNIQUE KEY `rang` (`rang`,`annee`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
--
-- Contenu de la table `semestre`
--
INSERT INTO `semestre` (`id_semestre`, `nom`, `annee`) VALUES
(1, 'S1', 2015),
(2, 'S2', 2015),
(3, 'S3', 2015),
(4, 'S4', 2015);
INSERT INTO `semestre` (`id_semestre`, `nom`, `rang`, `annee`) VALUES
(1, 'S1', 1, 2015),
(2, 'S2', 2, 2015),
(3, 'S3', 3, 2015),
(4, 'S4', 4, 2015),
(5, 'S1', 0, 2016),
(7, 'S2', 2, 2016),
(8, 'S3', 3, 2016),
(9, 'S4', 4, 2016);
-- --------------------------------------------------------
@ -273,7 +299,8 @@ INSERT INTO `semestre` (`id_semestre`, `nom`, `annee`) VALUES
CREATE TABLE IF NOT EXISTS `ue` (
`id_ue` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(50) NOT NULL,
`nom` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`libelle` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_ue`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
@ -281,158 +308,154 @@ CREATE TABLE IF NOT EXISTS `ue` (
-- Contenu de la table `ue`
--
INSERT INTO `ue` (`id_ue`, `nom`) VALUES
(1, 'UE1'),
(2, 'UE2'),
(3, 'UE3'),
(4, 'UE4');
INSERT INTO `ue` (`id_ue`, `nom`, `libelle`) VALUES
(1, 'UE1', 'Informatique'),
(2, 'UE2', 'Communication'),
(3, 'UE3', 'Informatique Avancée'),
(4, 'UE4', 'Projet Personnel et Professionnel');
-- --------------------------------------------------------
--
-- Structure de la table `utilisateurs`
-- Structure de la table `utilisateur`
--
CREATE TABLE IF NOT EXISTS `utilisateurs` (
`id_utilisateur` int(11) NOT NULL AUTO_INCREMENT,
`pseudo` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`nom` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`password` varchar(40) NOT NULL,
`droits` varchar(20) NOT NULL DEFAULT 'student',
PRIMARY KEY (`id_utilisateur`),
UNIQUE KEY `pseudo` (`pseudo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=356 ;
CREATE TABLE IF NOT EXISTS `utilisateur` (
`identifiant` varchar(8) NOT NULL,
`prenom` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`nom` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`mail` varchar(50) NOT NULL,
`mdp` varchar(40) NOT NULL,
`droits` varchar(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`identifiant`),
UNIQUE KEY `identifiant` (`identifiant`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Contenu de la table `utilisateurs`
-- Contenu de la table `utilisateur`
--
INSERT INTO `utilisateurs` (`id_utilisateur`, `pseudo`, `prenom`, `nom`, `email`, `password`, `droits`) VALUES
(13, 'mrd1609a', 'Adrien', 'LIGOU MARQUES', 'adrien.marques-ligou@etu.iut-tlse3.fr', 'e9f14613d7253434a4f0939d8a38c2a60703bda2', 'student'),
(14, 'clr1433a', 'Aurelien', 'CLERAC', 'aurelien.clerac@etu.iut-tlse3.fr', 'e9f14613d7253434a4f0939d8a38c2a60703bda2', 'student'),
(15, 'fvg1856a', 'Guillaume', 'FAUVET', 'guillaume.fauvet@etu.iut-tlse3.fr', 'e9f14613d7253434a4f0939d8a38c2a60703bda2', 'student'),
(40, 'ydw1981a', 'Glenda', 'WILKINSON', 'glenda.wilkinson@etu.iut-tlse3.fr', '41da8fbd7d39a7d91886c197308cb4495c8fa916', 'student'),
(42, 'eleve1', 'eleve', 'eleve', 'eleve.eleve@eleve.fr', 'lksmdoekrlsidoekrldolksmdoekrlsidoekrldo', 'student'),
(57, 'ihf1991a', 'Robinson', 'MCGEE', 'robinson.mcgee@etu.iut-tlse3.fr', '735194af6966d8cd4c0351bd6f52e4bb39b3ad7b', 'student'),
(58, 'mma1990a', 'Williamson', 'HATFIELD', 'williamson.hatfield@etu.iut-tlse3.fr', 'f3a0053424f8008c9c100ade7b774e0dd3154ed6', 'student'),
(59, 'lme1952a', 'Hollie', 'GILLIAM', 'hollie.gilliam@etu.iut-tlse3.fr', '154357811521bbe188f5bd3f96fd58f145b4d8da', 'student'),
(60, 'imf1922a', 'Hawkins', 'PATTERSON', 'hawkins.patterson@etu.iut-tlse3.fr', 'f6ad3a03b22a29419cf33a0e238cb28b57a83f0c', 'student'),
(61, 'gyy1983a', 'Merrill', 'WALTER', 'merrill.walter@etu.iut-tlse3.fr', '758b160c6c13cae4d576c21ed68554993cb94efb', 'student'),
(62, 'otm1902a', 'Woods', 'DEJESUS', 'woods.dejesus@etu.iut-tlse3.fr', '37517a860171d3588647bf767755a9571d77e11e', 'student'),
(63, 'tnx1949a', 'Dejesus', 'WALTON', 'dejesus.walton@etu.iut-tlse3.fr', '8f0d8b519fe392c1e4ca7be8569b7cfb041a9ea6', 'student'),
(64, 'sjl1937a', 'English', 'POPE', 'english.pope@etu.iut-tlse3.fr', '8077452497ea9d5f31b4fd0baf51e65f92ccaf67', 'student'),
(65, 'anj1991a', 'Katie', 'GUTIERREZ', 'katie.gutierrez@etu.iut-tlse3.fr', 'e932eecdc8fd834c1627fc3b9b54b9ff74c3d583', 'student'),
(66, 'xdh1989a', 'Rasmussen', 'PAGE', 'rasmussen.page@etu.iut-tlse3.fr', '91795dd76d3a44ed3796656bdd31f2142684bb29', 'student'),
(67, 'agl1956a', 'Cruz', 'HOWE', 'cruz.howe@etu.iut-tlse3.fr', 'e8d89188c9036cb200ebfb218e9cc4215efe0648', 'student'),
(68, 'mhu1946a', 'Edna', 'GREEN', 'edna.green@etu.iut-tlse3.fr', '047f218cd08bfd3652801c21d5ece2ef4b2a80f7', 'student'),
(69, 'cvv1936a', 'Kayla', 'CANTRELL', 'kayla.cantrell@etu.iut-tlse3.fr', '1ff3ba4032d7712d364e0e93ec82b9a2aa4db086', 'student'),
(70, 'mzh1955a', 'Leblanc', 'WHEELER', 'leblanc.wheeler@etu.iut-tlse3.fr', '35edbb44f1c626c3e505c5d0030744acd51a1f40', 'student'),
(71, 'pdi1904a', 'Brady', 'ASHLEY', 'brady.ashley@etu.iut-tlse3.fr', '8354d3648e0720424407a104f739565c9cc3b974', 'student'),
(72, 'cuk1947a', 'Baxter', 'HERRERA', 'baxter.herrera@etu.iut-tlse3.fr', '0cac6e0bd1a1f2a9fbe29dfacfe144d8acb0f931', 'student'),
(73, 'non1968a', 'Foster', 'TILLMAN', 'foster.tillman@etu.iut-tlse3.fr', '5f2f200ea6ce656ced3e436548c94af78f8d3178', 'student'),
(74, 'hmn1970a', 'Levy', 'ARMSTRONG', 'levy.armstrong@etu.iut-tlse3.fr', '71e9c4c4bfb0181f7b8e20794a5a82b183a08f98', 'student'),
(75, 'hth1975a', 'Pruitt', 'FERGUSON', 'pruitt.ferguson@etu.iut-tlse3.fr', 'a19a35d82fde8270b26dbf3112e1bd911857e1e5', 'student'),
(76, 'liw1940a', 'Middleton', 'WATERS', 'middleton.waters@etu.iut-tlse3.fr', '7b7f1248490898c8a07f06fccf8e577fe8dea318', 'student'),
(77, 'dtg1946a', 'Ruiz', 'WILKERSON', 'ruiz.wilkerson@etu.iut-tlse3.fr', '863dff5825ff3f157410c0feb4c2d260c370d114', 'student'),
(78, 'oxz1985a', 'Paul', 'GROSS', 'paul.gross@etu.iut-tlse3.fr', 'a43dd59f2c340d6c08665ba6c464099f2277a6cd', 'student'),
(79, 'ono1984a', 'Kitty', 'SANFORD', 'kitty.sanford@etu.iut-tlse3.fr', '482f01aff2d2fa917acf8d4ce24d4c6f74de6186', 'student'),
(80, 'auy1966a', 'Bobbi', 'PRATT', 'bobbi.pratt@etu.iut-tlse3.fr', 'e6a31236e72e4e32f0413c766c563cefd5d04823', 'student'),
(81, 'dui1946a', 'Burns', 'COMPTON', 'burns.compton@etu.iut-tlse3.fr', 'd7a161649252179dd96b3a5a94767b6386cb6d90', 'student'),
(82, 'cyw1979a', 'Zamora', 'RIDDLE', 'zamora.riddle@etu.iut-tlse3.fr', 'c09c0be1184eda65a7f53fccc4a2bba1634acc10', 'student'),
(83, 'pfv1965a', 'Francine', 'COMBS', 'francine.combs@etu.iut-tlse3.fr', '7099f8bf94d6ed46779ad913b19df106c7636c21', 'student'),
(84, 'oqz1937a', 'Morse', 'MICHAEL', 'morse.michael@etu.iut-tlse3.fr', '5b83cb687dd339da656a92dd8430faea2bec313c', 'student'),
(85, 'aft1950a', 'Rachel', 'DAVENPORT', 'rachel.davenport@etu.iut-tlse3.fr', '99ecf0de46a124b8922e3dcf02e92beda9efff5f', 'student'),
(86, 'bae1943a', 'Shaw', 'GOFF', 'shaw.goff@etu.iut-tlse3.fr', 'c3c8c34e1ae3509af6f75035dbcb7960a2606d31', 'student'),
(87, 'kul1903a', 'Magdalena', 'SIMON', 'magdalena.simon@etu.iut-tlse3.fr', '45a62b23dfa7a4951703bbd74e36fe0d1a10a06d', 'student'),
(88, 'rmj1965a', 'Bridges', 'ROSALES', 'bridges.rosales@etu.iut-tlse3.fr', 'b2022e04ca0043cbf786beb3c6a5a0478522441b', 'student'),
(89, 'yyt1926a', 'Bryant', 'CHANEY', 'bryant.chaney@etu.iut-tlse3.fr', '65464c5994c2caf9669738029565cec80365000d', 'student'),
(90, 'ktz1997a', 'Mcgowan', 'COHEN', 'mcgowan.cohen@etu.iut-tlse3.fr', '8410b649a5983bb33b099bacd74d15b5ea88f8f1', 'student'),
(91, 'hku1995a', 'Roslyn', 'MURPHY', 'roslyn.murphy@etu.iut-tlse3.fr', '505aeadd5e9889d384a964aee33f47b0752cc8a3', 'student'),
(92, 'zgy1948a', 'Emily', 'ALVARADO', 'emily.alvarado@etu.iut-tlse3.fr', 'c8366542e6bac9a842613cdf7f5806c5242c00ac', 'student'),
(93, 'vau1957a', 'Kathy', 'STOUT', 'kathy.stout@etu.iut-tlse3.fr', '5508a93cf76ccc59b380e40c14351656b99452e7', 'student'),
(94, 'hsx1927a', 'Irene', 'MONROE', 'irene.monroe@etu.iut-tlse3.fr', 'e724e611c75a7c1e1b0ed27f49c1511a853994c4', 'student'),
(95, 'eca1977a', 'Hope', 'WILSON', 'hope.wilson@etu.iut-tlse3.fr', '3bead96219d7a1cb3ed836c4f2939bfb8bafc065', 'student'),
(96, 'wpa1966a', 'Collier', 'ENGLISH', 'collier.english@etu.iut-tlse3.fr', 'd296f52b000f47b10cef8a08bf80e68348e13d28', 'student'),
(97, 'qoe1974a', 'Raquel', 'CUNNINGHAM', 'raquel.cunningham@etu.iut-tlse3.fr', '44f9e6f9d718407affbfe0c2d79545dae767a98a', 'student'),
(98, 'tkz1955a', 'Nora', 'BREWER', 'nora.brewer@etu.iut-tlse3.fr', 'cb070efa815f0c3f91f8174367f18a20334dcdd5', 'student'),
(99, 'wnx1995a', 'Lorraine', 'PADILLA', 'lorraine.padilla@etu.iut-tlse3.fr', 'fd1a7371589a9b4c2130ad025b131ad454d39070', 'student'),
(100, 'sft1994a', 'Norris', 'BROCK', 'norris.brock@etu.iut-tlse3.fr', '509b2a658e45d1196255c7df07eeb6a6e4e21e85', 'student'),
(101, 'vgb1979a', 'Baird', 'FORD', 'baird.ford@etu.iut-tlse3.fr', 'd376fee23323ba3204d8d7dac3c0ee410184dfb6', 'student'),
(102, 'wbt1993a', 'Goodman', 'PAUL', 'goodman.paul@etu.iut-tlse3.fr', 'c86544b4ad0a2a7fbbd5b822a85a1571b3850514', 'student'),
(103, 'xtb1903a', 'Kelly', 'FLYNN', 'kelly.flynn@etu.iut-tlse3.fr', '97e9ea2b99190ef87b050033c546fd35c36f92c4', 'student'),
(104, 'msj1985a', 'Ball', 'AVILA', 'ball.avila@etu.iut-tlse3.fr', '5fefcd6d87673eeaebca18cb5830ac9881af59d1', 'student'),
(105, 'wvn1982a', 'Sears', 'WELCH', 'sears.welch@etu.iut-tlse3.fr', 'cda70dd81e39eed9c594fa682b74546ef390f7f7', 'student'),
(106, 'psg1965a', 'Knapp', 'STEPHENS', 'knapp.stephens@etu.iut-tlse3.fr', 'd730461b6b3bba9abc291cb78a4b4e05488ac270', 'student'),
(107, 'hpa1908a', 'Jacklyn', 'BYRD', 'jacklyn.byrd@etu.iut-tlse3.fr', 'fd83a122301627c92457a41e269b573eab74425b', 'student'),
(108, 'maq1980a', 'Cook', 'DUNN', 'cook.dunn@etu.iut-tlse3.fr', '19cf3de445a71cada9a741441b0c247719df7467', 'student'),
(109, 'agq1929a', 'Althea', 'POOLE', 'althea.poole@etu.iut-tlse3.fr', 'aee3d75da5b220f12cd5cc7f24cdaddc9ca63dd5', 'student'),
(110, 'gwe1975a', 'Helen', 'HICKS', 'helen.hicks@etu.iut-tlse3.fr', 'e93887aa22ea3f1163393fc89dcf68927e1730ef', 'student'),
(111, 'gdb1939a', 'Kate', 'NOEL', 'kate.noel@etu.iut-tlse3.fr', '2b0245ab913ba8e111210e4bbcd8c48726308322', 'student'),
(112, 'jrc1974a', 'Pierce', 'CHURCH', 'pierce.church@etu.iut-tlse3.fr', 'ee7136fef2f56592fce809efb66e930978fb7dcd', 'student'),
(113, 'jfa1965a', 'Lolita', 'FARRELL', 'lolita.farrell@etu.iut-tlse3.fr', '30da7a6a93335a663edbed16f28f98a46711e3d5', 'student'),
(114, 'buz1982a', 'Kemp', 'JACOBS', 'kemp.jacobs@etu.iut-tlse3.fr', 'df1474b0039dfe2393cf5baae180e170f221f5c3', 'student'),
(115, 'mhr1952a', 'Socorro', 'BLAIR', 'socorro.blair@etu.iut-tlse3.fr', '5b0d4e04d65c8eca304cc6aeeb48fc6a3552ccff', 'student'),
(116, 'pos1958a', 'Juliana', 'FULLER', 'juliana.fuller@etu.iut-tlse3.fr', '9f556f1eb9cf593e4a46a686c60c6271b1e38a35', 'student'),
(117, 'xdi1926a', 'Ferrell', 'SALAS', 'ferrell.salas@etu.iut-tlse3.fr', 'b816cc329f638c9e2eb4786c3e470f37c3cbc60e', 'student'),
(118, 'awl1901a', 'Clare', 'ROLLINS', 'clare.rollins@etu.iut-tlse3.fr', 'a75928507dadeb2b1fe51121cf899203e10187da', 'student'),
(119, 'uix1942a', 'Kristen', 'GIBSON', 'kristen.gibson@etu.iut-tlse3.fr', '7f575f38feb92467196fdd2afd5fcfa1c5fe5337', 'student'),
(120, 'ngz1932a', 'Faye', 'PAYNE', 'faye.payne@etu.iut-tlse3.fr', '93bc9ce253abcfc90adb740c737cf711fd96f1dd', 'student'),
(121, 'kpf1942a', 'Strickland', 'ROACH', 'strickland.roach@etu.iut-tlse3.fr', '1281bd6daabadd55a50a73fc2c2d1a98fc9efe53', 'student'),
(122, 'aiv1989a', 'Concetta', 'ROBLES', 'concetta.robles@etu.iut-tlse3.fr', 'aeffe013bda8b573cbf369387fbc7e4d06019511', 'student'),
(123, 'sjw1936a', 'Cross', 'MEYERS', 'cross.meyers@etu.iut-tlse3.fr', '65f3196b2f65013ae71bb1cbb2459178d8890cd8', 'student'),
(124, 'fei1944a', 'Esperanza', 'TERRELL', 'esperanza.terrell@etu.iut-tlse3.fr', '5a6a7b4ab11d8a74d774a0e460db89d88f852347', 'student'),
(125, 'zge1937a', 'Ella', 'GARZA', 'ella.garza@etu.iut-tlse3.fr', '0185fea737a6a356c257bfa71048ce9376ca7bb8', 'student'),
(126, 'rpl1936a', 'Tamera', 'MOSES', 'tamera.moses@etu.iut-tlse3.fr', '2954ffb8d0709686145664f52797d8363789d8e6', 'student'),
(127, 'hrv1902a', 'Irwin', 'HOUSTON', 'irwin.houston@etu.iut-tlse3.fr', 'd6b6531cd157109d996f08683725477241c33393', 'student'),
(128, 'djo1928a', 'Vaughn', 'DURHAM', 'vaughn.durham@etu.iut-tlse3.fr', '7fc120742ea9f33780c63b7a4b8f1fee02829b70', 'student'),
(129, 'scm1996a', 'Dotson', 'SANDOVAL', 'dotson.sandoval@etu.iut-tlse3.fr', '3dc7712b78fe2e5d4da729521979e42549907f78', 'student'),
(130, 'ylq1926a', 'Stein', 'SILVA', 'stein.silva@etu.iut-tlse3.fr', 'e3e62678d1e76b008edd7f892e40040e7b81599e', 'student'),
(131, 'eme1913a', 'Booth', 'HENRY', 'booth.henry@etu.iut-tlse3.fr', '492891d212304c567331ae71b3241e95884a12cc', 'student'),
(132, 'otv1930a', 'Odonnell', 'BEASLEY', 'odonnell.beasley@etu.iut-tlse3.fr', 'd305bb36dd17bcc283bc1aa0865be6dc30e46b37', 'student'),
(133, 'cda1951a', 'Mcpherson', 'ANTHONY', 'mcpherson.anthony@etu.iut-tlse3.fr', 'bce1c02fbdc1f02a22ade40656d4971442ac0459', 'student'),
(134, 'eee1933a', 'Stacey', 'LITTLE', 'stacey.little@etu.iut-tlse3.fr', 'f1e95516e957d05394fdee0017aae394c9813171', 'student'),
(135, 'kfx1995a', 'Mitzi', 'SCHROEDER', 'mitzi.schroeder@etu.iut-tlse3.fr', '7605f5d97a938c7ba15d174cd108b6692dd655e2', 'student'),
(136, 'jgd1966a', 'Janelle', 'BURKS', 'janelle.burks@etu.iut-tlse3.fr', '5be6d9bcd3871e4de0edddb9318c4f63ac26dedf', 'student'),
(137, 'rwg1909a', 'Kelly', 'WALLACE', 'kelly.wallace@etu.iut-tlse3.fr', '612ca130318a74ec4fe1edede6099f7d23897ff9', 'student'),
(138, 'ngw1997a', 'Booker', 'LOPEZ', 'booker.lopez@etu.iut-tlse3.fr', '22045b63e4c18bf433c41ab0c306de2c352ae409', 'student'),
(139, 'obg1973a', 'Lynch', 'CHANDLER', 'lynch.chandler@etu.iut-tlse3.fr', '73448af356629fd2b66963b6e506d515eac654bc', 'student'),
(140, 'hzg1935a', 'Clarice', 'ORTEGA', 'clarice.ortega@etu.iut-tlse3.fr', '8f20fa9fe75ac4158360964c19c466aeedb1b3ee', 'student'),
(141, 'iyh1918a', 'Tucker', 'TRAN', 'tucker.tran@etu.iut-tlse3.fr', '46d9f1b05d231673d4142961d9eb73be3bdc438c', 'student'),
(142, 'tdc1978a', 'Bird', 'TRAVIS', 'bird.travis@etu.iut-tlse3.fr', '8f2afc2fc7975cb99f0745829c3451d459e342e9', 'student'),
(143, 'swd1951a', 'Jenny', 'GRAHAM', 'jenny.graham@etu.iut-tlse3.fr', '919979759142f8cc4e9c351c0624e40a40e1ab02', 'student'),
(144, 'vdj1905a', 'Dean', 'ESPINOZA', 'dean.espinoza@etu.iut-tlse3.fr', '4329059ef84d124807459d52dc9b744bd4ad7604', 'student'),
(145, 'bit1985a', 'Rosalind', 'FISHER', 'rosalind.fisher@etu.iut-tlse3.fr', '09714ae926b68dcbf1e62c0d7cc9f9273dc4623a', 'student'),
(146, 'iah1936a', 'Franklin', 'SLATER', 'franklin.slater@etu.iut-tlse3.fr', '51d71755f43045f2c96c71ce4ad7f16fe858b379', 'student'),
(147, 'ypt1989a', 'Simon', 'MORALES', 'simon.morales@etu.iut-tlse3.fr', '8bb7b7a41d638a6867935ba0a85b4cc4080f6288', 'student'),
(148, 'ljc1902a', 'Lisa', 'CLEMENTS', 'lisa.clements@etu.iut-tlse3.fr', '057cc0ba19b97b8249b080fc2efff784b45ca34a', 'student'),
(149, 'hcc1997a', 'Madeline', 'MARKS', 'madeline.marks@etu.iut-tlse3.fr', '707da24b23e55e50b090147377e5e2aee6eeb1e8', 'student'),
(150, 'bky1924a', 'Gena', 'ENGLAND', 'gena.england@etu.iut-tlse3.fr', 'c643161955167e1a7ec292ab3001b01f9aeb6d93', 'student'),
(151, 'vul1953a', 'Robyn', 'BATES', 'robyn.bates@etu.iut-tlse3.fr', '1b869180b351e5f900c4bed2c6c1781f93199822', 'student'),
(152, 'ssr1906a', 'Howell', 'FAULKNER', 'howell.faulkner@etu.iut-tlse3.fr', '769b4c973e9b812386e282d375a1c5ec6f00c616', 'student'),
(153, 'yjh1944a', 'Thompson', 'SOLIS', 'thompson.solis@etu.iut-tlse3.fr', '67e91508291d3b6b155018f1736556c64e06e8f3', 'student'),
(154, 'ste1994a', 'Allison', 'CALLAHAN', 'allison.callahan@etu.iut-tlse3.fr', 'c71907802e175fcc96c8f76f24aab27382fae7f7', 'student'),
(155, 'ypo1964a', 'Marylou', 'HOPKINS', 'marylou.hopkins@etu.iut-tlse3.fr', '60eee415a1020d91db35b92e248e755a15d91a9e', 'student');
INSERT INTO `utilisateur` (`identifiant`, `prenom`, `nom`, `mail`, `mdp`, `droits`) VALUES
('aft1950a', 'Rachel', 'DAVENPORT', 'rachel.davenport@etu.iut-tlse3.fr', '68724b2da1b628fd37116d3abae9c4233aa9fa56', 'stud'),
('agl1956a', 'Cruz', 'HOWE', 'cruz.howe@etu.iut-tlse3.fr', 'c3f22ac779a9e0e276acdc9933cdcdb2f054e317', 'stud'),
('agq1929a', 'Althea', 'POOLE', 'althea.poole@etu.iut-tlse3.fr', 'f20feea8f16e481683d420f8c97c4366d4941f4c', 'stud'),
('aiv1989a', 'Concetta', 'ROBLES', 'concetta.robles@etu.iut-tlse3.fr', 'e3e642e4b47a582f3a4b3e20c4d9bf612add1824', 'stud'),
('anj1991a', 'Katie', 'GUTIERREZ', 'katie.gutierrez@etu.iut-tlse3.fr', '0e2a184f4a27976f6648dbad6f33ffaba193c190', 'stud'),
('auy1966a', 'Bobbi', 'PRATT', 'bobbi.pratt@etu.iut-tlse3.fr', 'bd01c0a7d116ac61a12cddf768de4384cb2ed382', 'stud'),
('awl1901a', 'Clare', 'ROLLINS', 'clare.rollins@etu.iut-tlse3.fr', '0294ff411362354abbad41829c27b5d42cbc4388', 'stud'),
('bae1943a', 'Shaw', 'GOFF', 'shaw.goff@etu.iut-tlse3.fr', '99636e590508ed14336cf5847dcd24302bd86908', 'stud'),
('bit1985a', 'Rosalind', 'FISHER', 'rosalind.fisher@etu.iut-tlse3.fr', 'bbba4cd89896d2d6bf5c8d33ce3b4af025d6165d', 'stud'),
('bky1924a', 'Gena', 'ENGLAND', 'gena.england@etu.iut-tlse3.fr', '89805c2213710c0f7c03954d1fb171b3aba3c107', 'stud'),
('buz1982a', 'Kemp', 'JACOBS', 'kemp.jacobs@etu.iut-tlse3.fr', 'eda25de06910b9bbeeebcd81421093f1163d5a2c', 'stud'),
('cda1951a', 'Mcpherson', 'ANTHONY', 'mcpherson.anthony@etu.iut-tlse3.fr', '928e8e07046c74f035b0bd0f84a6463133890006', 'stud'),
('cuk1947a', 'Baxter', 'HERRERA', 'baxter.herrera@etu.iut-tlse3.fr', '1e0927db69476aa8dad0e2f0b360aa142800b66c', 'stud'),
('cvv1936a', 'Kayla', 'CANTRELL', 'kayla.cantrell@etu.iut-tlse3.fr', '7c9976507ec461d729f8e48ccdf5b8e8418ae6fa', 'stud'),
('cyw1979a', 'Zamora', 'RIDDLE', 'zamora.riddle@etu.iut-tlse3.fr', '747582c758969846527f612f05ac525a82f2d67f', 'stud'),
('djo1928a', 'Vaughn', 'DURHAM', 'vaughn.durham@etu.iut-tlse3.fr', 'cd6d4eb78a2f2b4228913d8ca89ab95fba17a953', 'stud'),
('dtg1946a', 'Ruiz', 'WILKERSON', 'ruiz.wilkerson@etu.iut-tlse3.fr', '61fa79da89021355623584247fc5597b4a811c4a', 'stud'),
('dui1946a', 'Burns', 'COMPTON', 'burns.compton@etu.iut-tlse3.fr', '7efa228dda0181027eff80368fe5426321ffa40e', 'stud'),
('eca1977a', 'Hope', 'WILSON', 'hope.wilson@etu.iut-tlse3.fr', 'aa9f150450bed0a9c47d6d1b412e9af032da8fa9', 'stud'),
('eee1933a', 'Stacey', 'LITTLE', 'stacey.little@etu.iut-tlse3.fr', '31b9ae5ec7027c386807ca2e8212dcc26c3b087e', 'stud'),
('eme1913a', 'Booth', 'HENRY', 'booth.henry@etu.iut-tlse3.fr', '86fb4f37792e36d800265554310d21e59d624d4d', 'stud'),
('fei1944a', 'Esperanza', 'TERRELL', 'esperanza.terrell@etu.iut-tlse3.fr', '9800cde34ddf1e24c2b1e31f84d72f2f9de753c8', 'stud'),
('gdb1939a', 'Kate', 'NOEL', 'kate.noel@etu.iut-tlse3.fr', '918bcf2e3ffccb2bd18290a67bcbada6921c8ba3', 'stud'),
('gwe1975a', 'Helen', 'HICKS', 'helen.hicks@etu.iut-tlse3.fr', 'd5578ae52d8b9429a411fe6824f79aa2e4ba4295', 'stud'),
('gyy1983a', 'Merrill', 'WALTER', 'merrill.walter@etu.iut-tlse3.fr', '2d6450fb04820591c34d6e470d8d16cc129ed634', 'stud'),
('hcc1997a', 'Madeline', 'MARKS', 'madeline.marks@etu.iut-tlse3.fr', '193e0b1555ac578b13b6f02b4b2c6b8c0576a2cd', 'stud'),
('hku1995a', 'Roslyn', 'MURPHY', 'roslyn.murphy@etu.iut-tlse3.fr', 'a2c17932dcc6a628601a86bd02e5e6110b774205', 'stud'),
('hmn1970a', 'Levy', 'ARMSTRONG', 'levy.armstrong@etu.iut-tlse3.fr', '85eed5e07ad380224e3dff9c68631436fc5e0580', 'stud'),
('hpa1908a', 'Jacklyn', 'BYRD', 'jacklyn.byrd@etu.iut-tlse3.fr', '50c850d3d6c6e8b5277f58f59c206d7ed685b8f9', 'stud'),
('hrv1902a', 'Irwin', 'HOUSTON', 'irwin.houston@etu.iut-tlse3.fr', '99ab47f6cce9313bb631d892d3a192420df1ba43', 'stud'),
('hsx1927a', 'Irene', 'MONROE', 'irene.monroe@etu.iut-tlse3.fr', '7fa7e7fcbb03c0be72583f2d1bfc41720f2274f1', 'stud'),
('hth1975a', 'Pruitt', 'FERGUSON', 'pruitt.ferguson@etu.iut-tlse3.fr', '562802653c96a2e3d2523fb6f38df8c42a6c70a2', 'stud'),
('hzg1935a', 'Clarice', 'ORTEGA', 'clarice.ortega@etu.iut-tlse3.fr', '8c50183063238ec8218d0959c71f3315715102be', 'stud'),
('iah1936a', 'Franklin', 'SLATER', 'franklin.slater@etu.iut-tlse3.fr', 'c4b7e3ae38056aa7b5a492b5ae4d6822bbc4f04b', 'stud'),
('ihf1991a', 'Robinson', 'MCGEE', 'robinson.mcgee@etu.iut-tlse3.fr', '4aeeee2100e584893c71d32ebcb5b4837f3e2e1a', 'stud'),
('imf1922a', 'Hawkins', 'PATTERSON', 'hawkins.patterson@etu.iut-tlse3.fr', '05ef138dfd9464af5ca7ddb1e6fc5d38a5d256dc', 'stud'),
('iyh1918a', 'Tucker', 'TRAN', 'tucker.tran@etu.iut-tlse3.fr', '70e3a6e9f775731a6dc43044576feb6acf4739bd', 'stud'),
('jfa1965a', 'Lolita', 'FARRELL', 'lolita.farrell@etu.iut-tlse3.fr', '1a5d44889500c4f04f076836691d9ccea4c56cff', 'stud'),
('jgd1966a', 'Janelle', 'BURKS', 'janelle.burks@etu.iut-tlse3.fr', '83cbc892278c1d7aab3214383b272a2677a39f01', 'stud'),
('jrc1974a', 'Pierce', 'CHURCH', 'pierce.church@etu.iut-tlse3.fr', '0bf72260769a364574bebe43a0e2d40f0b42918a', 'stud'),
('kfx1995a', 'Mitzi', 'SCHROEDER', 'mitzi.schroeder@etu.iut-tlse3.fr', 'ea085dda880c523b14c1d9c24bfe8479901d90bf', 'stud'),
('kpf1942a', 'Strickland', 'ROACH', 'strickland.roach@etu.iut-tlse3.fr', '49ae8a41825e039415fc5403721a08bf849675dd', 'stud'),
('ktz1997a', 'Mcgowan', 'COHEN', 'mcgowan.cohen@etu.iut-tlse3.fr', '77f2eb9b0cd9702671799b4016e115fe185b44da', 'stud'),
('kul1903a', 'Magdalena', 'SIMON', 'magdalena.simon@etu.iut-tlse3.fr', 'a364c06c6bc0883322fe0b8fecf70379187e85de', 'stud'),
('liw1940a', 'Middleton', 'WATERS', 'middleton.waters@etu.iut-tlse3.fr', '406a96ab06f805166e3ef4809e5b8aefd3fa422a', 'stud'),
('ljc1902a', 'Lisa', 'CLEMENTS', 'lisa.clements@etu.iut-tlse3.fr', '8b554a1fdc6fa3c07988a523bf411c90c1b647f7', 'stud'),
('lme1952a', 'Hollie', 'GILLIAM', 'hollie.gilliam@etu.iut-tlse3.fr', '3f7b0669e6d2a9df317c89d9947b8b2c724278f5', 'stud'),
('maq1980a', 'Cook', 'DUNN', 'cook.dunn@etu.iut-tlse3.fr', '9a35d39268d9ba001290d4ad62de2e8d3da645dc', 'stud'),
('mhr1952a', 'Socorro', 'BLAIR', 'socorro.blair@etu.iut-tlse3.fr', '007a09dbff0959962f7aca117f55e125d77658c4', 'stud'),
('mhu1946a', 'Edna', 'GREEN', 'edna.green@etu.iut-tlse3.fr', 'a2be4db796235e6ee539d8a96a692fc1936957db', 'stud'),
('mma1990a', 'Williamson', 'HATFIELD', 'williamson.hatfield@etu.iut-tlse3.fr', 'b00d282627610321925b6573ecf55242491e4382', 'stud'),
('msj1985a', 'Ball', 'AVILA', 'ball.avila@etu.iut-tlse3.fr', 'a65d0ad5230a8e62f691ad1f2f95a3c65f1c03dd', 'stud'),
('mzh1955a', 'Leblanc', 'WHEELER', 'leblanc.wheeler@etu.iut-tlse3.fr', 'd5711bb21c243770c254b30fc2fb429b06bbfaf0', 'stud'),
('ngw1997a', 'Booker', 'LOPEZ', 'booker.lopez@etu.iut-tlse3.fr', 'a0feaf0e9ec8f18cfc3cc8eaa0a4af131c5c91d7', 'stud'),
('ngz1932a', 'Faye', 'PAYNE', 'faye.payne@etu.iut-tlse3.fr', '166e4a0172787e784c6835ed07d34a550b61b986', 'stud'),
('non1968a', 'Foster', 'TILLMAN', 'foster.tillman@etu.iut-tlse3.fr', '3a3f8d8ddbf68fa1e366cd87d20357f05fa09f45', 'stud'),
('obg1973a', 'Lynch', 'CHANDLER', 'lynch.chandler@etu.iut-tlse3.fr', 'a10d3ba3eacf95b418fe2c108492ea41ad83fc9e', 'stud'),
('ono1984a', 'Kitty', 'SANFORD', 'kitty.sanford@etu.iut-tlse3.fr', '2100f892c9e0c1a0ce35e444d969b2bdf9de9d6b', 'stud'),
('oqz1937a', 'Morse', 'MICHAEL', 'morse.michael@etu.iut-tlse3.fr', '2edfedd459e1b63bf637184c4ee4a978f0c8e41e', 'stud'),
('otm1902a', 'Woods', 'DEJESUS', 'woods.dejesus@etu.iut-tlse3.fr', '8d3a059e7df1744e6e342dad660adeb3675d42d1', 'stud'),
('otv1930a', 'Odonnell', 'BEASLEY', 'odonnell.beasley@etu.iut-tlse3.fr', 'b55e173984ef282d1bbfb1cf441b1c702533ac87', 'stud'),
('oxz1985a', 'Paul', 'GROSS', 'paul.gross@etu.iut-tlse3.fr', '5ba7159ed8bea08ff0c6b25f47c979f2e3b9e1a5', 'stud'),
('pdi1904a', 'Brady', 'ASHLEY', 'brady.ashley@etu.iut-tlse3.fr', '48c9adaa6687ec1f896675cd7dd262c6b38c2b44', 'stud'),
('pfv1965a', 'Francine', 'COMBS', 'francine.combs@etu.iut-tlse3.fr', 'a6ba94eec7357d691231ce8b7940d86ae2cb94a9', 'stud'),
('pos1958a', 'Juliana', 'FULLER', 'juliana.fuller@etu.iut-tlse3.fr', 'bd4300a1779af89b2c87863384d7ab4c93d922ad', 'stud'),
('psg1965a', 'Knapp', 'STEPHENS', 'knapp.stephens@etu.iut-tlse3.fr', '4e24185809f6d19ab25469582b340d1d98d1478a', 'stud'),
('qoe1974a', 'Raquel', 'CUNNINGHAM', 'raquel.cunningham@etu.iut-tlse3.fr', '5670da6f0a600ea148705e8dfe87921b35bc24dc', 'stud'),
('rmj1965a', 'Bridges', 'ROSALES', 'bridges.rosales@etu.iut-tlse3.fr', 'ffa1cf9f81059b83a1a05fe7408867027decf767', 'stud'),
('rpl1936a', 'Tamera', 'MOSES', 'tamera.moses@etu.iut-tlse3.fr', 'd7f0216bd90b84f878bf562f473875e500d6ae40', 'stud'),
('rwg1909a', 'Kelly', 'WALLACE', 'kelly.wallace@etu.iut-tlse3.fr', '28356092e4722e7d40d761db1b2a3e4178c0e8a1', 'stud'),
('scm1996a', 'Dotson', 'SANDOVAL', 'dotson.sandoval@etu.iut-tlse3.fr', '3d2818a46340435822af94d9736bfad7ad1ecd4b', 'stud'),
('sft1994a', 'Norris', 'BROCK', 'norris.brock@etu.iut-tlse3.fr', 'fcfd756acef2869bb15d72b877ccd9eed675fd26', 'stud'),
('sjl1937a', 'English', 'POPE', 'english.pope@etu.iut-tlse3.fr', 'a5536a593633b1d610e976985d3be1fc27999e4d', 'stud'),
('sjw1936a', 'Cross', 'MEYERS', 'cross.meyers@etu.iut-tlse3.fr', '8571d7564e2a196feb0841fd8474754d0032721c', 'stud'),
('ssr1906a', 'Howell', 'FAULKNER', 'howell.faulkner@etu.iut-tlse3.fr', '073de42d66740dfd2beec792e63806a7147fa087', 'stud'),
('ste1994a', 'Allison', 'CALLAHAN', 'allison.callahan@etu.iut-tlse3.fr', 'a5f1074db3275a128b57d99c8a48a557297084c9', 'stud'),
('swd1951a', 'Jenny', 'GRAHAM', 'jenny.graham@etu.iut-tlse3.fr', 'ae8ffe6506ca1863cee65fc4402bb5dd6e563d4b', 'stud'),
('tdc1978a', 'Bird', 'TRAVIS', 'bird.travis@etu.iut-tlse3.fr', '4a10508dd7f87089a321fc07ff63a8269a427bcb', 'stud'),
('tkz1955a', 'Nora', 'BREWER', 'nora.brewer@etu.iut-tlse3.fr', '6695f488b7caf712423e5f090707058b5af0798d', 'stud'),
('tnx1949a', 'Dejesus', 'WALTON', 'dejesus.walton@etu.iut-tlse3.fr', '830e567e1f570e0b90ae23488e1aaa11142ec4a6', 'stud'),
('uix1942a', 'Kristen', 'GIBSON', 'kristen.gibson@etu.iut-tlse3.fr', '66fa9b0c1e377689bde5992b7ce9f8a88b394693', 'stud'),
('vau1957a', 'Kathy', 'STOUT', 'kathy.stout@etu.iut-tlse3.fr', '7149c984ea57994e5306ce3c4026064a776de1d4', 'stud'),
('vdj1905a', 'Dean', 'ESPINOZA', 'dean.espinoza@etu.iut-tlse3.fr', 'fde91e6c0086ecda41e08a683eb6df56c7739371', 'stud'),
('vgb1979a', 'Baird', 'FORD', 'baird.ford@etu.iut-tlse3.fr', '66eb6f8e8634e210729fcf25dfa32ca17bf401c3', 'stud'),
('vul1953a', 'Robyn', 'BATES', 'robyn.bates@etu.iut-tlse3.fr', '6421ed3a69005e0de9ab025db4617a5a2d125682', 'stud'),
('wbt1993a', 'Goodman', 'PAUL', 'goodman.paul@etu.iut-tlse3.fr', '282c5d93f43a3960e840b410f95b4c598e8a9340', 'stud'),
('wnx1995a', 'Lorraine', 'PADILLA', 'lorraine.padilla@etu.iut-tlse3.fr', '6f38a397c9c7e5b3aceab87e63da5533fa612459', 'stud'),
('wpa1966a', 'Collier', 'ENGLISH', 'collier.english@etu.iut-tlse3.fr', 'fd63ff8eefa080cbecb52b68dc3cf264cf121fe3', 'stud'),
('wvn1982a', 'Sears', 'WELCH', 'sears.welch@etu.iut-tlse3.fr', '39b49c655ec584119306086db59253cf3a171f42', 'stud'),
('xdh1989a', 'Rasmussen', 'PAGE', 'rasmussen.page@etu.iut-tlse3.fr', '51240c864a1efe510e150f5789889dd7b1173e9c', 'stud'),
('xdi1926a', 'Ferrell', 'SALAS', 'ferrell.salas@etu.iut-tlse3.fr', '50a8f5265f56c9a30816379dd91d26870c9b649b', 'stud'),
('xtb1903a', 'Kelly', 'FLYNN', 'kelly.flynn@etu.iut-tlse3.fr', '270b848d2e7ecb404a3816219bcfc32dafed8477', 'stud'),
('ydw1981a', 'Glenda', 'WILKINSON', 'glenda.wilkinson@etu.iut-tlse3.fr', '594ca97b532fa21cc524792f2d00a2720b010191', 'stud'),
('yjh1944a', 'Thompson', 'SOLIS', 'thompson.solis@etu.iut-tlse3.fr', '303925d37b3d505b6162bd0222bd654dc06327a9', 'stud'),
('ylq1926a', 'Stein', 'SILVA', 'stein.silva@etu.iut-tlse3.fr', '9d4517cb3cec7bae1957f4026db777e33ccc097d', 'stud'),
('ypo1964a', 'Marylou', 'HOPKINS', 'marylou.hopkins@etu.iut-tlse3.fr', 'b72c606e9f02d46fbd29da132d96bbdbbffabf35', 'stud'),
('ypt1989a', 'Simon', 'MORALES', 'simon.morales@etu.iut-tlse3.fr', '552b82ca9e6d6b6f661e66d7af0a380e00d52625', 'stud'),
('yyt1926a', 'Bryant', 'CHANEY', 'bryant.chaney@etu.iut-tlse3.fr', '5a962df24a9b04ed8a56c02a68d8dfc5e9435abe', 'stud'),
('zge1937a', 'Ella', 'GARZA', 'ella.garza@etu.iut-tlse3.fr', '927065354ae8e224f43f6eb9578b5c7c9750461b', 'stud'),
('zgy1948a', 'Emily', 'ALVARADO', 'emily.alvarado@etu.iut-tlse3.fr', '34ad81180ba7cfa510101af8abe47a558e46858a', 'stud');
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `association_module_semestre_ue`
-- Contraintes pour la table `appartenance`
--
ALTER TABLE `association_module_semestre_ue`
ADD CONSTRAINT `association_module_semestre_ue-foreign_semestre` FOREIGN KEY (`id_semestre`) REFERENCES `semestre` (`id_semestre`),
ADD CONSTRAINT `association_module_semestre_ue-foreign_module` FOREIGN KEY (`id_module`) REFERENCES `modules` (`id_module`),
ADD CONSTRAINT `association_module_semestre_ue-foreign_ue` FOREIGN KEY (`id_ue`) REFERENCES `ue` (`id_ue`);
ALTER TABLE `appartenance`
ADD CONSTRAINT `appartenance_id_etudiant` FOREIGN KEY (`id_etudiant`) REFERENCES `utilisateur` (`identifiant`),
ADD CONSTRAINT `appartenance_id_groupe` FOREIGN KEY (`id_groupe`) REFERENCES `groupe` (`id_groupe`),
ADD CONSTRAINT `appartenance_id_semestre` FOREIGN KEY (`id_semestre`) REFERENCES `semestre` (`id_semestre`);
--
-- Contraintes pour la table `association_utilisateur_groupe`
-- Contraintes pour la table `programme`
--
ALTER TABLE `association_utilisateur_groupe`
ADD CONSTRAINT `asso_groupe_utilisateur-foreign_groupe` FOREIGN KEY (`id_groupe`) REFERENCES `groupes` (`id_groupe`),
ADD CONSTRAINT `asso_groupe_utilisateur-foreign_utilisateur` FOREIGN KEY (`id_utilisateur`) REFERENCES `utilisateurs` (`id_utilisateur`);
ALTER TABLE `programme`
ADD CONSTRAINT `programme_id_semestre` FOREIGN KEY (`id_semestre`) REFERENCES `semestre` (`id_semestre`),
ADD CONSTRAINT `programme_id_module` FOREIGN KEY (`id_module`) REFERENCES `module` (`id_module`),
ADD CONSTRAINT `programme_id_ue` FOREIGN KEY (`id_ue`) REFERENCES `ue` (`id_ue`);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;