diff options
Diffstat (limited to 'platform/www/lib/plugins/config/core/Setting/SettingPassword.php')
-rw-r--r-- | platform/www/lib/plugins/config/core/Setting/SettingPassword.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/platform/www/lib/plugins/config/core/Setting/SettingPassword.php b/platform/www/lib/plugins/config/core/Setting/SettingPassword.php new file mode 100644 index 0000000..9d9c533 --- /dev/null +++ b/platform/www/lib/plugins/config/core/Setting/SettingPassword.php @@ -0,0 +1,39 @@ +<?php + +namespace dokuwiki\plugin\config\core\Setting; + +/** + * Class setting_password + */ +class SettingPassword extends SettingString { + + protected $code = 'plain'; // mechanism to be used to obscure passwords + + /** @inheritdoc */ + public function update($input) { + if($this->isProtected()) return false; + if(!$input) return false; + + if($this->pattern && !preg_match($this->pattern, $input)) { + $this->error = true; + $this->input = $input; + return false; + } + + $this->local = conf_encodeString($input, $this->code); + return true; + } + + /** @inheritdoc */ + public function html(\admin_plugin_config $plugin, $echo = false) { + + $disable = $this->isProtected() ? 'disabled="disabled"' : ''; + + $key = htmlspecialchars($this->key); + + $label = '<label for="config___' . $key . '">' . $this->prompt($plugin) . '</label>'; + $input = '<input id="config___' . $key . '" name="config[' . $key . + ']" autocomplete="off" type="password" class="edit" value="" ' . $disable . ' />'; + return array($label, $input); + } +} |