Thomas Bruederli
2013-06-20 07c6c69eca8751c0e96a846afb30c24ab2638b1f
commit | author | age
48e9c1 1 <?php
T 2
3 /**
4  * PAM Password Driver
5  *
6  * @version 2.0
7  * @author Aleksander Machniak
8  */
9
10 class rcube_pam_password
11 {
12     function save($currpass, $newpass)
13     {
ce89ec 14         $user  = $_SESSION['username'];
AM 15         $error = '';
48e9c1 16
a622b7 17         if (extension_loaded('pam') || extension_loaded('pam_auth')) {
48e9c1 18             if (pam_auth($user, $currpass, $error, false)) {
T 19                 if (pam_chpass($user, $currpass, $newpass)) {
20                     return PASSWORD_SUCCESS;
21                 }
22             }
23             else {
61be82 24                 rcube::raise_error(array(
48e9c1 25                     'code' => 600,
T 26                     'type' => 'php',
27                     'file' => __FILE__, 'line' => __LINE__,
28                     'message' => "Password plugin: PAM authentication failed for user $user: $error"
29                     ), true, false);
30             }
31         }
32         else {
61be82 33             rcube::raise_error(array(
48e9c1 34                 'code' => 600,
T 35                 'type' => 'php',
36                 'file' => __FILE__, 'line' => __LINE__,
37                 'message' => "Password plugin: PECL-PAM module not loaded"
38                 ), true, false);
39         }
40
41         return PASSWORD_ERROR;
42     }
43 }