/** * Copie les droits appliqués aux éléments d'une liste source pour les éléments d'une autre liste. * Attention: les deux listes doivent être de même taille et l'ordre des éléments car une association des id des éléments * sources et ceux de la seconde liste sont associés dans leur ordre de rangement. * @author Alban Truc * @param array $sourceElementList * @param array $pastedElementList * @since 07/06/05 */ function copyRights($sourceElementList, $pastedElementList) { $rightManager = new RightManager(); $rightCriteria = array('state' => (int) 1); $sourceRightList = array(); $associateIds = array(); $count = 0; foreach ($sourceElementList as $sourceElement) { $associateIds[(string) $sourceElement['_id']] = (string) $pastedElementList[$count]['_id']; $count++; $rightCriteria['idElement'] = $sourceElement['_id']; $rights = $rightManager->find($rightCriteria); if (!array_key_exists('error', $rights)) { $sourceRightList = array_merge_recursive($sourceRightList, $rights); } } //si on voulait log //$rightsToPaste = array(); //$pastedRights = array(); //$failedToPaste = array(); //$count = 0 foreach ($sourceRightList as $right) { $rightCopy = $right; $rightCopy['_id'] = new MongoId(); $rightCopy['idElement'] = new MongoId($associateIds[(string) $right['idElement']]); //$rightsToPaste[] = $rightCopy; $insertResult = $rightManager->create($rightCopy); //si on voulait log /* if(!(is_bool($insertResult))) //erreur { $failedToPaste[$count]['rightToCopy'] = $right; $failedToPaste[$count]['rightCopy'] = $rightCopy; $failedToPaste[$count]['error'] = $insertResult['error']; $count++; } */ } }