import from HEAD:
[freeradius.git] / dialup_admin / lib / sql / defaults.php3
1 <?php
2 require('../lib/sql/attrmap.php3');
3 if ($login != ''){
4         if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php3"))
5                 include_once("../lib/sql/drivers/$config[sql_type]/functions.php3");
6         else{
7                 echo "<b>Could not include SQL library</b><br>\n";
8                 exit();
9         }
10         if ($config[sql_use_operators] == 'true'){
11                 $op = ',op';
12                 $use_op = 1;
13         }else{
14                 $op = "";
15                 $use_op = 0;
16         }
17         $overwrite_defaults = 1;
18         $stop = 0;
19         $times = 0;
20         do{
21                 unset($item_vals);
22                 unset($member_groups);
23                 unset($tmp);
24                 $times++;
25                 $link = @da_sql_pconnect($config);
26                 if ($link){
27                         $res = @da_sql_query($link,$config,
28                         "SELECT groupname FROM $config[sql_usergroup_table] WHERE username = '$login';");
29                         if ($res){
30                                 while(($row = @da_sql_fetch_array($res,$config)))
31                                         $member_groups[] = $row[groupname];
32                         }
33                         if (isset($member_groups)){
34                                 $in = '(';
35                                 foreach ($member_groups as $group)
36                                         $in .= "'$group',";
37                                 $in = substr($in,0,-1);
38                                 $in .= ')';     
39                                 $res = @da_sql_query($link,$config,
40                                 "SELECT attribute,value $op FROM $config[sql_groupcheck_table]
41                                 WHERE groupname IN $in;");
42                                 if ($res){
43                                         while(($row = @da_sql_fetch_array($res,$config))){
44                                                 $attr = $row[attribute];
45                                                 $val = $row[value];
46                                                 if ($use_op){
47                                                         $oper = $row[op];
48                                                         $tmp["$attr"][operator][]="$oper";
49                                                 }
50                                                 $tmp["$attr"][]="$val";
51                                                 $tmp["$attr"][count]++;
52                                         }
53                                         $res = @da_sql_query($link,$config,
54                                         "SELECT attribute,value $op FROM $config[sql_groupreply_table]
55                                         WHERE groupname IN $in;");
56                                         if ($res){
57                                                 while(($row = @da_sql_fetch_array($res,$config))){
58                                                         $attr = $row[attribute];
59                                                         $val = $row[value];
60                                                         if ($use_op){
61                                                                 $oper = $row[op];
62                                                                 $tmp["$attr"][operator][]="$oper";
63                                                         }
64                                                         $tmp["$attr"][] = "$val";
65                                                         $tmp["$attr"][count]++;
66                                                 }
67                                         }
68                                         else
69                                                 echo "<b>Database query failed partially: " . da_sql_error($link,$config) . "</b><br>\n";
70                                 }
71                                 else
72                                         echo "<b>Database query failed: " . da_sql_error($link,$config) . "</b><br>\n";
73                                 if (isset($tmp)){
74                                         foreach(array_keys($tmp) as $val){
75                                                 if ($val == '')
76                                                         continue;
77                                                 $key = $rev_attrmap["$val"];
78                                                 if ($key == ''){
79                                                         $key = $val;
80                                                         $attrmap["$key"] = $val;
81                                                         $attr_type["$key"] = 'replyItem';
82                                                         $rev_attrmap["$val"] = $key;
83                                                 }
84                                                 if (!isset($default_vals["$key"]) || $overwrite_defaults){
85                                                         if ($use_op)
86                                                                 $default_vals["$key"][operator] = $tmp["$val"][operator];
87                                                         if ($tmp[$val][0] != '')
88                                                                 $default_vals["$key"] = $tmp["$val"];
89                                                 }
90                                         }
91                                 }
92                         }
93                         if ($times == 1){
94                                 if ($config[sql_default_user_profile] == '')
95                                         $stop = 1;
96                                 else{
97                                         $saved_login = $login;
98                                         $saved_member_groups = $member_groups;
99                                         $login = $config[sql_default_user_profile];
100                                         $overwrite_defaults = 0;
101                                 }
102                         }
103                         if ($times == 2){
104                                 $login = $saved_login;
105                                 $member_groups = $saved_member_groups;
106                                 $stop = 1;
107                         }
108                 }
109                 else
110                         echo "<b>Could not connect to SQL database</b><br>\n";
111         }while($stop == 0);
112 }
113 else{
114         if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php3"))
115                 include_once("../lib/sql/drivers/$config[sql_type]/functions.php3");
116         else{
117                 echo "<b>Could not include SQL library</b><br>\n";
118                 exit();
119         }
120         unset($member_groups);
121         $link = @da_sql_pconnect($config);
122         if ($link){
123                 $res = @da_sql_query($link,$config,
124                 "SELECT DISTINCT groupname FROM $config[sql_usergroup_table];");
125                 if ($res){
126                         while(($row = @da_sql_fetch_array($res,$config)))
127                                 $member_groups[] = $row[groupname];
128                 }
129                 else
130                         echo "<b>Database query failed: " . da_sql_error($link,$config) . "</b><br>\n";
131         }
132         else
133                 echo "<b>Could not connect to SQL database</b><br>\n";
134 }
135 ?>