commit | author | age
|
48e9c1
|
1 |
<?php |
T |
2 |
|
|
3 |
/** |
|
4 |
* vpopmail Password Driver |
|
5 |
* |
|
6 |
* Driver to change passwords via vpopmaild |
|
7 |
* |
|
8 |
* @version 2.0 |
|
9 |
* @author Johannes Hessellund |
|
10 |
* |
|
11 |
*/ |
|
12 |
|
|
13 |
class rcube_vpopmaild_password |
|
14 |
{ |
|
15 |
function save($curpass, $passwd) |
|
16 |
{ |
|
17 |
$rcmail = rcmail::get_instance(); |
|
18 |
// include('Net/Socket.php'); |
|
19 |
$vpopmaild = new Net_Socket(); |
|
20 |
|
|
21 |
if (PEAR::isError($vpopmaild->connect($rcmail->config->get('password_vpopmaild_host'), |
d6938b
|
22 |
$rcmail->config->get('password_vpopmaild_port'), null))) { |
48e9c1
|
23 |
return PASSWORD_CONNECT_ERROR; |
T |
24 |
} |
|
25 |
|
|
26 |
$result = $vpopmaild->readLine(); |
|
27 |
if(!preg_match('/^\+OK/', $result)) { |
|
28 |
$vpopmaild->disconnect(); |
|
29 |
return PASSWORD_CONNECT_ERROR; |
|
30 |
} |
|
31 |
|
|
32 |
$vpopmaild->writeLine("slogin ". $_SESSION['username'] . " " . $curpass); |
|
33 |
$result = $vpopmaild->readLine(); |
|
34 |
|
|
35 |
if(!preg_match('/^\+OK/', $result) ) { |
|
36 |
$vpopmaild->writeLine("quit"); |
|
37 |
$vpopmaild->disconnect(); |
|
38 |
return PASSWORD_ERROR; |
|
39 |
} |
|
40 |
|
|
41 |
$vpopmaild->writeLine("mod_user ". $_SESSION['username']); |
|
42 |
$vpopmaild->writeLine("clear_text_password ". $passwd); |
|
43 |
$vpopmaild->writeLine("."); |
|
44 |
$result = $vpopmaild->readLine(); |
|
45 |
$vpopmaild->writeLine("quit"); |
|
46 |
$vpopmaild->disconnect(); |
|
47 |
|
|
48 |
if (!preg_match('/^\+OK/', $result)) |
|
49 |
return PASSWORD_ERROR; |
|
50 |
|
|
51 |
return PASSWORD_SUCCESS; |
|
52 |
} |
|
53 |
} |