diff --git a/lib/validation/dispatchervalidation.inc.php b/lib/validation/dispatchervalidation.inc.php index 5309b6a..e15f3c3 100644 --- a/lib/validation/dispatchervalidation.inc.php +++ b/lib/validation/dispatchervalidation.inc.php @@ -186,11 +186,13 @@ class KTDispatcherValidation { function validateFile($aFile, $aOptions = null) { $bError = false; - if (strlen($aFile['name']) == 0) { + + if (strlen(trim($aFile['name'])) == 0) { $bError = true; } else { $bError = KTUtil::arrayGet($aFile, 'error'); } + if ($bError) { $message = _("You did not select a valid document to upload"); @@ -273,6 +275,24 @@ class KTDispatcherValidation { } return $oEntity; } + + + + + + /* unlike the KTEmail version, this only handles ONE email address */ + function validateEmailAddress($sEmailAddress, $aOptions = null) { + $sEmailAddress = trim($sEmailAddress); + + if (!ereg ("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $sEmailAddress )) { + $aOptions['message'] = KTUtil::arrayGet($aOptions, + 'message', + _("An invalid email address was given")); + $this->handleError($aOptions); + } + return $sEmailAddress; + } + } ?> diff --git a/plugins/ktcore/admin/managePermissions.php b/plugins/ktcore/admin/managePermissions.php index 096edd7..bfc372f 100755 --- a/plugins/ktcore/admin/managePermissions.php +++ b/plugins/ktcore/admin/managePermissions.php @@ -4,6 +4,7 @@ require_once(KT_LIB_DIR . "/templating/templating.inc.php"); require_once(KT_LIB_DIR . "/permissions/permission.inc.php"); require_once(KT_LIB_DIR . "/dispatcher.inc.php"); require_once(KT_LIB_DIR . "/templating/kt3template.inc.php"); +require_once(KT_LIB_DIR . "/widgets/fieldWidgets.php"); class ManagePermissionsDispatcher extends KTAdminDispatcher { function do_main() { diff --git a/plugins/ktcore/folder/addDocument.php b/plugins/ktcore/folder/addDocument.php index cdd46d4..e1319bf 100644 --- a/plugins/ktcore/folder/addDocument.php +++ b/plugins/ktcore/folder/addDocument.php @@ -42,6 +42,7 @@ class KTFolderAddDocumentAction extends KTFolderAction { $add_fields = array(); $add_fields[] = new KTFileUploadWidget(_('File'), _('The contents of the document to be added to the document management system.'), 'file', "", $this->oPage, true); $add_fields[] = new KTStringWidget(_('Title'), _('The document title is used as the main name of a document through the KnowledgeTree.'), 'title', "", $this->oPage, true); + $aVocab = array(); foreach (DocumentType::getList() as $oDocumentType) { @@ -83,7 +84,9 @@ class KTFolderAddDocumentAction extends KTFolderAction { $aErrorOptions = array( 'redirect_to' => array('main', sprintf('fFolderId=%d', $this->oFolder->getId())), ); + $aFile = $this->oValidator->validateFile($_FILES['file'], $aErrorOptions); + $sTitle = $this->oValidator->validateString($_REQUEST['title'], $aErrorOptions); $matches = array(); $aFields = array(); @@ -99,7 +102,7 @@ class KTFolderAddDocumentAction extends KTFolderAction { 'contents' => new KTFSFileLike($aFile['tmp_name']), 'documenttype' => $this->oDocumentType, 'metadata' => $aFields, - 'description' => $_REQUEST['title'], + 'description' => $sTitle, ); $mpo->start(); diff --git a/preferences.php b/preferences.php index 1410620..faddf99 100644 --- a/preferences.php +++ b/preferences.php @@ -10,8 +10,6 @@ require_once(KT_LIB_DIR . "/dispatcher.inc.php"); require_once(KT_LIB_DIR . '/widgets/fieldWidgets.php'); - - class PreferencesDispatcher extends KTStandardDispatcher { var $sSection = 'preferences'; @@ -111,14 +109,18 @@ class PreferencesDispatcher extends KTStandardDispatcher { function do_updatePreferences() { + $aErrorOptions = array( + 'redirect_to' => array('main'), + ); + $oUser =& $this->oUser; - $name = KTUtil::arrayGet($_REQUEST, 'name'); - if (empty($name)) { - $this->errorRedirectToMain(_('You must specify your name.')); - } + $name = $this->oValidator->validateString(KTUtil::arrayGet($_REQUEST, 'name'), + KTUtil::meldOptions($aErrorOptions, array('message' => _('You must specify your name.')))); - $email_address = KTUtil::arrayGet($_REQUEST, 'email_address'); + $email_address = $this->oValidator->validateEmailAddress(KTUtil::arrayGet($_REQUEST, 'email_address'), + $aErrorOptions); + $email_notifications = KTUtil::arrayGet($_REQUEST, 'email_notifications', false); if ($email_notifications !== false) $email_notifications = true; $mobile_number = KTUtil::arrayGet($_REQUEST, 'mobile_number');