1f3e876d83c9472b64d31051456010f1db3e3a9d
[freeradius.git] / dialup_admin / lib / sql / create_user.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 include_once('../lib/functions.php3');
9 if ($config[sql_use_operators] == 'true'){
10         include("../lib/operators.php3");
11         $text = ',op';
12         $passwd_op = ",':='";
13 }
14 $da_abort=0;
15 $op_val2 = '';
16 $link = @da_sql_pconnect($config);
17 if ($link){
18         if (is_file("../lib/crypt/$config[general_encryption_method].php3")){
19                 include("../lib/crypt/$config[general_encryption_method].php3");
20                 $passwd = da_encrypt($passwd);
21                 $passwd = da_sql_escape_string($passwd);
22                 $res = @da_sql_query($link,$config,
23                 "INSERT INTO $config[sql_check_table] (attribute,value,username $text)
24                 VALUES ('$config[sql_password_attribute]','$passwd','$login' $passwd_op);");
25                 if (!$res || !@da_sql_affected_rows($link,$res,$config)){
26                         echo "<b>Unable to add user $login: " . da_sql_error($link,$config) . "</b><br>\n";
27                         $da_abort=1;
28                 }
29                 if ($config[sql_use_user_info_table] == 'true' && !$da_abort){
30                         $res = @da_sql_query($link,$config,
31                         "SELECT username FROM $config[sql_user_info_table] WHERE
32                         username = '$login';");
33                         if ($res){
34                                 if (!@da_sql_num_rows($res,$config)){
35                                         $Fcn = da_sql_escape_string($Fcn);
36                                         $Fmail = da_sql_escape_string($Fmail);
37                                         $Fou = da_sql_escape_string($Fou);
38                                         $Fhomephone = da_sql_escape_string($Fhomephone);
39                                         $Fworkphone = da_sql_escape_string($Fworkphone);
40                                         $Fmobile = da_sql_escape_string($Fmobile);      
41                                         $res = @da_sql_query($link,$config,
42                                         "INSERT INTO $config[sql_user_info_table]
43                                         (username,name,mail,department,homephone,workphone,mobile) VALUES
44                                         ('$login','$Fcn','$Fmail','$Fou','$Fhomephone','$Ftelephonenumber','$Fmobile');");
45                                         if (!$res || !@da_sql_affected_rows($link,$res,$config))
46                                                 echo "<b>Could not add user information in user info table: " . da_sql_error($link,$config) . "</b><br>\n";
47                                 }
48                                 else
49                                         echo "<b>User already exists in user info table.</b><br>\n";
50                         }
51                         else
52                                 echo "<b>Could not add user information in user info table: " . da_sql_error($link,$config) . "</b><br>\n";
53                 }
54                 if ($Fgroup != ''){
55                         $Fgroup = da_sql_escape_string($Fgroup);
56                         $res = @da_sql_query($link,$config,
57                         "SELECT username FROM $config[sql_usergroup_table]
58                         WHERE username = '$login' AND groupname = '$Fgroup';");
59                         if ($res){
60                                 if (!@da_sql_num_rows($res,$config)){
61                                         $res = @da_sql_query($link,$config,
62                                         "INSERT INTO $config[sql_usergroup_table]
63                                         (username,groupname) VALUES ('$login','$Fgroup');");
64                                         if (!$res || !@da_sql_affected_rows($link,$res,$config))
65                                                 echo "<b>Could not add user to group $Fgroup. SQL Error</b><br>\n";
66                                 }
67                                 else
68                                         echo "<b>User already is a member of group $Fgroup</b><br>\n";
69                         }
70                         else
71                                 echo "<b>Could not add user to group $Fgroup: " . da_sql_error($link,$config) . "</b><br>\n";
72                 }
73                 if (!$da_abort){
74                         if ($Fgroup != '')
75                                 require('../lib/defaults.php3');
76                         foreach($show_attrs as $key => $attr){
77                                 if ($attrmap["$key"] == 'none')
78                                         continue;
79                                 if ($attrmap["$key"] == ''){
80                                         $attrmap["$key"] = $key;
81                                         $attr_type["$key"] = 'replyItem';
82                                         $rev_attrmap["$key"] = $key;
83                                 }
84                                 if ($attr_type["$key"] == 'checkItem'){
85                                         $table = "$config[sql_check_table]";
86                                         $type = 1;
87                                 }
88                                 else if ($attr_type["$key"] == 'replyItem'){
89                                         $table = "$config[sql_reply_table]";
90                                         $type = 2;
91                                 }
92                                 $val = $$attrmap["$key"];
93                                 $val = da_sql_escape_string($val);
94                                 $op_name = $attrmap["$key"] . '_op';
95                                 $op_val = $$op_name;
96                                 if ($op_val != ''){
97                                         $op_val = da_sql_escape_string($op_val);
98                                         if (check_operator($op_val,$type) == -1){
99                                                 echo "<b>Invalid operator ($op_val) for attribute $key</b><br>\n";
100                                                 coninue;
101                                         }
102                                         $op_val2 = ",'$op_val'";
103                                 }
104                                 if ($val == '' || check_defaults($val,$op_val,$default_vals["$key"]))
105                                         continue;
106                                 $res = @da_sql_query($link,$config,
107                                 "INSERT INTO $table (attribute,value,username $text)
108                                 VALUES ('$attrmap[$key]','$val','$login' $op_val2);");
109                                 if (!$res || !@da_sql_affected_rows($link,$res,$config))
110                                         echo "<b>Query failed for attribute $key: " . da_sql_error($link,$config) . "</b><br>\n";
111                         }
112                 }
113                 echo "<b>User created successfully</b><br>\n";
114         }
115         else
116                 echo "<b>Could not open encryption library file</b><br>\n";
117 }
118 else
119         echo "<b>Could not connect to SQL database</b><br>\n";
120 ?>