/** * Checks that the 'field' parameter for download and delete file actions is valid. * If not, terminates script execution. * * @param Phprojekt_Model_Interface $model Current module. * @param string $field Name of the field in the module. * * @return void */ private function _fileCheckParamField($model, $field) { $valid = false; $info = $model->info(); if (in_array($field, $info['cols'])) { $dbManager = $model->getInformation(); $dbField = $dbManager->find($field); if (!empty($dbField)) { $fieldType = $dbManager->getType($field); if ($fieldType == 'upload') { $valid = true; } } } if (!$valid) { $error = Phprojekt::getInstance()->translate('Error in received parameter, consult the admin. Parameter:'); $error .= ' field'; // Log error Phprojekt::getInstance()->getLog()->err("Error: wrong 'field' parameter trying to Download or Delete a file" . ". User Id: " . Phprojekt_Auth::getUserId() . " - Module: " . $this->getRequest()->getModuleName()); // Show error to user and stop script execution die($error); } }
/** * Checks that the 'field' parameter for download and delete file actions is valid. * If not, terminates script execution printing an error. * * @param Phprojekt_Model_Interface $model Current module. * @param string $field Name of the field in the module. * * @return void */ private static function _checkParamField($model, $field) { $valid = false; $info = $model->info(); if (in_array($field, $info['cols'])) { $dbManager = $model->getInformation(); $fieldType = $dbManager->getType($field); if ($fieldType == 'upload') { $valid = true; } } if (!$valid) { $error = Phprojekt::getInstance()->translate('Error in received parameter, consult the admin. Parameter:'); $error .= ' field'; self::_logError("Error: wrong 'field' parameter trying to Download or Delete a file.", array(get_class($model), $field)); throw new InvalidArgumentException($error); } }
/** * Validates a value using the database type of the field. * * @param Phprojekt_Model_Interface $class Model object. * @param string $varname Name of the field. * @param mix $value Value to validate. * * @return boolean True for valid. */ public function validateValue(Phprojekt_Model_Interface $class, $varname, $value) { $info = $class->info(); $varForInfo = Phprojekt_ActiveRecord_Abstract::convertVarToSql($varname); $valid = true; if (isset($info['metadata'][$varForInfo]) && !empty($value)) { $type = $info['metadata'][$varForInfo]['DATA_TYPE']; switch ($type) { case 'int': $valid = Cleaner::validate('integer', $value, false); break; case 'float': $valid = Cleaner::validate('float', $value, false); break; case 'date': $valid = Cleaner::validate('date', $value, false); break; case 'time': // $valid = Cleaner::validate('timestamp', $value, false); break; case 'timestamp': case 'datetime': $valid = Cleaner::validate('timestamp', $value, false); break; default: $valid = Cleaner::validate('string', $value, true); break; } } return $valid !== false; }