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:
xdrm-brackets 2016-07-15 17:53:21 +02:00
parent 2bb68b7d0a
commit 1cbd0d58db
2 changed files with 71 additions and 2 deletions

View File

@ -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;
}
} }

View File

@ -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
]); ]);