From 6c1d288da83b6ed9f8ff2a2b3ec8eff3ff5e5b72 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Tue, 24 Nov 2015 10:37:02 +0100 Subject: [PATCH] =?UTF-8?q?Gestion=20des=20r=C3=B4les=20impl=C3=A9ment?= =?UTF-8?q?=C3=A9e=20et=20fonctionnelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/repo/module.php | 5 +- manager/repo/user.php | 2 +- page/_JS/settings.js | 152 ++++++++++++++++++++++++++++++++++++++++ page/settings.php | 17 +++-- 4 files changed, 165 insertions(+), 11 deletions(-) create mode 100644 page/_JS/settings.js diff --git a/manager/repo/module.php b/manager/repo/module.php index da69520..1b5bb94 100755 --- a/manager/repo/module.php +++ b/manager/repo/module.php @@ -178,7 +178,10 @@ class moduleRepo extends DBAccess{ * */ public static function exhaustiveList(){ - $getModuleList = DataBase::getPDO()->query("SELECT id_module as id, nom, libelle FROM module ORDER BY nom, libelle"); + $getModuleList = DataBase::getPDO()->query("SELECT m.id_module as id, m.nom, m.libelle, mcc_m.id_mcc_module + FROM module as m, mcc_module as mcc_m + WHERE m.id_module = mcc_m.id_module + ORDER BY nom, libelle"); return DataBase::delNumeric( $getModuleList->fetchAll() ); } diff --git a/manager/repo/user.php b/manager/repo/user.php index 5037ef2..22c7509 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -261,7 +261,7 @@ class userRepo extends DBAccess{ * @return removed VRAI si module supprimé, sinon FALSE * */ - public static function delModule($utilisateur, $mccmodule){debug(); + public static function delModule($utilisateur, $mccmodule){ /* [1] On vérifie s'il n'enseigne pas déjà pour ce module ==============================================================*/ $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id diff --git a/page/_JS/settings.js b/page/_JS/settings.js new file mode 100644 index 0000000..f3bd5f3 --- /dev/null +++ b/page/_JS/settings.js @@ -0,0 +1,152 @@ +var roleSection = document.querySelector('#CONTAINER section[name=attributionrole]'); + +/**************************************/ +/* SI LA SECTION "RÔLES" EST PRÉSENTE */ +/**************************************/ +if( roleSection != null ){ + + // liste des checkbox pour la caractère "admin" (CHECKBOX) + var checkAdmin = document.querySelectorAll('#CONTAINER section[name=attributionrole] .check_admin[data-usr]'); + + // liste des checkbox pour la caractère "référent" (CHECKBOX) + var checkMaster = document.querySelectorAll('#CONTAINER section[name=attributionrole] .check_master[data-usr]'); + + // liste des modules que l'on peut supprimer (CHECKBOX) + var delModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .del_module[data-mccmod]'); + + // liste des modules que l'on peut ajouter (BOUTON) + var addModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .set_correcteur'); + + + + /*** CHANGEMENT DE STATUS POUR "ADMIN" ***/ + for( var i = 0 ; i < checkAdmin.length ; i++ ){ + + checkAdmin[i].addEventListener('change', function(e){ + // si l'élément est correct + if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') ){ + + // on met à jour le status + var request = { + level_0: 'user', + level_1: 'updateRole', + identifiant: e.target.dataset.usr, + admin: e.target.checked, + master: null, + addModule: null, + delModule: null + }; + + API.send(request, function(answer){ + if( answer.request != 'success' ) console.log('erreur de changement de rôle (admin)'); + reload(); + }); + + } + }, false); + + } + + + + + /*** CHANGEMENT DE STATUS POUR "REFERENT" ***/ + for( var i = 0 ; i < checkMaster.length ; i++ ){ + + checkMaster[i].addEventListener('change', function(e){ + // si l'élément est correct + if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') ){ + + // on met à jour le status + var request = { + level_0: 'user', + level_1: 'updateRole', + identifiant: e.target.dataset.usr, + admin: null, + master: e.target.checked, + addModule: null, + delModule: null + }; + + API.send(request, function(answer){ + if( answer.request != 'success' ) console.log('erreur de changement de rôle (référent)'); + reload(); + }); + + } + }, false); + + } + + + + + /*** SUPPRIMER UN MODULE POUR UN UTILISATEUR ***/ + for( var i = 0 ; i < delModules.length ; i++ ){ + + delModules[i].addEventListener('change', function(e){ + // si l'élément est correct // si décoché, on supprime + if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') && e.target.dataset.hasOwnProperty('mccmod') && !e.target.checked ){ + + // on met à jour le status + var request = { + level_0: 'user', + level_1: 'updateRole', + identifiant: e.target.dataset.usr, + admin: null, + master: null, + addModule: null, + delModule: e.target.dataset.mccmod + }; + + API.send(request, function(answer){ + if( answer.request != 'success' ) console.log('erreur de changement de rôle (delModule)'); + reload(); + }); + + } + }, false); + + } + + + + + + + /*** AJOUTER UN MODULE POUR UN UTILISATEUR ***/ + for( var i = 0 ; i < addModules.length ; i++ ){ + + addModules[i].addEventListener('click', function(e){ + var associatedSelect = e.target.parentNode.parentNode.children[0].children[0]; console.log( associatedSelect ); + + // si l'élément est correct // si décoché, on supprime + if( e.target.dataset.hasOwnProperty('usr') && associatedSelect.tagName == 'SELECT' && associatedSelect.getAttribute('name') == 'modules' ){ + + // on met à jour le status + var request = { + level_0: 'user', + level_1: 'updateRole', + identifiant: e.target.dataset.usr, + admin: null, + master: null, + addModule: associatedSelect.value, + delModule: null + }; + + API.send(request, function(answer){ + if( answer.request != 'success' ) console.log('erreur de changement de rôle (delModule)'); + reload(); + }); + + } + }, false); + + } + + + + + + +} \ No newline at end of file diff --git a/page/settings.php b/page/settings.php index 4d44600..4b44baf 100755 --- a/page/settings.php +++ b/page/settings.php @@ -48,15 +48,15 @@ if( permission('admin') ){ // si l'utilisateur est admin if( in_array('admin', $user['role']) ) - echo " administrateur"; + echo " administrateur"; else - echo " administrateur"; + echo " administrateur"; // si l'utilisateur est référent if( in_array('master', $user['role']) ) - echo " référent"; + echo " référent"; else - echo " référent"; + echo " référent"; echo ""; @@ -72,15 +72,14 @@ if( permission('admin') ){ foreach($user['semestreList'] as $semestre){ foreach($semestre['UElist'] as $ue){ foreach($ue['modules'] as $module){ - var_dump($module); array_push($userModulesUID, $module['id']); echo ""; - echo "".$module['nom']." - ".$module['libelle'].""; + echo "".$module['nom']." - ".$module['libelle'].""; echo "".$ue['nom']." - ".$ue['libelle'].""; echo "".$semestre['formation']." - ".$semestre['nom'].""; echo ""; - echo " correcteur"; + echo " correcteur"; echo ""; echo ""; } @@ -94,10 +93,10 @@ if( permission('admin') ){ echo ""; echo ""; - echo "
Définir comme correcteur
"; + echo "
Définir comme correcteur
"; echo ""; echo ""; echo "";