diff options
author | Chris Smith <chris.eureka@jalakai.co.uk> | 2009-01-19 17:48:09 +0100 |
---|---|---|
committer | Chris Smith <chris.eureka@jalakai.co.uk> | 2009-01-19 17:48:09 +0100 |
commit | 3994772a3d7c09e3152591d2e20e85b389acc4ac (patch) | |
tree | 1219f2b5749834b53542e3f3befbc1a4907cd1aa /lib/plugins | |
parent | 32ee58308d5bb11c322ca6bfc3b56e66364230af (diff) | |
download | rpg-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/plugins')
-rw-r--r-- | lib/plugins/config/settings/config.class.php | 11 | ||||
-rw-r--r-- | lib/plugins/config/settings/config.metadata.php | 8 |
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'); |