Gestion des rôles implémentée et fonctionnelle
This commit is contained in:
parent
1638e9d56b
commit
6c1d288da8
|
@ -178,7 +178,10 @@ class moduleRepo extends DBAccess{
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function exhaustiveList(){
|
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() );
|
return DataBase::delNumeric( $getModuleList->fetchAll() );
|
||||||
}
|
}
|
||||||
|
|
|
@ -261,7 +261,7 @@ class userRepo extends DBAccess{
|
||||||
* @return removed<Boolean> VRAI si module supprimé, sinon FALSE
|
* @return removed<Boolean> 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
|
/* [1] On vérifie s'il n'enseigne pas déjà pour ce module
|
||||||
==============================================================*/
|
==============================================================*/
|
||||||
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
|
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -48,15 +48,15 @@ if( permission('admin') ){
|
||||||
|
|
||||||
// si l'utilisateur est admin
|
// si l'utilisateur est admin
|
||||||
if( in_array('admin', $user['role']) )
|
if( in_array('admin', $user['role']) )
|
||||||
echo "<td><input type='checkbox' id='".$user['id']."administrateur' checked><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
echo "<td><input data-usr='".$user['id']."' class='check_admin' type='checkbox' id='".$user['id']."administrateur' checked><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
||||||
else
|
else
|
||||||
echo "<td><input type='checkbox' id='".$user['id']."administrateur'><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
echo "<td><input data-usr='".$user['id']."' class='check_admin' type='checkbox' id='".$user['id']."administrateur'><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
||||||
|
|
||||||
// si l'utilisateur est référent
|
// si l'utilisateur est référent
|
||||||
if( in_array('master', $user['role']) )
|
if( in_array('master', $user['role']) )
|
||||||
echo "<td><input type='checkbox' id='".$user['id']."referent' checked><label for='".$user['id']."referent'></label> référent</td>";
|
echo "<td><input data-usr='".$user['id']."' class='check_master' type='checkbox' id='".$user['id']."referent' checked><label for='".$user['id']."referent'></label> référent</td>";
|
||||||
else
|
else
|
||||||
echo "<td><input type='checkbox' id='".$user['id']."referent'><label for='".$user['id']."referent'></label> référent</td>";
|
echo "<td><input data-usr='".$user['id']."' class='check_master' type='checkbox' id='".$user['id']."referent'><label for='".$user['id']."referent'></label> référent</td>";
|
||||||
|
|
||||||
echo "</tr>";
|
echo "</tr>";
|
||||||
|
|
||||||
|
@ -72,15 +72,14 @@ if( permission('admin') ){
|
||||||
foreach($user['semestreList'] as $semestre){
|
foreach($user['semestreList'] as $semestre){
|
||||||
foreach($semestre['UElist'] as $ue){
|
foreach($semestre['UElist'] as $ue){
|
||||||
foreach($ue['modules'] as $module){
|
foreach($ue['modules'] as $module){
|
||||||
var_dump($module);
|
|
||||||
|
|
||||||
array_push($userModulesUID, $module['id']);
|
array_push($userModulesUID, $module['id']);
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
echo "<td data-mod='".$module['id']."'>".$module['nom']." - ".$module['libelle']."</td>";
|
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
|
||||||
echo "<td>".$ue['nom']." - ".$ue['libelle']."</td>";
|
echo "<td>".$ue['nom']." - ".$ue['libelle']."</td>";
|
||||||
echo "<td>".$semestre['formation']." - ".$semestre['nom']."</td>";
|
echo "<td>".$semestre['formation']." - ".$semestre['nom']."</td>";
|
||||||
echo "<td>";
|
echo "<td>";
|
||||||
echo "<input type='checkbox' id='".$user['id']."correcteur".$module['id']."' checked><label for='".$user['id']."correcteur".$module['id']."'></label> correcteur";
|
echo "<input data-usr='".$user['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."' checked><label for='".$user['id']."correcteur".$module['id']."'></label> correcteur";
|
||||||
echo "</td>";
|
echo "</td>";
|
||||||
echo "</tr>";
|
echo "</tr>";
|
||||||
}
|
}
|
||||||
|
@ -94,10 +93,10 @@ if( permission('admin') ){
|
||||||
echo "<tr class='grayscale'>";
|
echo "<tr class='grayscale'>";
|
||||||
echo "<td><select name='modules'>";
|
echo "<td><select name='modules'>";
|
||||||
foreach($completeModuleList as $module){ if( !in_array($module['id'], $userModulesUID) ){
|
foreach($completeModuleList as $module){ if( !in_array($module['id'], $userModulesUID) ){
|
||||||
echo "<option value='".$module['id']."'>".$module['nom']." - ".$module['libelle']."</option>";
|
echo "<option value='".$module['id_mcc_module']."'>".$module['nom']." - ".$module['libelle']."</option>";
|
||||||
}}
|
}}
|
||||||
echo "</select></td>";
|
echo "</select></td>";
|
||||||
echo "<td><div class='confirm active set_correcteur'>Définir comme correcteur</div></td>";
|
echo "<td><div data-usr='".$user['id']."' class='confirm active set_correcteur'>Définir comme correcteur</div></td>";
|
||||||
echo "<td></td>";
|
echo "<td></td>";
|
||||||
echo "<td></td>";
|
echo "<td></td>";
|
||||||
echo "</tr>";
|
echo "</tr>";
|
||||||
|
|
Loading…
Reference in New Issue