From 48e9c14ebded89d858c8be0333f77f77a81b0877 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sat, 31 Mar 2012 12:25:48 +0000 Subject: Move plugins repository into roundcubemail root folder; svn:externals are not defined anymore --- plugins/password/drivers/expect.php | 58 +++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 plugins/password/drivers/expect.php (limited to 'plugins/password/drivers/expect.php') diff --git a/plugins/password/drivers/expect.php b/plugins/password/drivers/expect.php new file mode 100644 index 000000000..7a191e254 --- /dev/null +++ b/plugins/password/drivers/expect.php @@ -0,0 +1,58 @@ + + * + * Configuration settings: + * password_expect_bin => location of expect (e.g. /usr/bin/expect) + * password_expect_script => path to "password-expect" file + * password_expect_params => arguments for the expect script + * see the password-expect file for details. This is probably + * a good starting default: + * -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log + */ + +class rcube_expect_password +{ + public function save($currpass, $newpass) + { + $rcmail = rcmail::get_instance(); + $bin = $rcmail->config->get('password_expect_bin'); + $script = $rcmail->config->get('password_expect_script'); + $params = $rcmail->config->get('password_expect_params'); + $username = $_SESSION['username']; + + $cmd = $bin . ' -f ' . $script . ' -- ' . $params; + $handle = popen($cmd, "w"); + fwrite($handle, "$username\n"); + fwrite($handle, "$currpass\n"); + fwrite($handle, "$newpass\n"); + + if (pclose($handle) == 0) { + return PASSWORD_SUCCESS; + } + else { + 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