| | |
| | | * Configuration settings: |
| | | * password_smb_host => samba host (default: localhost) |
| | | * password_smb_cmd => smbpasswd binary (default: /usr/bin/smbpasswd) |
| | | * |
| | | * Copyright (C) 2005-2013, The Roundcube Dev Team |
| | | * |
| | | * This program is free software: you can redistribute it and/or modify |
| | | * it under the terms of the GNU General Public License as published by |
| | | * the Free Software Foundation, either version 3 of the License, or |
| | | * (at your option) any later version. |
| | | * |
| | | * This program is distributed in the hope that it will be useful, |
| | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | * GNU General Public License for more details. |
| | | * |
| | | * You should have received a copy of the GNU General Public License |
| | | * along with this program. If not, see http://www.gnu.org/licenses/. |
| | | */ |
| | | |
| | | class rcube_smb_password |
| | |
| | | |
| | | public function save($currpass, $newpass) |
| | | { |
| | | $host = rcmail::get_instance()->config->get('password_smb_host','localhost'); |
| | | $bin = rcmail::get_instance()->config->get('password_smb_cmd','/usr/bin/smbpasswd'); |
| | | $host = rcmail::get_instance()->config->get('password_smb_host','localhost'); |
| | | $bin = rcmail::get_instance()->config->get('password_smb_cmd','/usr/bin/smbpasswd'); |
| | | $username = $_SESSION['username']; |
| | | |
| | | $tmpfile = tempnam(sys_get_temp_dir(),'smb'); |
| | | $cmd = $bin . ' -r ' . $host . ' -s -U "' . $username . '" > ' . $tmpfile . ' 2>&1'; |
| | | $handle = @popen($cmd, 'w'); |
| | | $host = rcube_utils::parse_host($host); |
| | | $tmpfile = tempnam(sys_get_temp_dir(),'smb'); |
| | | $cmd = $bin . ' -r ' . $host . ' -s -U "' . $username . '" > ' . $tmpfile . ' 2>&1'; |
| | | $handle = @popen($cmd, 'w'); |
| | | |
| | | fputs($handle, $currpass."\n"); |
| | | fputs($handle, $newpass."\n"); |
| | | fputs($handle, $newpass."\n"); |
| | |
| | | return PASSWORD_SUCCESS; |
| | | } |
| | | else { |
| | | raise_error(array( |
| | | rcube::raise_error(array( |
| | | 'code' => 600, |
| | | 'type' => 'php', |
| | | 'file' => __FILE__, 'line' => __LINE__, |
| | |
| | | |
| | | return PASSWORD_ERROR; |
| | | } |
| | | |
| | | } |
| | | ?> |