]> git.donarmstrong.com Git - roundcube.git/blob - plugins/password/drivers/pam.php
Imported Debian patch 0.5.2+dfsg-1
[roundcube.git] / plugins / password / drivers / pam.php
1 <?php
2
3 /**
4  * PAM Password Driver
5  *
6  * @version 1.0
7  * @author Aleksander Machniak
8  */
9  
10 function password_save($currpass, $newpass)
11 {
12     $user = $_SESSION['username'];
13
14     if (extension_loaded('pam')) {
15         if (pam_auth($user, $currpass, $error, false)) {
16             if (pam_chpass($user, $currpass, $newpass)) {
17                 return PASSWORD_SUCCESS;
18             }
19         }
20         else {
21             raise_error(array(
22                 'code' => 600,
23                 'type' => 'php',
24                 'file' => __FILE__, 'line' => __LINE__,
25                 'message' => "Password plugin: PAM authentication failed for user $user: $error"
26                 ), true, false);
27         }
28     }
29     else {
30         raise_error(array(
31             'code' => 600,
32             'type' => 'php',
33             'file' => __FILE__, 'line' => __LINE__,
34             'message' => "Password plugin: PECL-PAM module not loaded"
35             ), true, false);
36     }
37
38     return PASSWORD_ERROR;
39 }
40
41 ?>