Beispiel #1
0
function ADLDtest()
{
    global $SAMSConf;
    global $USERConf;
    if ($USERConf->ToWebInterfaceAccess("C") != 1) {
        exit;
    }
    $info = array();
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    print "<H1>Test AD connection</H1>";
    require_once "src/adldap.php";
    //create the LDAP connection
    $adldserver = GetAuthParameter("adld", "adldserver");
    $basedn = GetAuthParameter("adld", "basedn");
    $adadmin = GetAuthParameter("adld", "adadmin");
    $adadminpasswd = GetAuthParameter("adld", "adadminpasswd");
    $usergroup = GetAuthParameter("adld", "usergroup");
    $LDAPBASEDN2 = strtok($basedn, ".");
    $LDAPBASEDN = "DC={$LDAPBASEDN2}";
    while (strlen($LDAPBASEDN2) > 0) {
        $LDAPBASEDN2 = strtok(".");
        if (strlen($LDAPBASEDN2) > 0) {
            $LDAPBASEDN = "{$LDAPBASEDN},DC={$LDAPBASEDN2}";
        }
    }
    $pdc = array("{$adldserver}");
    $options = array(account_suffix => "@{$basedn}", base_dn => "{$LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$adadmin}", ad_password => "{$adadminpasswd}", "", "", "");
    $ldap = new adLDAP($options);
    $charset = explode(",", $_SERVER['HTTP_ACCEPT_CHARSET']);
    $groups = $ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
    $gcount = count($groups);
    print "<TABLE CLASS=samstable>";
    print "<TH width=5%>No";
    print "<TH >{$adldtest_1_authldaptray} {$basedn}";
    for ($i = 0, $j = 1; $i < $gcount; $i++, $j++) {
        $groupname = UTF8ToSAMSLang($groups[$i]);
        echo "<TR><TD>{$j}:<TD>{$groupname} <BR>";
    }
    echo "</TABLE><P>";
    $users = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
    $count = count($users);
    print "<TABLE CLASS=samstable>";
    print "<TH width=5%>No";
    print "<TH >{$adldtest_2_authldaptray} {$basedn}";
    print "<TH > ";
    $i = 0;
    foreach ($users as $user) {
        $i++;
        $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
        $displayname = UTF8ToSAMSLang($user["displayname"]);
        echo "<TR><TD>{$i}: <TD> {$samaccountname} <TD> {$displayname}";
    }
    echo "</TABLE>";
}
function ImportFromADForm()
{
    global $SAMSConf;
    global $USERConf;
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if ($USERConf->ToWebInterfaceAccess("UC") != 1) {
        exit(0);
    }
    PageTop("importfromad-48.jpg", " {$authadldbuttom_3_importfromad_ImportFromADForm_1} ");
    require_once "src/adldap.php";
    //	print("<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n");
    $DB = new SAMSDB();
    $adldserver = GetAuthParameter("adld", "adldserver");
    $basedn = GetAuthParameter("adld", "basedn");
    $adadmin = GetAuthParameter("adld", "adadmin");
    $adadminpasswd = GetAuthParameter("adld", "adadminpasswd");
    $usergroup = GetAuthParameter("adld", "usergroup");
    $LDAPBASEDN2 = strtok($basedn, ".");
    $LDAPBASEDN = "DC={$LDAPBASEDN2}";
    while (strlen($LDAPBASEDN2) > 0) {
        $LDAPBASEDN2 = strtok(".");
        if (strlen($LDAPBASEDN2) > 0) {
            $LDAPBASEDN = "{$LDAPBASEDN},DC={$LDAPBASEDN2}";
        }
    }
    $pdc = array("{$adldserver}");
    $options = array(account_suffix => "@{$basedn}", base_dn => "{$LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$adadmin}", ad_password => "{$adadminpasswd}", "", "", "");
    $ldap = new adLDAP($options);
    $groupinfo = $ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
    $gcount = count($groupinfo);
    print "<FORM NAME=\"AddFromAD\" ACTION=\"main.php\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"show\" id=Show value=\"exe\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"function\" id=function value=\"importfromad\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" id=filename value=\"authadldbuttom_3_importfromad.php\">\n";
    /* */
    echo "<TABLE WIDTH=90%>";
    print "<TR><TD WIDTH=30%><B>{$authadldbuttom_3_importfromad_ImportFromADForm_2}:\n";
    print "<TD WIDTH=70%><SELECT NAME=\"addgroupname[]\" SIZE=15 TABINDEX=30 MULTIPLE>\n";
    asort($groupinfo);
    foreach ($groupinfo as $group) {
        $groupname = UTF8ToSAMSLang($group);
        if (SearchAuthParameter("adld", "adldgroup", "{$groupname}") == 0) {
            print "<OPTION VALUE=\"{$groupname}\"> {$groupname} \n";
        }
    }
    print "</SELECT>\n";
    print "<TR><TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_3} \n";
    print "<TD>\n";
    print "<SELECT NAME=\"groupname\" ID=\"groupname\" SIZE=1 TABINDEX=30   onchange=EnterNewGroupName(AddFromAD)>\n";
    $num_rows = $DB->samsdb_query_value("SELECT * FROM sgroup");
    while ($row2 = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE=\"{$row2['s_group_id']}\"> {$row2['s_name']} ";
    }
    print "<OPTION VALUE=\"-2\"> {$usersbuttom_1_domain_AddUsersFromDomainForm_10}";
    print "<OPTION VALUE=\"-1\"> {$usersbuttom_1_domain_AddUsersFromDomainForm_8} ";
    print "</SELECT>\n";
    print "<TR><TD ALIGN=RIGHT>\n";
    print "{$usersbuttom_1_domain_AddUsersFromDomainForm_9}: \n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"newgroupname\" id=Newgroupname\" DISABLED>\n";
    $DB->free_samsdb_query();
    print "<TR><TD><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_6}";
    print "<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"enabled\" CHECKED>";
    print "<TR>\n";
    print "<TD>\n";
    print "{$shablonnew_NewShablonForm_3}:\n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"defaulttraf\" SIZE=6 VALUE=\"100\"> <B> 0 - unlimited traffic\n";
    print "<TR>\n";
    print "<TD>\n";
    print "{$shablonnew_NewShablonForm_10}\n";
    print "<TD>\n";
    print "<SELECT NAME=\"period\" onchange=EnterPeriod(AddDomainUsers)  {$CCLEAN}> \n";
    print "<OPTION value=\"M\" SELECTED>{$shablonnew_NewShablonForm_11}\n";
    print "<OPTION value=\"W\">{$shablonnew_NewShablonForm_12}\n";
    print "<OPTION value=\"A\">{$shablonnew_NewShablonForm_13}\n";
    print "</SELECT>\n";
    print "<SCRIPT LANGUAGE=JAVASCRIPT> \n";
    print "function EnterPeriod(formname) \n";
    print "{ \n";
    print "  var period=formname.period.value; \n";
    print "  var clryear=formname.clryear.value; \n";
    print "  var clrmonth=formname.clrmonth.value; \n";
    print "  var clrday=formname.clrday.value; \n";
    //print("  value=window.confirm(\"1? \" );\n");
    print "  if(period==\"A\") \n";
    print "    {\n";
    print "      formname.newperiod.disabled=false;  \n";
    print "      formname.clryear.disabled=false;  \n";
    print "      formname.clrmonth.disabled=false;  \n";
    print "      formname.clrday.disabled=false;  \n";
    print "    }\n";
    print "  else \n";
    print "    {\n";
    print "      formname.newperiod.disabled=true;  \n";
    print "      formname.clryear.disabled=true;  \n";
    print "      formname.clrmonth.disabled=true;  \n";
    print "      formname.clrday.disabled=true;  \n";
    print "    }\n";
    print "}\n";
    print "function EnterNewGroupName(formname) \n";
    print "{ \n";
    print "  var groupname=formname.groupname.value; \n";
    print "  if(groupname==\"-1\") \n";
    print "    {\n";
    print "      formname.newgroupname.disabled=false;  \n";
    print "    }\n";
    print "  else \n";
    print "    {\n";
    print "      formname.newgroupname.disabled=true;  \n";
    print "    }\n";
    print "}\n";
    print "</SCRIPT> \n";
    $month = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
    $days = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    $YCLRVALUE = strftime("%Y");
    $MCLRVALUE = strftime("%m");
    $DCLRVALUE = strftime("%d");
    if ($DCLRVALUE + 1 > $days[$MCLRVALUE]) {
        $DCLRVALUE = 1;
        $MCLRVALUE += 1;
        if ($MCLRVALUE > 12) {
            $MCLRVALUE = 1;
            $YCLRVALUE += 1;
        }
    } else {
        $DCLRVALUE += 1;
    }
    print "<TR><TD>\n";
    print "<TD> {$shablonnew_NewShablonForm_14}: \n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"newperiod\" SIZE=5 DISABLED>{$shablonnew_NewShablonForm_15}\n";
    print "<TR><TD><TD> {$shablonnew_NewShablonForm_16}: \n";
    print "<BR><INPUT TYPE=\"TEXT\" NAME=\"clryear\" SIZE=4 DISABLED VALUE=\"{$YCLRVALUE}\">:\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"clrmonth\" SIZE=2 DISABLED VALUE=\"{$MCLRVALUE}\">:\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"clrday\" SIZE=2 DISABLED VALUE=\"{$DCLRVALUE}\">\n";
    print "<TR><TD>{$AddTRangeForm_trangetray_1}:<TD><SELECT NAME=\"trange\" ID=\"trange\" >\n";
    $num_rows = $DB->samsdb_query_value("SELECT * FROM timerange ");
    while ($row = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE={$row['s_trange_id']}> {$row['s_name']} ({$row['s_timestart']} - {$row['s_timeend']} )";
    }
    print "</SELECT>\n";
    /*
    	print("<TR><TD WIDTH=30%><B>Create SAMS groups with AD groups name:\n");
    	print("<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"addgroups\" CHECKED>");
    */
    echo "</TABLE>";
    print "<INPUT TYPE=\"SUBMIT\" value=\"Import\">\n";
    print "</FORM>\n";
}
function AddUsersFromADLDForm()
{
    global $SAMSConf;
    global $USERConf;
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if (isset($_GET["ldapgroup"])) {
        $ldapgroup = $_GET["ldapgroup"];
    }
    if (isset($_GET["getgroup"])) {
        $getgroup = $_GET["getgroup"];
    }
    if ($USERConf->ToWebInterfaceAccess("UC") != 1) {
        exit(0);
    }
    PageTop("user.jpg", " {$usersbuttom_1_domain_AddUsersFromDomainForm_1} Active Directory ");
    require_once "src/adldap.php";
    print "<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n";
    $DB = new SAMSDB();
    $adldserver = GetAuthParameter("adld", "adldserver");
    $basedn = GetAuthParameter("adld", "basedn");
    $adadmin = GetAuthParameter("adld", "adadmin");
    $adadminpasswd = GetAuthParameter("adld", "adadminpasswd");
    $usergroup = GetAuthParameter("adld", "usergroup");
    $LDAPBASEDN2 = strtok($basedn, ".");
    $LDAPBASEDN = "DC={$LDAPBASEDN2}";
    while (strlen($LDAPBASEDN2) > 0) {
        $LDAPBASEDN2 = strtok(".");
        if (strlen($LDAPBASEDN2) > 0) {
            $LDAPBASEDN = "{$LDAPBASEDN},DC={$LDAPBASEDN2}";
        }
    }
    $pdc = array("{$adldserver}");
    $options = array(account_suffix => "@{$basedn}", base_dn => "{$LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$adadmin}", ad_password => "{$adadminpasswd}", "", "", "");
    $ldap = new adLDAP($options);
    $usersgroupname = "Users";
    $a = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
    $acount = count($a);
    if (strlen($ldapgroup) > 0 && $ldapgroup != "_allgroups_" && $ldapgroup != "_gettxtinput_") {
        $usersgroupname = $ldapgroup;
    } else {
        if (strlen($ldapgroup) > 0 && $ldapgroup == "_gettxtinput_") {
            $usersgroupname = $getgroup;
        }
    }
    $groupinfo = $ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
    $gcount = count($groupinfo);
    print "<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n";
    /* */
    print "<SCRIPT language=JAVASCRIPT>\n";
    print "function SelectADGroup(formname)\n";
    print "{\n";
    print "  var group=formname.addgroupname.value; \n";
    print "  var getgroup=formname.getgroup.value; \n";
    print "  var str=\"main.php?show=exe&ldapgroup=\"+group+\"&getgroup=\"+getgroup+\"&function=addusersfromadldform&filename=authadldbuttom_2_usersadd.php\"; \n";
    print "  parent.basefrm.location.href=str;\n";
    print "}\n";
    print "function EnableTxtInput(formname)\n";
    print "{\n";
    print "  value=document.forms[\"AddDomainUsers\"].elements[\"addgroupname\"].value;\n";
    print "  if(value==\"_gettxtinput_\") \n";
    print "     {\n";
    print "       document.forms[\"AddDomainUsers\"].elements[\"getgroup\"].disabled=false\n";
    print "     }\n";
    print "  else \n";
    print "     {\n";
    print "       document.forms[\"AddDomainUsers\"].elements[\"getgroup\"].disabled=true\n";
    print "     }\n";
    print "}\n";
    print "</SCRIPT> \n";
    print "<TABLE WIDTH=90%>\n";
    print "<TR><TD WIDTH=40%>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_1}</TD>\n";
    print "<TD WIDTH=60%><SELECT NAME=\"addgroupname\" onChange=EnableTxtInput(AddDomainUsers)>\n";
    print "<OPTION VALUE=\"_allgroups_\" SELECT  onselect=EnableTxtInput(AddDomainUsers)> {$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_5}";
    print "<OPTION VALUE=\"_gettxtinput_\" onselect=EnableTxtInput(AddDomainUsers)> {$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_6}";
    foreach ($groupinfo as $group) {
        $groupname = UTF8ToSAMSLang($group);
        print "<OPTION VALUE=\"{$groupname}\"  onselect=EnableTxtInput(AddDomainUsers)> {$groupname}";
    }
    /*
        for($i=0;$i<$gcount;$i++)
          {
    	$groupname = UTF8ToSAMSLang($groupinfo[$i]);
            print("<OPTION VALUE=\"$groupname\"  onselect=EnableTxtInput(AddDomainUsers)> $groupname");
          }
    */
    print "</SELECT>\n";
    print "<TR><TD WIDTH=40%>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_7}\n";
    print "<TD WIDTH=60%><INPUT TYPE=\"TEST\" NAME=\"getgroup\" SIZE=\"20\" DISABLED>\n";
    print "</TABLE>\n";
    print "<INPUT TYPE=\"BUTTON\" value=\"{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_2}\" onclick=SelectADGroup(AddDomainUsers)>\n";
    print "<P>\n";
    /* */
    if (strlen($ldapgroup) > 0 && $ldapgroup != "_allgroups_" && $ldapgroup != "_gettxtinput_") {
        printf("<B>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_4}: <FONT COLOR=BLUE>{$ldapgroup}</FONT></B><BR>");
    } else {
        if (strlen($ldapgroup) > 0 && $ldapgroup == "_gettxtinput_") {
            printf("<B>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_4}: <FONT COLOR=BLUE>{$getgroup}</FONT></B><BR>");
        } else {
            print "<BR><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_2}</B><BR>";
        }
    }
    print "<SELECT NAME=\"username[]\" MULTIPLE>\n";
    asort($a);
    foreach ($a as $user) {
        $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
        $num_rows = $DB->samsdb_query_value("SELECT * FROM squiduser WHERE s_nick='{$samaccountname}'");
        if ($num_rows == 0) {
            $displayname = UTF8ToSAMSLang($user["displayname"]);
            $memberof = UTF8ToSAMSLang($user["memberof"]);
            $adldgroups = explode("|", $memberof);
            $cadldgroups = count($adldgroups);
            $memberofgroup = "Users";
            for ($j = 0; $j < $cadldgroups; $j++) {
                $adldgroupname = explode("=", $adldgroups[$j]);
                if (strlen($adldgroupname[1]) > 3) {
                    $memberofgroup = $memberofgroup . "|" . substr($adldgroupname[1], 0, strlen($adldgroupname[1]) - 3);
                }
            }
            if (strstr($memberofgroup, $usersgroupname)) {
                print "<OPTION VALUE=\"{$samaccountname}\"> {$samaccountname} ({$displayname})\n";
            }
        }
        $DB->free_samsdb_query();
    }
    print "</SELECT>\n";
    print "<P>";
    print "<P>";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"domain\" id=Show value=\"{$domain}\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"show\" id=Show value=\"exe\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"function\" id=function value=\"addusersfromadldap\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" id=filename value=\"authadldbuttom_2_usersadd.php\">\n";
    print "<SCRIPT LANGUAGE=JAVASCRIPT> \n";
    print "function EnterNewGroupName(formname) \n";
    print "{ \n";
    print "  var groupname=formname.groupname.value; \n";
    print "  if(groupname==\"-1\") \n";
    print "    {\n";
    print "      formname.newgroupname.disabled=false;  \n";
    print "    }\n";
    print "  else \n";
    print "    {\n";
    print "      formname.newgroupname.disabled=true;  \n";
    print "    }\n";
    print "}\n";
    print "</SCRIPT> \n";
    print "<TABLE>\n";
    print "<TR><TD><P>\n";
    print "<TR><TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_7}\n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"domainname\" id=Show VALUE=\"{$basedn}\">\n";
    print "<TR><TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_3} \n";
    print "<TD>\n";
    print "<SELECT NAME=\"groupname\" ID=\"groupname\" SIZE=1 TABINDEX=30   onchange=EnterNewGroupName(AddDomainUsers)>\n";
    $num_rows = $DB->samsdb_query_value("SELECT * FROM sgroup");
    while ($row2 = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE=\"{$row2['s_group_id']}\"> {$row2['s_name']} ";
    }
    print "<OPTION VALUE=\"-1\"> {$usersbuttom_1_domain_AddUsersFromDomainForm_8} ";
    print "</SELECT>\n";
    print "<TR><TD ALIGN=RIGHT>\n";
    print "{$usersbuttom_1_domain_AddUsersFromDomainForm_9}: \n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"newgroupname\" id=Newgroupname\" DISABLED>\n";
    $DB->free_samsdb_query();
    print "<TR>\n";
    print "<TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_4} \n";
    print "<TD>\n";
    print "<SELECT NAME=\"usershablon\" ID=\"usershablon\" SIZE=1 TABINDEX=30 >\n";
    $num_rows = $DB->samsdb_query_value("SELECT s_shablon_id, s_name FROM shablon");
    while ($row = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE={$row['s_shablon_id']}> {$row['s_name']}";
    }
    $DB->free_samsdb_query();
    print "</SELECT>";
    print "<TR><TD><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_6}";
    print "<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"enabled\" CHECKED>";
    print "</TABLE>\n";
    print "<INPUT TYPE=\"SUBMIT\" value=\"{$usersbuttom_1_domain_AddUsersFromDomainForm_5}\">\n";
    print "</FORM>\n";
    exit(0);
}