From 32087ed0672a7921af76f92eb2e8d3b6e3a166de Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:01:35 +0000 Subject: Bugfix: correct variable name to --- lib/plugins/usermanager/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/plugins/usermanager/admin.php') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index c4d71cb22..f2ee95b38 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -830,7 +830,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!$this->_auth->canDo('addUser')) return false; // check file uploaded ok. - if (empty($_FILES['import']['size']) || !empty($FILES['import']['error']) && is_uploaded_file($FILES['import']['tmp_name'])) { + if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && is_uploaded_file($_FILES['import']['tmp_name'])) { msg($this->lang['import_error_upload'],-1); return false; } -- cgit v1.2.3 From e73725bac6a3c60835092d4e2253730b7d683263 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:03:48 +0000 Subject: IMPROVEMENT: remove generated password from import failure data --- lib/plugins/usermanager/admin.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/plugins/usermanager/admin.php') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index f2ee95b38..95524c56a 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -867,6 +867,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $import_success_count++; } else { $import_fail_count++; + array_splice($raw, 1, 1); // remove the spliced in password $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv); } } -- cgit v1.2.3 From 5ba64050580b6936c8b364e3a288e7c875263c88 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:04:20 +0000 Subject: MINOR: comment spelling corrections --- lib/plugins/usermanager/admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/plugins/usermanager/admin.php') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 95524c56a..2c566723a 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -822,7 +822,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * csv file should have 4 columns, user_id, full name, email, groups (comma separated) * - * @return bool whether succesful + * @return bool whether successful */ protected function _import() { // check we are allowed to add users @@ -941,7 +941,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * * @param array $user data of user * @param string &$error reference catched error message - * @return bool whether succesful + * @return bool whether successful */ protected function _addImportUser($user, & $error){ if (!$this->_auth->triggerUserMod('create', $user)) { -- cgit v1.2.3 From b2c01466e61a7800306d8705eada83563ca90a55 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 28 Nov 2013 00:08:52 +0000 Subject: Improvements to facilitate unit testing - don't die at end of _export() - internal classs wrapper method for is_uploaded_file() to allow overriding for use under cli & without having to upload a file --- lib/plugins/usermanager/admin.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib/plugins/usermanager/admin.php') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 2c566723a..782443ee1 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -814,6 +814,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { fputcsv($fd, $line); } fclose($fd); + if (defined('DOKU_UNITTEST')){ return; } + die; } @@ -830,7 +832,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!$this->_auth->canDo('addUser')) return false; // check file uploaded ok. - if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && is_uploaded_file($_FILES['import']['tmp_name'])) { + if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && $this->_isUploadedFile($_FILES['import']['tmp_name'])) { msg($this->lang['import_error_upload'],-1); return false; } @@ -974,4 +976,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { die; } + /** + * wrapper for is_uploaded_file to facilitate overriding by test suite + */ + protected function _isUploadedFile($file) { + return is_uploaded_file($file); + } + } -- cgit v1.2.3 From c9454ee3a82b29418a7ee59f0bb35006ea6a7fb1 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 1 Dec 2013 16:23:02 +0000 Subject: Per FS#2884, implement a local version of str_getcsv() to maintain compatibility with php 5.2.x (str_getcsv() is only available in php 5.3+ and is used by user manager import feature. --- lib/plugins/usermanager/admin.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'lib/plugins/usermanager/admin.php') diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 782443ee1..156037f09 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -847,7 +847,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if (!utf8_check($csv)) { $csv = utf8_encode($csv); } - $raw = str_getcsv($csv); + $raw = $this->_getcsv($csv); $error = ''; // clean out any errors from the previous line // data checks... if (1 == ++$line) { @@ -983,4 +983,30 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return is_uploaded_file($file); } + /** + * wrapper for str_getcsv() to simplify maintaining compatibility with php 5.2 + * + * @deprecated remove when dokuwiki php requirement increases to 5.3+ + * also associated unit test & mock access method + */ + protected function _getcsv($csv) { + return function_exists('str_getcsv') ? str_getcsv($csv) : $this->str_getcsv($csv); + } + + /** + * replacement str_getcsv() function for php < 5.3 + * loosely based on www.php.net/str_getcsv#88311 + * + * @deprecated remove when dokuwiki php requirement increases to 5.3+ + */ + protected function str_getcsv($str) { + $fp = fopen("php://temp/maxmemory:1048576", 'r+'); // 1MiB + fputs($fp, $str); + rewind($fp); + + $data = fgetcsv($fp); + + fclose($fp); + return $data; + } } -- cgit v1.2.3