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
2bb68b7d0a
commit
1cbd0d58db
|
@ -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');
|
||||
}//createWarehouse();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
debug();
|
||||
$req = new Repo('association/addPermission', [
|
||||
$req = new Repo('association/removePermission', [
|
||||
205,
|
||||
1,
|
||||
2,
|
||||
1
|
||||
]);
|
||||
|
||||
|
|
Loading…
Reference in New Issue