From 069be914af6df98cc76e36af7fc7e14d3568e044 Mon Sep 17 00:00:00 2001 From: xamgore <xamgore@ya.ru> Date: Tue, 23 Jun 2015 18:52:46 +0300 Subject: [PATCH] Stronger conditions for filtering parameters --- .../classes/Model/Helper/CourseWorkBuilder.php | 5 ++++- .../classes/Model/Helper/DisciplineBuilder.php | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php b/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php index 9257035b3..ec119996c 100644 --- a/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php +++ b/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php @@ -42,7 +42,7 @@ class Model_Helper_CourseWorkBuilder extends Model_Helper_Builder /** Must be called after subtype() */ function & subject($id) { - if ($this->data['Subtype'] == Model_CourseWork::SCIENTIFIC) + if ($this->data['Subtype'] === Model_CourseWork::SCIENTIFIC) $id = self::COURSEWORK_DISCIPLINE_ID; if (!is_numeric($id) || $id <= 0) @@ -53,6 +53,9 @@ class Model_Helper_CourseWorkBuilder extends Model_Helper_Builder } function & subtype($name) { + if (!is_string($name)) + throw new InvalidArgumentException('Type is incorrect'); + switch ($name) { case Model_CourseWork::DISCIPLINARY: case Model_CourseWork::SCIENTIFIC: diff --git a/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php b/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php index e161e445e..21d8218fd 100644 --- a/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php +++ b/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php @@ -65,8 +65,18 @@ class Model_Helper_DisciplineBuilder extends Model_Helper_Builder } function & type($name) { - if (!$name) // todo: enum - throw new InvalidArgumentException('type is incorrect'); + if (!is_string($name)) + throw new InvalidArgumentException('Type is incorrect'); + + switch ($name) { + case Model_Discipline::EXAM: + case Model_Discipline::CREDIT: + case Model_Discipline::GRADING_CREDIT: + break; + default: + throw new InvalidArgumentException('Type is incorrect'); + } + $this->data['Type'] = $name; return $this; } -- GitLab