diff --git a/include/class/dossier.class.php b/include/class/dossier.class.php index f7442efce..e4aafdcf1 100644 --- a/include/class/dossier.class.php +++ b/include/class/dossier.class.php @@ -50,11 +50,10 @@ class Dossier $this->dos_id=$p_id; } - /*!\brief return the $_REQUEST['gDossier'] after a check */ + /*!\brief return the 'gDossier' value after a check */ static function id() { - self::check(); $http=new HttpInput(); return $http->request('gDossier','number'); @@ -127,11 +126,12 @@ class Dossier return $nb_folder; } - /*! - * \brief Return all the users - * as an array + /** + * \brief Return all the users as an array but NOALYSS_ADMINISTRATOR, that user cannot be changed by the + * interface for administrating user + * \param SQL $sql sql string to add to the query : + * \note that string MUST be the result of Database::escape_string */ - function get_user_folder($sql="") { @@ -162,20 +162,21 @@ class Dossier return $res; } - /*!\brief check if gDossier is set */ + /*!\brief check if gDossier is set + * ?? dead code ??? + */ static function check() { - if (!isset($_REQUEST['gDossier'])) - { - echo_error('Dossier inconnu '); - exit('Dossier invalide '); + try { + $http=new HttpInput(); + $id=$http->request("gDossier","number"); + if ($id > 999999 || $id < 0) throw new \Exception(_("Dossier max dépassé")); + } catch (\Exception $e) { + + die('Dossier invalide '); } - $id=$_REQUEST['gDossier']; - if (is_numeric($id)==0|| - strlen($id)>6|| - $id>999999) - exit('gDossier Invalide : '.$id); + } /*! @@ -184,27 +185,30 @@ class Dossier static function get() { - self::check(); - return "gDossier=".$_REQUEST['gDossier']; + $http=new \HttpInput(); + return "gDossier=".$http->request("gDossier","number"); } - /*!\brief return a string to set gDossier into a FORM */ + /*! + * \brief return a string to set gDossier into a FORM + */ static function hidden() { - self::check(); - return ''; + $http=new \HttpInput(); + + return ''; } /*!\brief retrieve the name of the current dossier */ static function name($id=0) { - self::check(); + $http=new \HttpInput(); $cn=new Database(); - $id=($id==0)?$_REQUEST['gDossier']:$id; - $name=$cn->get_value("select dos_name from ac_dossier where dos_id=$1", array($_REQUEST['gDossier'])); + $id=($id==0)?$http->request("gDossier","number"):$id; + $name=$cn->get_value("select dos_name from ac_dossier where dos_id=$1", array($id)); return $name; } @@ -419,9 +423,9 @@ class Dossier */ static function set_current($p_dossier) { + self::check($p_dossier); put_global([ [ "key"=>"gDossier","value"=>$p_dossier]]); - self::check(); - + } } diff --git a/unit-test/include/class/dossier.Test.php b/unit-test/include/class/dossierTest.php similarity index 63% rename from unit-test/include/class/dossier.Test.php rename to unit-test/include/class/dossierTest.php index 3e06982b9..25f2416c9 100644 --- a/unit-test/include/class/dossier.Test.php +++ b/unit-test/include/class/dossierTest.php @@ -59,4 +59,37 @@ class DossierTest extends TestCase $obj->load(); $this->assertEquals(DOSSIER,$obj->get_parameter("id"),"Not the right folder"); } + /** + * @testdox check + */ + public function testCheck() + { + $_REQUEST['gDossier']='14'; + \Dossier::check(); + $this->assertTrue(true, 'check has failed'); + } + /** + * @testdox hidden function + */ + function testHidden() + { + $_REQUEST['gDossier']='14'; + $this->assertEquals('', \Dossier::hidden()); + } + /** + * @testdox get function + */ + function testGet() + { + $_REQUEST['gDossier']='14'; + $this->assertEquals('gDossier=14', \Dossier::get()); + } + /** + * @testdox set current dossier + */ + function testSetCurrentDossier() + { + \Dossier::set_current(15); + $this->assertEquals(15, \Dossier::id()); + } }