backport from HEAD
[freeradius.git] / dialup_admin / lib / sql / change_passwd.php3
1 <?php
2 if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php3"))
3         include_once("../lib/sql/drivers/$config[sql_type]/functions.php3");
4 else{
5         echo "<b>Could not include SQL library</b><br>\n";
6         exit();
7 }
8 if ($config[sql_use_operator] == 'true'){
9         $text1 = ',op';
10         $text2  = ",':='";
11         $text3 = "AND op = ':='";
12 }
13 else{
14         $text1 = '';
15         $text2 = '';
16         $text3 = '';
17 }
18 $link = @da_sql_pconnect($config);
19 if ($link){
20         if (is_file("../lib/crypt/$config[general_encryption_method].php3")){
21                 include("../lib/crypt/$config[general_encryption_method].php3");
22                 $passwd = da_encrypt($passwd);
23                 $res = @da_sql_query($link,$config,
24                         "SELECT value FROM $config[sql_check_table] WHERE username = '$login'
25                         AND attribute = '$config[sql_password_attribute]';");
26                 if ($res){
27                         $row = @da_sql_fetch_array($res,$config);
28                         if ($row){
29                                 $res = @da_sql_query($link,$config,
30                                 "UPDATE $config[sql_check_table] SET value = '$passwd' $text3 WHERE
31                                 attribute = '$config[sql_password_attribute]' AND username = '$login';");
32                                 if (!$res || !@da_sql_affected_rows($link,$res,$config))
33                                         echo "<b>Error while changing password: " . da_sql_error($link,$config) . "</b><br>\n"; 
34                         }
35                         else{
36                                 $res = @da_sql_query($link,$config,
37                                         "INSERT INTO $config[sql_check_table] (attribute,value,username $text1)
38                                         VALUES ('$config[sql_password_attribute]','$passwd','$login' $text2);");
39                                 if (!$res || !@da_sql_affected_rows($link,$res,$config))
40                                         echo "<b>Error while changing password: " . da_sql_error($link,$config) . "</b><br>\n";
41                         }
42                 }
43                 else
44                         echo "<b>Error while executing query: " . da_sql_error($link,$config) . "</b><br>\n";
45         }
46         else
47                 echo "<b>Could not open encryption library file</b><br>\n";
48 }
49 else
50         echo "<b>Could not connect to SQL database</b><br>\n";
51 ?>