protected function elements() { if ($this->method == 'GET') { //cas de demande de récupération des éléments d'un utilisateur if (isset($this->request['idUser']) && isset($this->request['isOwner'])) { $idUser = $this->request['idUser']; $isOwner = $this->request['isOwner']; $token = $this->request['apiKey']; $criteria = array('_id' => new MongoId($idUser), 'apiKey' => $token); $userManager = new UserManager(); $user = $userManager->findOne($criteria); if (!array_key_exists('error', $user)) { $elementManager = new ElementManager(); if (isset($this->request['name'])) { $elementName = $this->request['name']; } else { $elementName = NULL; } if (isset($this->request['path'])) { $path = $this->request['path']; } else { $path = 'all'; } $elements = $elementManager->returnElementsDetails($idUser, $isOwner, $path, $elementName); if (array_key_exists('error', $elements)) { /* * array de array pour faciliter l'exploitation du retour * (ne pas avoir dans un cas un array et dans l'autre un array d'array) * -- 13/06/2014 */ return array($elements); } else { return $elements; } } else { return array('error' => 'You cannot process another user\'s data'); } } } elseif ($this->method == 'POST') { $options = array(); if (isset($this->request['returnImpactedElements'])) { $options['returnImpactedElements'] = $this->request['returnImpactedElements']; } if (isset($this->request['returnPastedElements'])) { $options['returnPastedElements'] = $this->request['returnPastedElements']; } if (isset($this->request['returnMovedElements'])) { $options['returnMovedElements'] = $this->request['returnMovedElements']; } if (isset($this->request['returnUpdatedElements'])) { $options['returnUpdatedElements'] = $this->request['returnUpdatedElements']; } if (isset($this->request['keepRights'])) { $options['keepRights'] = $this->request['keepRights']; } if (isset($this->request['keepDownloadLinks'])) { $options['keepDownloadLinks'] = $this->request['keepDownloadLinks']; } $this->request['options'] = $options; return handleActions($this->request); } return 0; }