Changeset 1900


Ignore:
Timestamp:
12/28/09 15:59:20 (14 years ago)
Author:
alexandrecorreia
Message:

Ticket #860 - Corrigir quando a autenticacao do jabber nao e pelo campo uid do ldap.

Location:
trunk/jabberit_messenger/inc
Files:
1 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/jabberit_messenger/inc/class.contacts_im.inc.php

    r1884 r1900  
    198198                                $result[] = $this->ldap->getUsersLdapRoot("cn=*".$pName."*", $filter_uid); 
    199199        } 
    200                  
     200         
    201201        if( !$this->groupsLocked() ) 
    202202        { 
     
    239239                                for($i = 0 ; $i < count($this->hostsJabberLdap); $i++) 
    240240                                { 
    241                                         if( !@array_key_exists($this->hostsJabberLdap[$i]['serverLdap'], $serversLdap) ) 
     241                                        if( !array_key_exists($this->hostsJabberLdap[$i]['serverLdap'], $serversLdap) ) 
     242                                        { 
    242243                                                $result[] = $this->ldap->getUsersLdapCatalog("cn=*".$pName."*", false, $this->hostsJabberLdap[$i]['serverLdap'] ); 
     244                                        } 
    243245                                } 
    244246                        } 
    245247        } 
    246  
     248         
    247249        if ( is_array($result) ) 
    248250        { 
  • trunk/jabberit_messenger/inc/class.ldap_im.inc.php

    r1881 r1900  
    2020class ldap_im 
    2121{ 
    22         private $attr_org; 
     22        private $attribute; 
    2323        private $common; 
    2424        private $hostsJabber; 
     
    3838                $this->ldap_pass        = $_SESSION['phpgw_info']['jabberit_messenger']['password_ldap_jabberit']; 
    3939 
    40                 // Attributes org ldap; 
    41                 $this->attr_org = explode(",", $_SESSION['phpgw_info']['jabberit_messenger']['attributes_org_ldap_jabberit']); 
    42                  
    4340                // Hosts Jabber 
    4441                $this->hostsJabber = unserialize($_SESSION['phpgw_info']['jabberit_messenger']['map_org_realm_jabberit']); 
     
    4744                $this->max_result = 30; 
    4845                 
     46                if ( file_exists('inc/attributeLdap.php') ) 
     47                { 
     48                        require_once('attributeLdap.php'); 
     49                        $this->attribute = trim($attributeTypeName); 
     50                } 
    4951        } 
    5052 
     
    333335                        { 
    334336                                $filter         = ( $uid ) ? "(&(phpgwaccounttype=u)(|".$uid.")(".$search ."))" : "(&(phpgwaccounttype=u)(".$search ."))"; 
    335                                 $justthese      = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto");                                                           
     337                                $justthese      = array( $this->attribute ,"uidNumber" ,"cn" ,"mail" ,"phpgwAccountVisible" ,"dn" ,"jpegPhoto" );                                                                
    336338                                $searchRoot     = ( $this->ldap_org != "*" ) ? "ou=".$this->ldap_org.",".$this->ldap_context : $this->ldap_context; 
    337339                                $search1        = @ldap_search($this->ldap, $searchRoot, $filter, $justthese, 0, $this->max_result + 1); 
     
    358360                        $searchRoot     = ( $ous ) ? $ous.",".$this->ldap_context : $this->ldap_context ; 
    359361                        $filter         = "(&(phpgwaccounttype=u)(|".$uidnumber.")(".$search ."))"; 
    360                         $justthese      = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto");                                                           
     362                        $justthese      = array( $this->attribute, "uidNumber", "cn", "mail", "phpgwAccountVisible", "dn", "jpegPhoto" );                                                                
    361363                        $search         = ldap_search( $this->ldap, $searchRoot, $filter, $justthese, 0, $this->max_result + 1); 
    362364                        $entry          = ldap_get_entries( $this->ldap, $search ); 
     
    369371        private final function resultArray($pArray, $pConn, $pOrg = false) 
    370372        { 
    371                 $entry = $pArray; 
    372                 $result = array(); 
    373  
    374                 $j = 0; 
    375                 for($i = 0 ; $i < $entry['count']; $i++) 
     373                $entry  = $pArray; 
     374                $result = array(); 
     375                $j              = 0; 
     376                 
     377                for( $i = 0 ; $i < $entry['count']; $i++ ) 
    376378                { 
    377379                        if ( $entry[$i]['phpgwaccountvisible'][0] != '-1' ) 
    378380                        { 
    379                                 $result[$j]['uidnumber'] = $entry[$i]['uidnumber'][0];                   
    380                                 $result[$j]['mail']     =  $entry[$i]['mail'][0]; 
    381                                 $result[$j]['uid']      =  $entry[$i]['uid'][0]; 
    382                                 $result[$j]['jid']      = $entry[$i]['uid'][0]; 
     381                                $result[$j]['uidnumber']        = $entry[$i]['uidnumber'][0];                    
     382                                $result[$j]['mail']                     = $entry[$i]['mail'][0]; 
     383                                $result[$j]['uid']                      = $entry[$i][$this->attribute][0]; 
     384                                $result[$j]['jid']                      = $entry[$i][$this->attribute][0]; 
     385                                 
    383386                                $ou = explode("dc=", $entry[$i]['dn']); 
    384387                                $ou = explode("ou=",$ou[0]); 
    385388                                $ou = array_pop($ou); 
    386389                                $result[$j]['ou']       = strtoupper(substr($ou,0,strlen($ou)-1)); 
     390                                 
    387391                                if( $pOrg === "*" ) 
    388392                                        $result[$j]['ouAll'] = "*"; 
     
    404408                 
    405409                        $organization = $this->attr_org; 
    406          
    407                         if(is_array($organization)) 
    408                         { 
    409                                 foreach($organization as $attr) 
    410                                 { 
    411                                         $tmp = explode(";",$attr); 
    412                                         if( strtolower(trim($tmp[0])) == strtolower(trim($result[$i]['dn'])) ) 
    413                                         { 
    414                                                 switch(strtolower(trim($tmp[1]))) 
    415                                                 { 
    416                                                         case "mail" : 
    417                                                                         $uid = $result[$i]['mail']; 
    418                                                                         $uid = substr($uid,0,strpos($uid,"@"));  
    419                                                                         $result[$i]['uid'] = $uid; 
    420                                                                         break; 
    421          
    422                                                         case "description" : 
    423                                                                         // SERPRO 
    424                                                                         // parte antes do arroba;  
    425                                                                         $result[$i]['uid'] = $result[$i]['description'];                                                                                 
    426                                                                         break; 
    427                                                 } 
    428                                         } 
    429                                 } 
    430                         } 
    431                 } 
     410                } 
     411                 
    432412                return $result; 
    433413        } 
  • trunk/jabberit_messenger/inc/class.uiconfig.inc.php

    r1768 r1900  
    7575                                                                                                        'label_config1' => lang("Site Configuration Jabber"), 
    7676                                                                                                        'label_config2' => lang("Map organization for realm jabber"), 
    77                                                                                                         'label_config3' => lang("Configuration of authentication attribute by Organization (OU)"),                                                                                                       
    7877                                                                                                        'value_config1' => $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname=jabberit_messenger'),                                                                                           
    7978                                                                                                        'value_config2' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uihostsjabber.edit_conf'), 
    80                                                                                                         'value_config3' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uiconforganization.edit_conf'), 
    8179                                                                                                        'value_image1'  => "jabberit_messenger/templates/default/images/navbar.png", 
    8280                                                                                                        'value_image2'  => "jabberit_messenger/templates/default/images/gear.png", 
    83                                                                                                         'value_image3'  => "jabberit_messenger/templates/default/images/table.png"                                                                                                       
    8481                                                                                                        )); 
    8582         
  • trunk/jabberit_messenger/inc/jabberit_sessions.inc.php

    r1799 r1900  
    6161                $_SESSION['phpgw_info']['jabberit_messenger']['name_company']                                   = $GLOBALS['phpgw_info']['server']['name_company_applet_jabberit']; 
    6262                $_SESSION['phpgw_info']['jabberit_messenger']['use_attribute_jabberit']                 = $GLOBALS['phpgw_info']['server']['use_attribute_jabberit']; 
    63                 $_SESSION['phpgw_info']['jabberit_messenger']['attributes_org_ldap_jabberit']   = $GLOBALS['phpgw_info']['server']['attributes_org_ldap_jabberit']; 
    6463                $_SESSION['phpgw_info']['jabberit_messenger']['map_org_realm_jabberit']                 = $GLOBALS['phpgw_info']['server']['map_org_realm_jabberit']; 
    6564                 
  • trunk/jabberit_messenger/inc/login.php

    r1799 r1900  
    3636                        $PROTOCOL = trim("https"); 
    3737 
     38                // Define Attribute Ldap 
     39                $attribute = "uid"; 
     40                if ( file_exists('inc/attributeLdap.php') ) 
     41                { 
     42                        require_once('attributeLdap.php'); 
     43                        $attribute = trim($attributeTypeName); 
     44                } 
     45 
    3846                // Uid user 
    39                 $uid = $_SESSION['phpgw_info']['jabberit_messenger']['user_jabber']; 
    40                  
    41                 $organization = explode(",", $_SESSION['phpgw_info']['jabberit_messenger']['attributes_org_ldap_jabberit']); 
    42  
    43                 $organization_user = $_SESSION['phpgw_info']['jabberit_messenger']['account_dn']; 
    44                 $organization_user = substr($organization_user, strpos($organization_user,"ou=") + 3 , strlen($organization_user)); 
    45                 $organization_user = substr($organization_user, 0, strpos($organization_user, ",")); 
     47                if( $attribute === "uid" ) 
     48                { 
     49                        $uid = $_SESSION['phpgw_info']['jabberit_messenger']['user_jabber']; 
     50                } 
     51                else 
     52                { 
     53                        $uid = "DEFINA AQUI A VARIAVEL DE SESSÃO QUE CONTEM O ATRIBUTO DE AUTENTICAÇÂO"; 
     54                } 
    4655                 
    4756                // FirstName 
    4857                $CnName = explode(" ",$_SESSION['phpgw_info']['jabberit_messenger']['fullname']); 
    4958                 
    50                 if(is_array($organization)) 
    51                 { 
    52                         foreach($organization as $attr) 
    53                         { 
    54                                 $tmp = explode(";",$attr); 
    55                                 if( strtolower(trim($tmp[0])) == strtolower(trim($organization_user))) 
    56                                 { 
    57                                         switch(strtolower(trim($tmp[1]))) 
    58                                         { 
    59                                                 case "mail" : 
    60                                                                 $uid = $_SESSION['phpgw_info']['jabberit_messenger']['mail']; 
    61                                                                 $uid = substr($uid,0,strpos($uid,"@"));  
    62                                                                 break; 
    63          
    64                                                 case "description" : 
    65                                                                 // SERPRO 
    66                                                                 // parte antes do arroba; 
    67                                                                 // Informe aqui a parte da sessão correspondente;  
    68                                                                 $uid = "description";                                                                            
    69                                                                 break; 
    70                                         } 
    71                                 } 
    72                         } 
    73                 } 
    74  
    7559                //Enable/Disable VoIP Service -> Voip Server Config 
    7660                $voip_enabled = false; 
  • trunk/jabberit_messenger/inc/webservice.php

    r1885 r1900  
    1313class webService 
    1414{ 
     15        private $attribute; 
    1516        private $conn; 
    1617        private $contextLdap; 
     
    2324        private $fileLdapInternal = false; 
    2425        private $fileLdapExternal = false; 
     26        private $version3; 
    2527         
    2628        function __construct() 
     
    4244                        $this->fileLdapInternal = true; 
    4345                } 
     46                 
     47                $this->attribute = "uid"; 
     48                 
     49                if ( file_exists('attributeLdap.php') ) 
     50                { 
     51                        require_once('attributeLdap.php'); 
     52                        $this->attribute = trim($attributeTypeName); 
     53                } 
    4454        } 
    4555         
     
    5464                if( $this->version3 ) 
    5565                        if( !ldap_set_option($this->conn,LDAP_OPT_PROTOCOL_VERSION,3) ) 
    56                                 $this->version = false; 
     66                                $this->version3 = false; 
    5767 
    5868                ldap_set_option($this->conn, LDAP_OPT_REFERRALS, $this->refer); 
     
    179189                                if( $this->conn ) 
    180190                                { 
    181                                         $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 
    182                                         $justthese = array("uid","cn","dn"); 
     191                                        $filter = "(&(phpgwaccounttype=u)(".$this->attribute."=".$uid.")(!(phpgwaccountvisible=-1)))"; 
     192                                        $justthese = array($this->attribute,"cn","dn"); 
    183193                                        $search = ldap_search( $this->conn, $this->contextLdap, $filter,$justthese); 
    184194                                        $get_entries = ldap_get_entries( $this->conn, $search); 
     
    204214                                if( $this->conn ) 
    205215                                { 
    206                                         $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 
    207                                         $justthese = array("uid","cn","dn"); 
     216                                        $filter = "(&(phpgwaccounttype=u)(".$this->attribute."=".$uid.")(!(phpgwaccountvisible=-1)))"; 
     217                                        $justthese = array($this->attribute,"cn","dn"); 
    208218                                        $search = ldap_search( $this->conn, $this->contextLdap, $filter, $justthese); 
    209219                                        $get_entries = ldap_get_entries( $this->conn, $search); 
     
    245255                                if( $this->conn ) 
    246256                                { 
    247                                         $filter                 = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 
    248                                         $justthese              = array("uid","jpegPhoto"); 
     257                                        $filter                 = "(&(phpgwaccounttype=u)(".$this->attribute."=".$uid.")(!(phpgwaccountvisible=-1)))"; 
     258                                        $justthese              = array($this->attribute,"jpegPhoto"); 
    249259                                        $search                 = ldap_search($this->conn,$this->contextLdap,$filter,$justthese); 
    250260                                        $get_entries    = ldap_get_entries($this->conn,$search); 
     
    277287                        if( $this->conn ) 
    278288                        { 
    279                                 $filter                 = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 
    280                                 $justthese              = array("uid","jpegPhoto"); 
     289                                $filter                 = "(&(phpgwaccounttype=u)(".$this->attribute."=".$uid.")(!(phpgwaccountvisible=-1)))"; 
     290                                $justthese              = array($this->attribute,"jpegPhoto"); 
    281291                                $search                 = ldap_search($this->conn,$this->contextLdap,$filter,$justthese); 
    282292                                $get_entries    = ldap_get_entries($this->conn,$search); 
Note: See TracChangeset for help on using the changeset viewer.