diff options
Diffstat (limited to 'plugins/password/drivers/virtualmin.php')
| -rw-r--r-- | plugins/password/drivers/virtualmin.php | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/plugins/password/drivers/virtualmin.php b/plugins/password/drivers/virtualmin.php index 78ef4e7c3..5a9d9c0ca 100644 --- a/plugins/password/drivers/virtualmin.php +++ b/plugins/password/drivers/virtualmin.php @@ -10,18 +10,20 @@ * It only works with virtualmin on the same host where Roundcube runs * and requires shell access and gcc in order to compile the binary. * - * @version 2.0 + * @version 3.0 * @author Martijn de Munnik */ -function password_save($currpass, $newpass) +class rcube_virtualmin_password { - $rcmail = rcmail::get_instance(); + function save($currpass, $newpass) + { + $rcmail = rcmail::get_instance(); - $format = $rcmail->config->get('password_virtualmin_format', 0); - $username = $_SESSION['username']; + $format = $rcmail->config->get('password_virtualmin_format', 0); + $username = $_SESSION['username']; - switch ($format) { + switch ($format) { case 1: // username%domain $domain = substr(strrchr($username, "%"), 1); break; @@ -48,28 +50,27 @@ function password_save($currpass, $newpass) break; default: // username@domain $domain = substr(strrchr($username, "@"), 1); - } - - $username = escapeshellcmd($username); - $domain = escapeshellcmd($domain); - $newpass = escapeshellcmd($newpass); - $curdir = realpath(dirname(__FILE__)); + } - exec("$curdir/chgvirtualminpasswd modify-user --domain $domain --user $username --pass $newpass", $output, $returnvalue); + $username = escapeshellcmd($username); + $domain = escapeshellcmd($domain); + $newpass = escapeshellcmd($newpass); + $curdir = realpath(dirname(__FILE__)); - if ($returnvalue == 0) { - return PASSWORD_SUCCESS; - } - else { - raise_error(array( - 'code' => 600, - 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Password plugin: Unable to execute $curdir/chgvirtualminpasswd" - ), true, false); - } + exec("$curdir/chgvirtualminpasswd modify-user --domain $domain --user $username --pass $newpass", $output, $returnvalue); - return PASSWORD_ERROR; -} + if ($returnvalue == 0) { + return PASSWORD_SUCCESS; + } + else { + raise_error(array( + 'code' => 600, + 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Password plugin: Unable to execute $curdir/chgvirtualminpasswd" + ), true, false); + } -?> + return PASSWORD_ERROR; + } +} |
