Ajout/Suppression de permissions pour des groupes d'utilisateurs envers des groupes de machines fonctionnel : repositories 'association/addPermission' + 'association/removePermission'
This commit is contained in:
parent
0ba18661a2
commit
2add0f0e97
|
@ -110,6 +110,68 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* SUPPRESSION D'UNE PERMISSION ENTRE 2 GROUPES (UTIL -> MACHINE)
|
||||||
|
*
|
||||||
|
* @id_target<int> UID d'un groupe MACHINE
|
||||||
|
* @id_source<int> UID d'un groupe UTILISATEUR
|
||||||
|
* @id_permission<int> UID d'une PERMISSION
|
||||||
|
*
|
||||||
|
* @return error<ManagerError> Retourne l'erreur 'ManagerError' associée
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function removePermission($id_target, $id_source, $id_permission){
|
||||||
|
|
||||||
|
/* [1] On vérifie que l'entrée existe
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On effectue la requête */
|
||||||
|
$checkExists = self::getByIdTarget($id_target);
|
||||||
|
|
||||||
|
/* (2) Si on a un résultat correspondant aux données, c'est bon */
|
||||||
|
$existingId = null;
|
||||||
|
if( is_array($checkExists) && count($checkExists) > 0 ){
|
||||||
|
|
||||||
|
/* (3) Si les données sont identiques pour au moins une entrée, on peut supprimer */
|
||||||
|
foreach($checkExists as $s=>$sameTarget)
|
||||||
|
if( $sameTarget['id_source'] == $id_source && $sameTarget['id_permission'] == $id_permission )
|
||||||
|
$existingId = $sameTarget['id_association'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (3) Si on a pas trouvé, on retourne une erreur */
|
||||||
|
if( is_null($existingId) )
|
||||||
|
return ManagerError::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] On supprime la permission
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On effectue la suppression */
|
||||||
|
$delete = Database::getPDO()->prepare("DELETE FROM association
|
||||||
|
WHERE id_association = :id_association
|
||||||
|
AND id_target = :id_target
|
||||||
|
AND id_source = :id_source
|
||||||
|
AND id_permission = :id_permission");
|
||||||
|
$deleted = $delete->execute([
|
||||||
|
':id_association' => $existingId,
|
||||||
|
':id_target' => $id_target,
|
||||||
|
':id_source' => $id_source,
|
||||||
|
':id_permission' => $id_permission
|
||||||
|
]);
|
||||||
|
|
||||||
|
/* (2) Si erreur SQL, on retourne une erreur */
|
||||||
|
if( !$deleted || self::getById($existingId) !== false )
|
||||||
|
return ManagerError::RepoError;
|
||||||
|
|
||||||
|
|
||||||
|
return ManagerError::Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -329,10 +329,17 @@
|
||||||
$getAll = new Repo('admin/getAll');
|
$getAll = new Repo('admin/getAll');
|
||||||
}//createWarehouse();
|
}//createWarehouse();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
debug();
|
debug();
|
||||||
$req = new Repo('association/addPermission', [
|
$req = new Repo('association/removePermission', [
|
||||||
205,
|
205,
|
||||||
1,
|
2,
|
||||||
1
|
1
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue