From 9e19a0185a1e6199e58bc9a0f340af87687cb36c Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 24 Jan 2014 16:19:25 -0400 Subject: [PATCH] Se agregan validaciones para filter, start y limit en ASSIGNEE y ASSIGNEE ADHOC --- .../negative_tests.feature | 10 ++-- workflow/engine/src/BusinessModel/Task.php | 56 +++++++++++++++---- 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/features/backend/project_property_assignee_resources/negative_tests.feature b/features/backend/project_property_assignee_resources/negative_tests.feature index 84fb84235..85ee35fdc 100644 --- a/features/backend/project_property_assignee_resources/negative_tests.feature +++ b/features/backend/project_property_assignee_resources/negative_tests.feature @@ -57,15 +57,15 @@ Scenario Outline: Assign a user or group to an activity (Field validation) | high number for start | a | 1000 | 1 | 0 | 200 | array | | high number for start | a | 1000 | 0 | 0 | 200 | array | | empty result | xyz | 0 | 0 | 0 | 200 | array | - | empty string | | 0 | 10000 | 0 | 200 | array | - | empty string | | 1 | 2 | 0 | 200 | array | + | empty string | | 0 | 10000 | 3 | 200 | array | + | empty string | | 1 | 2 | 2 | 200 | array | | invalid start | a | b | c | 0 | 400 | string| | invalid limit | a | 0 | c | 0 | 400 | string| | search 0 | 0 | 0 | 0 | 0 | 200 | array | | search 0 | 0 | 0 | 100 | 0 | 200 | array | - | negative numbers | a | -10 | -20 | 0 | 200 | array | - | real numbers | a | 0.0 | 1.0 | 0 | 400 | string| - | real numbers | a | 0.0 | 0.0 | 0 | 400 | string| + | negative numbers | a | -10 | -20 | 0 | 400 | string| + | real numbers | a | 0.0 | 1.0 | 1 | 200 | string| + | real numbers | a | 0.0 | 0.0 | 3 | 200 | string| | real numbers | a | 0.1 | 1.4599 | 0 | 400 | string| | real numbers | a | 1.5 | 1.4599 | 0 | 400 | string| diff --git a/workflow/engine/src/BusinessModel/Task.php b/workflow/engine/src/BusinessModel/Task.php index b366659f1..1565a1979 100644 --- a/workflow/engine/src/BusinessModel/Task.php +++ b/workflow/engine/src/BusinessModel/Task.php @@ -651,7 +651,7 @@ class Task $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); - if ($filter) { + if ($filter || $filter=='0') { $oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) ); } $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); @@ -663,10 +663,18 @@ class Task $oCriteria->add(\TaskUserPeer::TU_TYPE, 1); $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); if ($start) { - $oCriteria->setOffset( $start ); + if ($start < 0) { + throw (new \Exception( 'invalid value specified for `start`.')); + } else { + $oCriteria->setOffset( $start ); + } } if ($limit) { - $oCriteria->setLimit( $limit ); + if ($limit < 0) { + throw (new \Exception( 'invalid value specified for `limit`.')); + } else { + $oCriteria->setLimit( $limit ); + } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); @@ -762,16 +770,24 @@ class Task $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); - if ($filter) { + if ($filter || $filter=='0') { $oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) ); } $oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE'); $oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN); if ($start) { - $oCriteria->setOffset( $start ); + if ($start < 0) { + throw (new \Exception( 'invalid value specified for `start`.')); + } else { + $oCriteria->setOffset( $start ); + } } if ($limit) { - $oCriteria->setLimit( $limit ); + if ($limit < 0) { + throw (new \Exception( 'invalid value specified for `limit`.')); + } else { + $oCriteria->setLimit( $limit ); + } } $oDataset = \UsersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); @@ -1090,7 +1106,7 @@ class Task $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); - if ($filter) { + if ($filter || $filter=='0') { $oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) ); } $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); @@ -1102,10 +1118,18 @@ class Task $oCriteria->add(\TaskUserPeer::TU_TYPE, 2); $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); if ($start) { - $oCriteria->setOffset( $start ); + if ($start < 0) { + throw (new \Exception( 'invalid value specified for `start`.')); + } else { + $oCriteria->setOffset( $start ); + } } if ($limit) { - $oCriteria->setLimit( $limit ); + if ($limit < 0) { + throw (new \Exception( 'invalid value specified for `limit`.')); + } else { + $oCriteria->setLimit( $limit ); + } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); @@ -1198,16 +1222,24 @@ class Task $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); - if ($filter) { + if ($filter || $filter=='0') { $oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) ); } $oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE'); $oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN); if ($start) { - $oCriteria->setOffset( $start ); + if ($start < 0) { + throw (new \Exception( 'invalid value specified for `start`.')); + } else { + $oCriteria->setOffset( $start ); + } } if ($limit) { - $oCriteria->setLimit( $limit ); + if ($limit < 0) { + throw (new \Exception( 'invalid value specified for `limit`.')); + } else { + $oCriteria->setLimit( $limit ); + } } $oDataset = \UsersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);