summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Smith <chris.eureka@jalakai.co.uk>2009-01-19 17:48:09 +0100
committerChris Smith <chris.eureka@jalakai.co.uk>2009-01-19 17:48:09 +0100
commit3994772a3d7c09e3152591d2e20e85b389acc4ac (patch)
tree1219f2b5749834b53542e3f3befbc1a4907cd1aa /lib
parent32ee58308d5bb11c322ca6bfc3b56e66364230af (diff)
downloadrpg-3994772a3d7c09e3152591d2e20e85b389acc4ac.tar.gz
rpg-3994772a3d7c09e3152591d2e20e85b389acc4ac.tar.bz2
FS#1517, obscure passwords in config files
This patch extends the config 'password' class to support a "_code" parameter darcs-hash:20090119164809-f07c6-c136b559772610539bccb9e9c0191f6a973216ad.gz
Diffstat (limited to 'lib')
-rw-r--r--lib/plugins/config/settings/config.class.php11
-rw-r--r--lib/plugins/config/settings/config.metadata.php8
2 files changed, 11 insertions, 8 deletions
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index c3531d6f3..b62c16a7e 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -22,7 +22,7 @@ if (!class_exists('configuration')) {
var $_default_files = array();
var $_local_files = array(); // updated configuration is written to the first file
var $_protected_files = array();
-
+
var $_plugin_list = null;
/**
@@ -127,13 +127,13 @@ if (!class_exists('configuration')) {
fclose($fh);
return true;
}
-
+
function _read_config_group($files) {
$config = array();
foreach ($files as $file) {
$config = array_merge($config, $this->_read_config($file));
}
-
+
return $config;
}
@@ -477,6 +477,8 @@ if (!class_exists('setting_string')) {
if (!class_exists('setting_password')) {
class setting_password extends setting_string {
+ var $_code = 'plain'; // mechanism to be used to obscure passwords
+
function update($input) {
if ($this->is_protected()) return false;
if (!$input) return false;
@@ -487,7 +489,7 @@ if (!class_exists('setting_password')) {
return false;
}
- $this->_local = $input;
+ $this->_local = conf_encodeString($input,$this->_code);
return true;
}
@@ -888,7 +890,6 @@ if (!class_exists('setting_multicheckbox')) {
}
}
-
/**
* Provide php_strip_whitespace (php5 function) functionality
*
diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php
index 8c856af1b..6c979574e 100644
--- a/lib/plugins/config/settings/config.metadata.php
+++ b/lib/plugins/config/settings/config.metadata.php
@@ -22,7 +22,8 @@
* 'email' - text input, input must conform to email address format, setting output in quotes
* 'richemail' - text input, input must conform to email address format but accepts variables and
* emails with a real name prepended (when email address is given in <>)
- * 'password' - password input, minimal input validation, setting output plain text in quotes
+ * 'password' - password input, minimal input validation, setting output text in quotes, maybe encoded
+ * according to the _code parameter
* 'dirchoice' - as multichoice, selection choices based on folders found at location specified in _dir
* parameter (required). A pattern can be used to restrict the folders to only those which
* match the pattern.
@@ -52,6 +53,7 @@
* required by 'dirchoice' class, ignored by other classes
* '_combine' - complimentary output setting values which can be combined into a single display checkbox
* optional for 'multicheckbox', ignored by other classes
+ * '_code' - encoding method to use, accepted values: 'base64','uuencode','plain'. defaults to plain.
*
* @author Chris Smith <chris@jalakai.co.uk>
*/
@@ -189,12 +191,12 @@ $meta['_network'] = array('fieldset');
$meta['proxy____host'] = array('string','_pattern' => '#^(|[a-z0-9\-\.+]+)$#i');
$meta['proxy____port'] = array('numericopt');
$meta['proxy____user'] = array('string');
-$meta['proxy____pass'] = array('password');
+$meta['proxy____pass'] = array('password','_code' => 'base64');
$meta['proxy____ssl'] = array('onoff');
$meta['safemodehack'] = array('onoff');
$meta['ftp____host'] = array('string','_pattern' => '#^(|[a-z0-9\-\.+]+)$#i');
$meta['ftp____port'] = array('numericopt');
$meta['ftp____user'] = array('string');
-$meta['ftp____pass'] = array('password');
+$meta['ftp____pass'] = array('password','_code' => 'base64');
$meta['ftp____root'] = array('string');