root/trunk/php/src/authadldbuttom_3_importfromad.php @ 716

Revision 716, 14.9 KB (checked in by DmitryChemerik, 10 months ago)

исправлена ошибка в при импорте пользователей групп adld, ldap, ntlm

Line 
1<?php
2/* 
3 * SAMS (Squid Account Management System)
4 * Author: Dmitry Chemerik chemerik@mail.ru
5 * (see the file 'main.php' for license details)
6 */
7
8function AddGroup()
9{
10  global $SAMSConf;
11  $DB=new SAMSDB(&$SAMSConf);
12  $lang="./lang/lang.$SAMSConf->LANG";
13  require($lang);
14
15  if($USERConf->ToWebInterfaceAccess("C")!=1 )
16        exit(0);
17
18  if(isset($_GET["groupnick"])) $groupnick=$_GET["groupnick"];
19
20//  $groupname=TempName();
21
22  $result=$DB->samsdb_query_value("SELECT s_name FROM sgroup where s_name = '$groupnick'");
23//  $result=mysql_query("SELECT nick FROM groups where nick = '$groupnick';");
24  if($result == 0) 
25  {
26    $result=$DB->samsdb_query("INSERT INTO sgroup (s_name) VALUES('$groupnick') ");
27    $result=$DB->samsdb_query("INSERT INTO auth_param (s_auth, s_param, s_value) VALUES('adld', 'adldgroup', '$groupnick') ");
28//    if($result!=FALSE)
29//      UpdateLog("$SAMSConf->adminname","Added group  $groupnick ","02");
30
31    print("<SCRIPT>\n");
32    print("  parent.lframe.location.href=\"lframe.php\"; \n");
33    print("  parent.tray.location.href=\"tray.php?show=usergrouptray&groupname=$groupname&groupnick=$groupnick\";\n");
34    print("</SCRIPT> \n");
35  } else {
36    PageTop("usergroup_48.jpg","$newgroupbuttom_5_addgroup_newgrpbuttom_5_groupexist");
37  }
38}
39
40
41function AddShablon()
42{
43  global $SAMSConf;
44  $DB=new SAMSDB(&$SAMSConf);
45 
46  $lang="./lang/lang.$SAMSConf->LANG";
47  require($lang);
48
49  if($USERConf->ToWebInterfaceAccess("C")!=1 )
50        exit;
51
52  $period="M";
53  $clrdate="1980-01-01";
54  if(isset($_GET["groupnick"])) $snick=$_GET["groupnick"];
55  if(isset($_GET["defaulttraf"])) $defaulttraf=$_GET["defaulttraf"];
56  if(isset($_GET["auth"])) $auth=$_GET["auth"];
57
58  if(isset($_GET["period"])) $period=$_GET["period"];
59  if(isset($_GET["newperiod"])) $newperiod=$_GET["newperiod"];
60   
61  if(isset($_GET["clryear"])) $clryear=$_GET["clryear"];
62  if(isset($_GET["clrmonth"])) $clrmonth=$_GET["clrmonth"];
63  if(isset($_GET["clrday"])) $clrday=$_GET["clrday"];
64  if(isset($_GET["trange"])) $trange=$_GET["trange"];
65 
66   if($period=="A")
67     {
68       $period=$newperiod;
69       $clrdate="$clryear-$clrmonth-$clrday"; 
70     } 
71 
72  $QUERY="INSERT INTO shablon ( s_name, s_quote, s_auth, s_period, s_clrdate, s_alldenied ) VALUES ( '$snick', '$defaulttraf', '$auth', '$period', '$clrdate', '0' ) ";
73echo "$QUERY<BR>";
74  $DB->samsdb_query($QUERY);
75  $DB->samsdb_query_value("SELECT s_shablon_id FROM shablon WHERE s_name='$snick' ");
76  $row=$DB->samsdb_fetch_array();
77  $sid=$row['s_shablon_id'];
78  $DB->free_samsdb_query();
79  $DB->samsdb_query("INSERT INTO sconfig_time ( s_shablon_id, s_trange_id ) VALUES ( '$sid', '$trange' ) ");
80//  UpdateLog("$SAMSConf->adminname","$shablonnew_AddShablon_1 $snick","01");
81
82  print("<SCRIPT>\n");
83  print("  parent.lframe.location.href=\"lframe.php\"; \n");
84  print("</SCRIPT> \n");
85}
86
87
88
89function ImportFromAD()
90{
91  require_once("adldap.php");
92
93  global $SAMSConf;
94  global $USERConf;
95  $DB=new SAMSDB(&$SAMSConf);
96 
97  $lang="./lang/lang.$SAMSConf->LANG";
98  require($lang);
99
100  if($USERConf->ToWebInterfaceAccess("C")!=1 )
101        exit(0);
102
103echo "ImportFromAD<BR>";
104 
105  if(isset($_GET["addtemplates"])) $addtemplates=$_GET["addtemplates"];
106  if(isset($_GET["addgroups"])) $addgroups=$_GET["addgroups"];
107  if(isset($_GET["addgroupname"])) $addgroupname=$_GET["addgroupname"];
108
109  if(isset($_GET["defaulttraf"])) $defaulttraf=$_GET["defaulttraf"];
110
111  if(isset($_GET["period"])) $period=$_GET["period"];
112  if(isset($_GET["newperiod"])) $newperiod=$_GET["newperiod"];
113   
114  if(isset($_GET["clryear"])) $clryear=$_GET["clryear"];
115  if(isset($_GET["clrmonth"])) $clrmonth=$_GET["clrmonth"];
116  if(isset($_GET["clrday"])) $clrday=$_GET["clrday"];
117  if(isset($_GET["trange"])) $trange=$_GET["trange"];
118
119  if(isset($_GET["enabled"])) $enabled=$_GET["enabled"];
120
121        $addgroups="on";
122        $addtemplates="on";
123
124        if($enabled=="on")
125                $enabled=1;
126        else 
127                $enabled=0;
128
129        if($period=="A")
130        {
131                $period=$newperiod;
132                $clrdate="$clryear-$clrmonth-$clrday"; 
133        } 
134
135        $adldserver=GetAuthParameter("adld","adldserver");
136        $basedn=GetAuthParameter("adld","basedn");
137        $adadmin=GetAuthParameter("adld","adadmin");
138        $adadminpasswd=GetAuthParameter("adld","adadminpasswd");
139        $usergroup=GetAuthParameter("adld","usergroup");
140
141        $LDAPBASEDN2=strtok($basedn,".");
142        $LDAPBASEDN="DC=$LDAPBASEDN2";
143        while(strlen($LDAPBASEDN2)>0)
144        {
145                $LDAPBASEDN2=strtok(".");
146                if(strlen($LDAPBASEDN2)>0)
147                        $LDAPBASEDN="$LDAPBASEDN,DC=$LDAPBASEDN2";
148        }
149
150        $pdc=array("$adldserver");
151        $options=array(account_suffix=>"@$basedn", base_dn=>"$LDAPBASEDN",domain_controllers=>$pdc, 
152        ad_username=>"$adadmin",ad_password=>"$adadminpasswd","","","");
153
154        $ldap=new adLDAP($options);
155
156
157
158
159        $i=0;
160        while(strlen($addgroupname[$i])>0)
161        {
162echo "$i: $addgroupname[$i]<BR>";
163                if($addtemplates=="on")
164                {
165echo " add template: $addgroupname[$i]<BR>";
166
167
168                        $result=$DB->samsdb_query_value("SELECT s_name FROM shablon where s_name = '$addgroupname[$i]'");
169                        if($result == 0) 
170                        {
171                                if($clrdate=="")
172                                        $clrdate="1980-01-01";
173
174                                $DB->samsdb_query("INSERT INTO shablon ( s_name, s_quote, s_auth, s_period, s_clrdate, s_alldenied,     s_shablon_id2 ) VALUES ( '$addgroupname[$i]', '$defaulttraf', 'adld', '$period', '$clrdate', '0', '-1' ) ");
175                                $DB->samsdb_query_value("SELECT s_shablon_id FROM shablon WHERE s_name='$addgroupname[$i]' ");
176                                $row=$DB->samsdb_fetch_array();
177                                $sid=$row['s_shablon_id'];
178                                $DB->free_samsdb_query();
179                                $DB->samsdb_query("INSERT INTO sconfig_time ( s_shablon_id, s_trange_id ) VALUES ( '$sid', '$trange' ) ");
180                                echo "create template $addgroupname[$i] "; 
181                        }
182
183                }
184                if($addgroups=="on")
185                {
186echo " add group: $addgroupname[$i]<BR>";
187                        $result=$DB->samsdb_query_value("SELECT s_name FROM sgroup where s_name = '$addgroupname[$i]'");
188                        if($result == 0) 
189                        {
190                                $result=$DB->samsdb_query("INSERT INTO sgroup (s_name) VALUES('$addgroupname[$i]') ");
191                                echo "create group $addgroupname[$i] "; 
192                                $result=$DB->samsdb_query("INSERT INTO auth_param (s_auth, s_param, s_value) VALUES('adld', 'adldgroup', '$addgroupname[$i]') ");
193                        }
194
195
196
197//      $groupid=1;
198//      $shablonid=1;
199
200        $result=$DB->samsdb_query_value("SELECT s_name, s_group_id FROM sgroup where s_name = '$addgroupname[$i]'");
201        $row=$DB->samsdb_fetch_array();
202        $groupid=$row['s_group_id'];
203
204        $result=$DB->samsdb_query_value("SELECT s_name, s_shablon_id FROM shablon where s_name = '$addgroupname[$i]'");
205        $row=$DB->samsdb_fetch_array();
206        $shablonid=$row['s_shablon_id'];
207
208        $a=$ldap->group_users($addgroupname[$i]);
209        $acount=count($a);
210        for($j=0;$j<$acount;$j++)
211        {
212                $user=$a[$j];
213                $username=$a[$j];
214
215                $userinfo=$ldap->user_info( $user, $fields=NULL);
216                $username2 = UTF8ToSAMSLang($user);
217                $displayname = UTF8ToSAMSLang($userinfo[0]["displayname"][0]);
218                $name=explode(" ",$displayname);
219                $cname=count($name);
220                echo " $user $username $name[0] ".$name[$cname-1]." $cname<BR>";
221
222                if($enabled=="")
223                        $enabled=1;
224
225                $QUERY="INSERT INTO squiduser ( s_nick, s_domain, s_name, s_family, s_shablon_id, s_quote,  s_size, s_enabled, s_group_id, s_soname, s_ip, s_passwd, s_hit, s_autherrorc, s_autherrort ) VALUES ( '$user', '$userdomain', '$name[0]', '".$name[$cname-1]."', '$shablonid', '$defaulttraf',  '0', '$enabled', '$groupid', '$usersoname', '$userip', '$pass', '0', '0', '0') ";
226                $DB->samsdb_query($QUERY);
227//      $DB->samsdb_query("INSERT INTO squiduser ( s_nick, s_domain, s_name, s_family, s_shablon_id, s_quote, s_size, s_enabled, s_group_id, s_soname, s_ip, s_passwd, s_hit, s_autherrorc, s_autherrort ) VALUES ( '$user', '$userdomain', '$name[0]', '".$name[$cname-1]."', '$shablonid', '$userquote', '0', '$enabled', $groupid, '$usersoname', '$userip', '$pass', '0', '0', '0') ");
228
229        }
230
231                }
232                print(" <BR>");
233                $i++;
234        }
235        print("<SCRIPT>\n");
236        print("  parent.lframe.location.href=\"lframe.php\"; \n");
237        print("  parent.tray.location.href=\"tray.php?show=usergrouptray&groupname=$groupname&groupnick=$groupnick\";\n");
238        print("</SCRIPT> \n");
239
240}
241
242function ImportFromADForm()
243{
244  global $SAMSConf;
245  global $USERConf;
246 
247  $lang="./lang/lang.$SAMSConf->LANG";
248  require($lang);
249
250  if($USERConf->ToWebInterfaceAccess("C")!=1 )
251        exit(0); 
252
253  PageTop("importfromad-48.jpg"," $authadldbuttom_3_importfromad_ImportFromADForm_1 ");
254 
255        require_once("src/adldap.php");
256
257        print("<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n");
258        $DB=new SAMSDB(&$SAMSConf);
259
260        $adldserver=GetAuthParameter("adld","adldserver");
261        $basedn=GetAuthParameter("adld","basedn");
262        $adadmin=GetAuthParameter("adld","adadmin");
263        $adadminpasswd=GetAuthParameter("adld","adadminpasswd");
264        $usergroup=GetAuthParameter("adld","usergroup");
265
266        $LDAPBASEDN2=strtok($basedn,".");
267        $LDAPBASEDN="DC=$LDAPBASEDN2";
268        while(strlen($LDAPBASEDN2)>0)
269        {
270                $LDAPBASEDN2=strtok(".");
271                if(strlen($LDAPBASEDN2)>0)
272                        $LDAPBASEDN="$LDAPBASEDN,DC=$LDAPBASEDN2";
273        }
274
275        $pdc=array("$adldserver");
276        $options=array(account_suffix=>"@$basedn", base_dn=>"$LDAPBASEDN",domain_controllers=>$pdc, 
277        ad_username=>"$adadmin",ad_password=>"$adadminpasswd","","","");
278
279        $ldap=new adLDAP($options);
280
281        $groupinfo=$ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
282        $gcount=count($groupinfo);
283
284        print("<FORM NAME=\"AddFromAD\" ACTION=\"main.php\">\n");
285        print("<INPUT TYPE=\"HIDDEN\" NAME=\"show\" id=Show value=\"exe\">\n");
286        print("<INPUT TYPE=\"HIDDEN\" NAME=\"function\" id=function value=\"importfromad\">\n");
287        print("<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" id=filename value=\"authadldbuttom_3_importfromad.php\">\n"); 
288/* */
289        echo "<TABLE WIDTH=90%>";
290        print("<TR><TD WIDTH=30%><B>$authadldbuttom_3_importfromad_ImportFromADForm_2:\n");
291        print("<TD WIDTH=70%><SELECT NAME=\"addgroupname[]\" SIZE=15 TABINDEX=30 MULTIPLE>\n");
292        for($i=0;$i<$gcount;$i++)
293        {
294                $groupname = UTF8ToSAMSLang($groupinfo[$i]);
295                if(SearchAuthParameter("adld","adldgroup","$groupname")==0)
296                        print("<OPTION VALUE=\"$groupname\"> $groupname \n");
297        }
298        print("</SELECT>\n");
299
300        print("<TR><TD><B>$usersbuttom_1_domain_AddUsersFromDomainForm_6");
301        print("<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"enabled\" CHECKED>");
302
303/*
304        print("<TR><TD WIDTH=30%><B>Create SAMS templates with AD groups name:\n");
305        print("<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"addtemplates\" CHECKED onclick=ADTempaletesEnabled(AddDomainUsers)>");
306
307           print("<SCRIPT LANGUAGE=JAVASCRIPT> \n");
308           print("function ADTempaletesEnabled(formname) \n");
309           print("{ \n");
310           print("  if(formname.addtemplates.checked==true) \n");
311           print("    {\n");
312           print("      formname.defaulttraf.disabled=false;  \n");
313           print("      formname.period.disabled=false;  \n");
314           print("      EnterPeriod(formname);  \n");
315           print("      formname.trange.disabled=false;  \n");
316//           print("      formname.newperiod.disabled=false;  \n");
317//           print("      formname.clryear.disabled=false;  \n");
318//           print("      formname.clrmonth.disabled=false;  \n");
319//           print("      formname.clrday.disabled=false;  \n");
320           print("    }\n");
321           print("  else \n");
322           print("    {\n");
323           print("      formname.defaulttraf.disabled=true;  \n");
324           print("      formname.period.disabled=true;  \n");
325//         print("      EnterPeriod(formname);  \n");
326           print("      formname.newperiod.disabled=true;  \n");
327           print("      formname.clryear.disabled=true;  \n");
328           print("      formname.clrmonth.disabled=true;  \n");
329           print("      formname.clrday.disabled=true;  \n");
330           print("      formname.trange.disabled=true;  \n");
331           print("    }\n");
332           print("}\n");
333           print("</SCRIPT> \n");
334*/
335        print("<TR>\n");
336        print("<TD>\n");
337        print("$shablonnew_NewShablonForm_3:\n");
338        print("<TD>\n");
339        print("<INPUT TYPE=\"TEXT\" NAME=\"defaulttraf\" SIZE=6 VALUE=\"100\"> <B> 0 - unlimited traffic\n" );
340
341        print("<TR>\n");
342        print("<TD>\n");
343        print("$shablonnew_NewShablonForm_10\n");
344        print("<TD>\n");
345        print("<SELECT NAME=\"period\" onchange=EnterPeriod(AddDomainUsers)  $CCLEAN> \n");
346        print("<OPTION value=\"M\" SELECTED>$shablonnew_NewShablonForm_11\n");
347        print("<OPTION value=\"W\">$shablonnew_NewShablonForm_12\n");
348        print("<OPTION value=\"A\">$shablonnew_NewShablonForm_13\n");
349        print("</SELECT>\n");
350
351        print("<SCRIPT LANGUAGE=JAVASCRIPT> \n");
352        print("function EnterPeriod(formname) \n");
353        print("{ \n");
354        print("  var period=formname.period.value; \n");
355        print("  var clryear=formname.clryear.value; \n");
356        print("  var clrmonth=formname.clrmonth.value; \n");
357        print("  var clrday=formname.clrday.value; \n");
358      //print("  value=window.confirm(\"1? \" );\n");
359         print("  if(period==\"A\") \n");
360        print("    {\n");
361        print("      formname.newperiod.disabled=false;  \n");
362        print("      formname.clryear.disabled=false;  \n");
363        print("      formname.clrmonth.disabled=false;  \n");
364        print("      formname.clrday.disabled=false;  \n");
365        print("    }\n");
366        print("  else \n");
367        print("    {\n");
368        print("      formname.newperiod.disabled=true;  \n");
369        print("      formname.clryear.disabled=true;  \n");
370        print("      formname.clrmonth.disabled=true;  \n");
371        print("      formname.clrday.disabled=true;  \n");
372        print("    }\n");
373        print("}\n");
374        print("</SCRIPT> \n");
375        $month=array(0,1,2,3,4,5,6,7,8,9,10,11,12); 
376        $days=array(0,31,28,31,30,31,30,31,31,30,31,30,31); 
377        $YCLRVALUE=strftime("%Y");
378        $MCLRVALUE=strftime("%m");
379        $DCLRVALUE=strftime("%d");
380        if($DCLRVALUE+1>$days[$MCLRVALUE])
381        {
382          $DCLRVALUE=1;
383          $MCLRVALUE+=1;
384          if($MCLRVALUE>12)
385            {
386              $MCLRVALUE=1;
387              $YCLRVALUE+=1;
388            }
389        }
390        else
391        $DCLRVALUE+=1; 
392        print("<TR><TD>\n");
393        print("<TD> $shablonnew_NewShablonForm_14: \n");
394        print("<INPUT TYPE=\"TEXT\" NAME=\"newperiod\" SIZE=5 DISABLED>$shablonnew_NewShablonForm_15\n");
395        print("<TR><TD><TD> $shablonnew_NewShablonForm_16: \n");
396        print("<BR><INPUT TYPE=\"TEXT\" NAME=\"clryear\" SIZE=4 DISABLED VALUE=\"$YCLRVALUE\">:\n");
397        print("<INPUT TYPE=\"TEXT\" NAME=\"clrmonth\" SIZE=2 DISABLED VALUE=\"$MCLRVALUE\">:\n");
398        print("<INPUT TYPE=\"TEXT\" NAME=\"clrday\" SIZE=2 DISABLED VALUE=\"$DCLRVALUE\">\n");
399
400        print("<TR><TD>$AddTRangeForm_trangetray_1:<TD><SELECT NAME=\"trange\" ID=\"trange\" >\n");
401        $num_rows=$DB->samsdb_query_value("SELECT * FROM timerange ");
402        while($row=$DB->samsdb_fetch_array())
403        {
404           print("<OPTION VALUE=$row[s_trange_id]> $row[s_name] ($row[s_timestart] - $row[s_timeend] )");
405       
406        }
407        print("</SELECT>\n");
408
409
410
411/*
412        print("<TR><TD WIDTH=30%><B>Create SAMS groups with AD groups name:\n");
413        print("<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"addgroups\" CHECKED>");
414*/
415        echo "</TABLE>";
416        print("<INPUT TYPE=\"SUBMIT\" value=\"Import\">\n");
417        print("</FORM>\n");
418
419}
420
421
422
423function authadldbuttom_3_importfromad()
424{
425  global $SAMSConf;
426  global $USERConf;
427 
428  $lang="./lang/lang.$SAMSConf->LANG";
429  require($lang);
430
431  if($USERConf->ToWebInterfaceAccess("C")==1 )
432    {
433       GraphButton("main.php?show=exe&function=importfromadform&filename=authadldbuttom_3_importfromad.php","basefrm","importfromad-32.jpg","importfromad-48.jpg","$authadldbuttom_3_importfromad_ImportFromADForm_1");
434        }
435
436}
437
438?>
Note: See TracBrowser for help on using the browser.