ad_login

function ad_login_test()
        {
                /*       
                $user = "syndesigner";
                $pwd = "Synbiotech_tw";
               
                帳號:test02
                密碼:Synbiotech_tw               
                */
                $username = 'test01';
                $password = 'Markx24899378';

                $server = 'dc1.synbiotech.com.tw';
                //$domain = '@dc1.synbiotech.com.tw';
                $port = 389;

                $connection = ldap_connect($server, $port);
                if (!$connection) {
                        exit('Connection failed');
                } else {
                        echo  'connect OK';
                }
               
                ldap_set_option($connection, LDAP_OPT_PROTOCOL_VERSION, 3);
                ldap_set_option($connection, LDAP_OPT_REFERRALS, 0);
                       
               
                $dn = 'test01@synbiotech.com.tw';
                //$bind = ldap_bind($connection,"CN=測試01,OU=測試區,OU=staff,DC=synbiotech,DC=com,DC=tw", $password);
                echo $bind = ldap_bind($connection,$dn, $password);
               
/*

Array
(
    [userprincipalname] => miga709@synbiotech.com.tw
    [department] => Array
        (
            [count] => 1
            [0] => 生產部
        )

    [displayname] => 郭嘉琪
    [samaccountname] => miga709
    [cn] => 郭嘉琪
    [distinguishedname] => CN=郭嘉琪,OU=生產部,OU=台灣生合,OU=staff,DC=synbiotech,DC=com,DC=tw
    [mail] => miga709@synbiotech.com.tw
)

Array
(
    [userprincipalname] => test01@synbiotech.com.tw
    [department] =>
    [displayname] => 測試帳號01
    [samaccountname] => test01
    [cn] => 測試01
    [distinguishedname] => CN=測試01,OU=測試區,OU=staff,DC=synbiotech,DC=com,DC=tw
    [mail] =>
)
*/
               
               
               
                if (!$bind) {
                        exit('Binding failed');
                } else {
                       
                         $user = "mue1693";
                         $result = ldap_search($connection,"OU=staff,DC=synbiotech,DC=com,DC=tw","(&(&(objectClass=user)(objectCategory=Person))(CN=*)(samaccountname=".$user."))",
                         array("displayName","userprincipalname","sAMAccountName","department","cn","mail","distinguishedname"));
                         $data = ldap_get_entries($connection, $result);
                               
                       
                        $member = array();
                        $i=0;
                                /*
                                                echo "<pre>";
                                                        print_r($data);
                                                echo "</pre>";
                                                */
                //        die();               
                               
                                if ( isset($data[“0”]) && ( count($data[“0”]) != "0") )
                                {
                               
                                if ( isset($data[“0”][“userprincipalname”][“0”]) )
                                {
                                        $member[“userprincipalname”] = $data[“0”][“userprincipalname”][“0”];
                                } else {
                                        $member[“userprincipalname”] = "";       
                                }

                                if ( isset($data[“0”][“department”]) )
                                {
                                        $member[“department”] = $data[“0”][“department”];
                                } else {
                                        $member[“department”] = "";       
                                }

                                if ( isset($data[“0”][“displayname”][“0”]) )
                                {
                                        $member[“displayname”] = $data[“0”][“displayname”][“0”];
                                } else {
                                        $member[“displayname”] = "";       
                                }

                                if ( isset($data[“0”][“samaccountname”][“0”]) )
                                {
                                        $member[“samaccountname”] = $data[“0”][“samaccountname”][“0”];
                                } else {
                                        $member[“samaccountname”] = "";       
                                }

                                if ( isset($data[“0”][“cn”][“0”]) )
                                {
                                        $member[“cn”] = $data[“0”][“cn”][“0”];
                                } else {
                                        $member[“cn”] = "";       
                                }

                                if ( isset($data[“0”][“distinguishedname”][“0”]) )
                                {
                                        $member[“distinguishedname”] = $data[“0”][“distinguishedname”][“0”];
                                } else {
                                        $member[“distinguishedname”] = "";       
                                }

                                if ( isset($data[“0”][“mail”][“0”]) )
                                {
                                        $member[“mail”] = $data[“0”][“mail”][“0”];
                                } else {
                                        $member[“mail”] = "";       
                                }
                               
                                $i++;
                                }
                               
                        }
               
               
                       
                        echo "<pre>";
                        print_r($member);
                        echo "</pre>";
               
                die();       
                $return = array();
               
                if ( (isset($member[“samaccountname”]) )&& ($user == $member[“samaccountname”]) )
                {
                       
                                //如果這帳號不在 就建立
                                $c =  $this->db->select("*")
                                          ->from("system_users")
                                          ->where("username",$user)
                                          ->get()->num_rows();
                                          
                         if ($c == 0) {
                                $write_dat = array();
                                $write_dat[“valid_forever”] = "1";
                                $write_dat[“email”] =$member[“userprincipalname”] ;
                                $write_dat[“active”] = "1";
                                $write_dat[“username”] = $member[“samaccountname”];
                                $write_dat[“cht_name”] = $member[“cn”];
                               
                                $write_dat[“platform_type”] = "web";
                               
                                $write_dat[“expiration_date_start”] = "0000-00-00";
                                $write_dat[“expiration_date_end”] = "0000-00-00";

                                $itm = $this->config->item('salt_length', 'ion_auth');
                                $salt =  substr(md5(uniqid(rand(), true)), 0, $itm);
                                $write_dat[“salt”] = $salt;
                               
                                $passwd = $this->ion_auth_model->hash_password( $pwd , $salt);
                                $write_dat[“password”] = $pwd;
                        //        $write_dat[“passwd_text”] = $pwd;
                               
                                $this->db->insert('system_users', $write_dat);
                                $user_id = $this->db->insert_id();                               
                       
                                $write_dat = array();
                                $write_dat[“user_id”] = $user_id;
                                $write_dat[“group_id”] = 1;
                                $this->db->insert('system_users_groups', $write_dat);
                               
                                $return[“id”] = $user_id;
                                $return[“result”] = true;
                                $return[“error_msg”] = "";
                        } else {
                               
                                $r = $this->db->select("*")->from("system_users")->where("username",$user)->get()->row_array();
                                $return[“id”] = $r[“id”];
                                $return[“result”] = true;
                                $return[“error_msg”] = "";
                               
                        }
                       
                } else {
                        $return[“id”] = 0;;
                        $return[“result”] = false;
                        $return[“error_msg”] = "找不到此帳號";
                }
               
               
        return         $return;
        }