From 1d09ee0ce6d50d122352bfde66828d70cd7ed57b Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Thu, 26 Feb 2015 18:19:44 +0100 Subject: Added 'kpasswd' driver by Peter Allgeyer --- plugins/password/drivers/kpasswd.php | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 plugins/password/drivers/kpasswd.php (limited to 'plugins/password/drivers/kpasswd.php') diff --git a/plugins/password/drivers/kpasswd.php b/plugins/password/drivers/kpasswd.php new file mode 100644 index 000000000..ce245b315 --- /dev/null +++ b/plugins/password/drivers/kpasswd.php @@ -0,0 +1,45 @@ + + * + * Based on chpasswd roundcubemail password driver by + * @author Alex Cartwright + */ + +class rcube_kpasswd_password +{ + public function save($currpass, $newpass) + { + $bin = rcmail::get_instance()->config->get('password_kpasswd_cmd', '/usr/bin/kpasswd'); + $username = $_SESSION['username']; + $cmd = $bin . ' "' . $username . '" 2>&1'; + + $handle = popen($cmd, "w"); + fwrite($handle, $currpass."\n"); + fwrite($handle, $newpass."\n"); + fwrite($handle, $newpass."\n"); + + if (pclose($handle) == 0) { + return PASSWORD_SUCCESS; + } + else { + rcube::raise_error(array( + 'code' => 600, + 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Password plugin: Unable to execute $cmd" + ), true, false); + } + + return PASSWORD_ERROR; + } +} -- cgit v1.2.3