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(){
|
||||
$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() );
|
||||
}
|
||||
|
|
|
@ -261,7 +261,7 @@ class userRepo extends DBAccess{
|
|||
* @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
|
||||
==============================================================*/
|
||||
$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
|
||||
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
|
||||
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
|
||||
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
|
||||
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>";
|
||||
|
||||
|
@ -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 "<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>".$semestre['formation']." - ".$semestre['nom']."</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 "</tr>";
|
||||
}
|
||||
|
@ -94,10 +93,10 @@ if( permission('admin') ){
|
|||
echo "<tr class='grayscale'>";
|
||||
echo "<td><select name='modules'>";
|
||||
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 "<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 "</tr>";
|
||||
|
|
Loading…
Reference in New Issue