Changeset 946
- Timestamp:
- 06/04/09 10:30:18 (15 years ago)
- Location:
- trunk/jabberit_messenger
- Files:
-
- 2 deleted
- 25 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/jabberit_messenger/inc/class.contacts_im.inc.php
r895 r946 28 28 $this->db = new db_im(); 29 29 30 $ou_User = $_SESSION['phpgw_info']['jabberit_messenger']['account_dn'];31 $ou_User = substr($this->ou_User,strpos($this->ou_User, "ou="));32 $ou_User = strtoupper(substr($this->ou_User, 0, strpos($this->ou_User, ",dc=")));33 34 30 // (OU) User 35 31 $this->ou_User = $_SESSION['phpgw_info']['jabberit_messenger']['account_dn']; … … 39 35 // Hosts Jabber 40 36 $this->hostsJabber = unserialize($_SESSION['phpgw_info']['jabberit_messenger']['map_org_realm_jabberit']); 41 $this->hostsJabber = explode(";", $this->hostsJabber);42 37 43 38 // Server Name Jabber 44 39 $this->serverJabber = $_SESSION['phpgw_info']['jabberit_messenger']['name_jabberit']; 45 }46 47 public final function getParticipantsExternal()48 {49 $Participants = (trim($_SESSION['phpgw_info']['jabberit_messenger']['conf_organization_jabberit']) &&50 $_SESSION['phpgw_info']['jabberit_messenger']['use_external_participants_jabberit']);51 52 if( !$this->groupsLocked() && $Participants )53 return "true";54 else55 return "false";56 40 } 57 41 … … 79 63 public final function list_contacts($param) 80 64 { 81 $users = $this->users_auth_im($param['name']); 82 $order = array(); 65 $order = array(); 66 $ou_User = substr($this->ou_User, (strpos($this->ou_User,"=")+1)); 67 $return = '<empty/>'; 68 $users = $this->users_auth_im($param['name']); 83 69 84 70 if (!is_array($users) && trim($users) === 'Many Results') 85 71 return "<error>Many Results</error>"; 86 72 73 foreach($this->hostsJabber as $conf ) 74 if(array_search("*", $conf)) 75 $hostDefault = $conf['jabberName']; 76 87 77 if( is_array($users) ) 88 78 { 89 if( is_array($this->hostsJabber) )90 { 91 for( $i = 0 ; $i < count($users); $i++)92 { 93 foreach($this->hostsJabber as $ values)79 for($i = 0; $i < count($users); $i++) 80 { 81 if( is_array($this->hostsJabber) ) 82 { 83 foreach($this->hostsJabber as $itens) 94 84 { 95 $itens = explode(":", $values); 96 if( $users[$i]['dn'] == $itens[0] ) 97 $users[$i]['jid'] = $users[$i]['jid']."@".$itens[1]; 85 if( $itens['org'] === $users[$i]['ou'] ) 86 { 87 if( strpos($users[$i]['jid'], "@") === false ) 88 $users[$i]['jid'] = $users[$i]['jid']."@".$itens['jabberName']; 89 } 90 else 91 { 92 if( $users[$i]['ou'] === $ou_User ) 93 { 94 if( strpos($users[$i]['jid'], "@") === false ) 95 $users[$i]['jid'] = $users[$i]['jid']."@".$this->serverJabber; 96 } 97 else 98 { 99 if( strpos($users[$i]['jid'], "@") === false ) 100 $users[$i]['jid'] = $users[$i]['jid']."@".$hostDefault; 101 } 102 } 98 103 } 99 104 } 100 105 } 101 106 102 107 foreach($users as $tmp) 103 108 { 104 if ( !array_key_exists($tmp[' dn'], $order) )105 $order[$tmp[' dn']] = array();106 107 if( (strpos($tmp['jid'], "@" )) === false)109 if ( !array_key_exists($tmp['ou'], $order) ) 110 $order[$tmp['ou']] = array(); 111 112 if( strpos($tmp['jid'], "@") === false) 108 113 $tmp['jid'] = $tmp['jid']."@".$this->serverJabber; 109 114 110 $ _SESSION['debug'][] = $order[$tmp['dn']][] = '<data><cn>' . $tmp['cn'] . '</cn><mail>' . $tmp['mail'] .'</mail><uid>' . $tmp['uid'] . '</uid><jid>' . $tmp['jid'] . '</jid><photo>' . $tmp['photo'] .'</photo></data>';115 $order[$tmp['ou']][] = '<data><ou>'.$tmp['ou'].'</ou><cn>'.$tmp['cn'].'</cn><mail>'.$tmp['mail'].'</mail><uid>'.$tmp['uid'].'</uid><jid>'.$tmp['jid'].'</jid><photo>'.$tmp['photo'].'</photo></data>'; 111 116 } 112 117 … … 118 123 $return .= '</uids>'; 119 124 } 120 else121 $return = '<empty/>';122 125 123 126 return $return; … … 128 131 $array_uids = $this->db->get_accounts_acl(); 129 132 $count = count($array_uids); 130 $ uids_members = array();133 $members = array();; 131 134 $result = array(); 132 135 133 for( $i = 0; $i < $count ;$i+=50)136 for( $i = 0; $i < $count ; $i+=50 ) 134 137 { 135 138 $partial_uids = array_slice($array_uids,$i,50); … … 150 153 $orgs = array_unique($orgs); 151 154 152 foreach( $orgs as $ tmp)153 $result[] = $this->ldap-> list_users_ldap("cn=*".$pName."*", $filter_uid, $tmp);155 foreach( $orgs as $orgB ) 156 $result[] = $this->ldap->getUsersLdap("cn=*".$pName."*", $filter_uid, $orgB ); 154 157 } 155 158 else 156 $result[] = $this->ldap-> list_users_ldap("cn=*".$pName."*", $filter_uid);159 $result[] = $this->ldap->getUsersLdap("cn=*".$pName."*", $filter_uid, "" ); 157 160 } 158 161 159 162 if ( is_array($result) ) 160 163 { 161 for( $i = 0; $i < count($result); $i++)162 if( is_array($result[$i]))163 $ uids_members = array_merge($uids_members,$result[$i]);164 for( $i = 0; $i < count($result); $i++ ) 165 if( is_array($result[$i]) ) 166 $members = array_merge($members,$result[$i]); 164 167 } 165 166 if( count($ uids_members) > 50)168 169 if( count($members) > 150) 167 170 { 168 unset($_SESSION['phpgw_info']['jabberit_messenger']['photo']); 169 return 'Many Results'; 171 $ou = substr( $this->ou_User, strpos($this->ou_User, "=") + 1 ); 172 for($i = 0 ; $i < count($members); $i++ ) 173 { 174 if( $ou == $members[$i]['ou'] ) 175 $uids_org[] = $members[$i]; 176 else 177 if(isset($_SESSION['phpgw_info']['jabberit_messenger']['photo'])) 178 unset($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$members[$i]['ou']]); 179 } 180 return $uids_org; 170 181 } 171 172 if( count($uids_members) > 0 ) 173 return $uids_members; 174 else 175 return 0; 182 return $members; 176 183 } 177 184 … … 191 198 $filter_gid = "(gidnumber=". $filter_gid. ")"; 192 199 193 $result = $this->ldap-> list_groups_memberUid($filter_gid);200 $result = $this->ldap->getGroupsMemberUid($filter_gid); 194 201 195 202 if( $result && is_array($result) ) … … 274 281 } 275 282 } 283 276 284 ?> -
trunk/jabberit_messenger/inc/class.db_im.inc.php
r896 r946 14 14 define('PHPGW_API_INC','../phpgwapi/inc'); 15 15 require_once(PHPGW_API_INC . '/class.db.inc.php'); 16 require_once "class.fileDefine.inc.php"; 16 17 17 18 class db_im … … 25 26 private $db_type; 26 27 private $user_id; 28 private $fileD; 27 29 28 30 public final function __construct() 29 31 { 32 $this->fileD = new fileDefine(); 30 33 $this->db_name = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_name']; 31 34 $this->db_host = $_SESSION['phpgw_info']['jabberit_messenger']['server']['db_host']; … … 51 54 } 52 55 56 public final function editHostJabber($pItem) 57 { 58 $hostsJabber = unserialize($this->getHostsJabber()); 59 $findHosts = explode(":", $pItem['item']); 60 $return = ""; 61 62 for( $i = 0 ; $i < count($hostsJabber); $i++ ) 63 if( $hostsJabber[$i]['org'] == $findHosts[0] && $hostsJabber[$i]['jabberName'] == $findHosts[1] ) 64 { 65 $return = "org:" . $hostsJabber[$i]['org'] . ";" . 66 "jabberName:" . $hostsJabber[$i]['jabberName'] . ";" . 67 "serverLdap:" . $hostsJabber[$i]['serverLdap'] . ";" . 68 "contextLdap:" . $hostsJabber[$i]['contextLdap'] . ";" . 69 "user:" . $hostsJabber[$i]['user'] . ";" . 70 "password:" . $hostsJabber[$i]['password'] ; 71 } 72 73 return trim($return); 74 } 75 53 76 public final function getApplicationsEnabled() 54 77 { … … 338 361 public final function setHostJabber($pParam) 339 362 { 340 $organization = $pParam['organization']; 341 $hostJabber = $pParam['hostJabber']; 342 363 $confHostsJabber = array(); 364 365 foreach($pParam as $key => $itens) 366 $confHostsJabber[$key] = ( $key === 'org' ) ? strtoupper($itens) : $itens; 367 343 368 if( $this->db ) 344 369 { 345 370 $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'map_org_realm_jabberit';"; 346 371 347 if($this->db->query($query)) 348 { 349 350 if ( $this->db->query($query) ) 351 { 352 while($this->db->next_record()) 353 $result[] = $this->db->row(); 354 } 355 356 if( count($result) == 0 ) 357 { 358 $confHostJabber = strtoupper($organization).":".$hostJabber; 359 $return = "<return><confServer ou='".strtoupper($organization)."' serverName='".$hostJabber."'>".$confHostJabber."</confServer></return>"; 360 $query = "INSERT INTO phpgw_config(config_app,config_name, config_value) VALUES('phpgwapi','map_org_realm_jabberit','".serialize($confHostJabber)."')"; 361 $_SESSION['debug']['gravar'] = $confHostJabber; 362 $this->db->query($query); 363 } 372 if( $this->db->query($query) ) 373 { 374 while($this->db->next_record()) 375 $result[] = $this->db->row(); 376 } 377 378 if( count($result) == 0 ) 379 { 380 $return = "<return><confServer ou='".strtoupper($confHostsJabber['org'])."' serverName='".$confHostsJabber['jabberName']."'>".strtoupper($confHostsJabber['org']).":".$confHostsJabber['jabberName']."</confServer></return>"; 381 $hostsJabber[0] = $confHostsJabber; 382 383 $this->fileD->ldapExternal($hostsJabber); 384 385 $query = "INSERT INTO phpgw_config(config_app, config_name, config_value) VALUES('phpgwapi','map_org_realm_jabberit','".serialize($hostsJabber)."')"; 386 $this->db->query($query); 387 } 388 else 389 { 390 $resultQuery = unserialize($result[0]['config_value']); 391 $foundOrg = false; 392 393 foreach($resultQuery as $key => $itens) 394 { 395 $foundString = array_search($confHostsJabber['org'], $itens); 396 if( $foundString ) 397 { 398 $foundOrg = $foundString; 399 $ky = $key; 400 } 401 } 402 403 if( ! $foundOrg ) 404 $resultQuery[] = $confHostsJabber; 364 405 else 365 { 366 $confHostJabber = unserialize($result[0]['config_value']); 367 $OrgHosts = explode(";", $confHostJabber); 368 $stringSearch = strtoupper($organization).":".$hostJabber; 369 $FoundString = array_search($stringSearch, $OrgHosts); 370 371 if( $FoundString === false) 372 $confHostJabber .= ";" . $stringSearch; 373 374 $items = explode(";", $confHostJabber); 375 natcasesort($items); 376 377 $return = "<return>"; 378 foreach($items as $tmp) 379 { 380 $aux = explode(":",$tmp); 381 $return .= "<confServer ou='".$aux[0]."' serverName='".$aux[1]."'>".$tmp."</confServer>"; 382 } 383 $return .= "</return>"; 384 385 $query = "UPDATE phpgw_config SET config_value = '".serialize($confHostJabber)."' WHERE config_name = 'map_org_realm_jabberit';"; 386 $this->db->query($query); 387 } 388 389 return $return; 390 } 391 } 392 406 $resultQuery[$ky] = $confHostsJabber; 407 408 $return = "<return>"; 409 410 foreach( $resultQuery as $itens ) 411 $return .= "<confServer ou='".$itens['org']."' serverName='".$itens['jabberName']."'>".$itens['org'].":".$itens['jabberName']."</confServer>"; 412 413 $return .= "</return>"; 414 415 $this->fileD->ldapExternal($resultQuery); 416 417 $query = "UPDATE phpgw_config SET config_value = '".serialize($resultQuery)."' WHERE config_name = 'map_org_realm_jabberit';"; 418 $this->db->query($query); 419 } 420 return $return; 421 } 393 422 return false; 394 423 } … … 466 495 } 467 496 468 public final function setUseParticipantsExternal($pFlag)469 {470 $flag = $pFlag['value'];471 $return = "";472 473 if( $this->db )474 {475 $query = "SELECT * FROM phpgw_config WHERE config_app = 'phpgwapi' AND config_name = 'use_external_participants_jabberit';";476 477 if ( $this->db->query($query) )478 {479 while($this->db->next_record())480 $result[] = $this->db->row();481 }482 483 if(count($result) == 0)484 {485 $query = "INSERT INTO phpgw_config(config_app,config_name,config_value) VALUES('phpgwapi','use_external_participants_jabberit','".$flag."')";486 $this->db->query($query);487 return true;488 }489 else490 {491 $query = "UPDATE phpgw_config SET config_value = '".$flag."' WHERE config_app = 'phpgwapi' AND config_name = 'use_external_participants_jabberit'";492 $this->db->query($query);493 return true;494 }495 }496 return false;497 }498 499 public final function setOrganization($pOrganization)500 {501 $organization = $pOrganization['organization'];502 $orgConfiguration = "";503 504 if( $this->db )505 {506 $query = "SELECT * from phpgw_config WHERE config_app = 'phpgwapi' and config_name = 'conf_organization_jabberit'";507 508 if ( $this->db->query($query) )509 {510 while($this->db->next_record())511 $result[] = $this->db->row();512 513 if(count($result) > 0)514 $orgConfiguration = $result[0]['config_value'];515 }516 517 if( trim($orgConfiguration) == "" )518 {519 $query = "INSERT INTO phpgw_config(config_app,config_name,config_value) VALUES('phpgwapi','conf_organization_jabberit','".$organization."')";520 $this->db->query($query);521 522 return "<return><ou attr='".$organization."'>".$organization."</ou></return>";523 }524 else525 {526 $orgAux = explode(",",$orgConfiguration);527 528 foreach( $orgAux as $tmp )529 {530 if(strtolower(trim($tmp)) === strtolower(trim($organization)))531 return false;532 }533 534 $value = $orgConfiguration . "," . $organization;535 $query = "UPDATE phpgw_config SET config_value = '".$value."' WHERE config_app = 'phpgwapi' AND config_name = 'conf_organization_jabberit'";536 $this->db->query($query);537 538 $return = explode(",",$value);539 natcasesort($return);540 541 $values = "<return>";542 543 foreach($return as $tmp)544 $values .= "<ou attr='" . $tmp . "'>" . $tmp . "</ou>";545 546 $values .= "</return>";547 548 return $values;549 }550 }551 return false;552 }553 554 497 public final function removeAttributesLdap($pOrg) 555 498 { … … 610 553 { 611 554 $confHostsOrgs = unserialize($result[0]['config_value']); 612 $confHostsOrgs = explode(";", $confHostsOrgs); 613 $foundValue = array_search($pItem['item'], $confHostsOrgs); 614 615 if( $foundValue !== false ) 616 array_splice($confHostsOrgs, $foundValue, 1); 617 618 if(count($confHostsOrgs) > 0 ) 555 $hosts = explode(":", $pItem['item']); 556 $key = ""; 557 558 if( count($confHostsOrgs) > 0 ) 619 559 { 620 foreach( $confHostsOrgs as $values ) 621 $stringHostsOrgs .= $values . ";"; 622 623 $stringHostsOrgs = substr($stringHostsOrgs, 0, strlen($stringHostsOrgs) -1 ); 624 $query = "UPDATE phpgw_config SET config_value = '".serialize($stringHostsOrgs)."' WHERE config_name = 'map_org_realm_jabberit';"; 560 for( $i = 0; $i < count($confHostsOrgs); $i++) 561 if( $confHostsOrgs[$i]['org'] == $hosts[0] && $confHostsOrgs[$i]['jabberName'] == $hosts[1]) 562 $key = $i; 563 564 array_splice($confHostsOrgs, $key, 1); 565 566 if(count($confHostsOrgs) > 0) 567 { 568 $this->fileD->ldapExternal($confHostsOrgs); 569 $query = "UPDATE phpgw_config SET config_value = '".serialize($confHostsOrgs)."' WHERE config_name = 'map_org_realm_jabberit';"; 570 } 571 else 572 { 573 $this->fileD->ldapExternal(""); 574 $query = "DELETE FROM phpgw_config WHERE config_name = 'map_org_realm_jabberit';"; 575 } 625 576 } 626 577 else 578 { 579 $this->fileD->ldapExternal(""); 627 580 $query = "DELETE FROM phpgw_config WHERE config_name = 'map_org_realm_jabberit';"; 628 581 } 582 629 583 if( $this->db->query($query) ) 630 584 return "true"; … … 692 646 return $return; 693 647 } 694 695 public final function removeParticipantsExternal($pOrganization) 696 { 697 698 $organization = $pOrganization['participants']; 699 700 if( $this->db ) 701 { 702 $query = "SELECT * from phpgw_config WHERE config_app = 'phpgwapi' and config_name = 'conf_organization_jabberit'"; 703 704 if ( $this->db->query($query) ) 705 { 706 while( $this->db->next_record() ) 707 $result[] = $this->db->row(); 708 709 if( count($result) > 0 ) 710 $valueDB = $result[0]['config_value']; 711 } 712 713 $OrgDB = explode(",", $valueDB); 714 $newValue = ""; 715 716 foreach($OrgDB as $tmp) 717 { 718 if( strtolower(trim($tmp)) != strtolower(trim($organization))) 719 $newValue .= $tmp . ","; 720 } 721 722 $newValue = substr($newValue, 0,(strlen($newValue) -1 )); 723 724 if( trim($newValue) != "") 725 $query = "UPDATE phpgw_config SET config_value = '".$newValue."' WHERE config_app = 'phpgwapi' AND config_name = 'conf_organization_jabberit'"; 726 else 727 $query = "DELETE from phpgw_config where config_name = 'conf_organization_jabberit'"; 728 729 if( $this->db->query($query)) 730 return true; 731 else 732 return false; 733 } 734 return false; 735 } 648 736 649 } 737 650 ?> -
trunk/jabberit_messenger/inc/class.fileDefine.inc.php
r551 r946 11 11 \***************************************************************************/ 12 12 13 class FileDefine13 class fileDefine 14 14 { 15 public final function ldapExternal($pConfLdap) 16 { 17 $file = "confLDAPExternal.php"; 18 $writeFile = "<?php $"."LDAP_EXTERNAL="."\"".base64_encode(serialize($pConfLdap))."\""." ?>"; 19 $this->writeFile($writeFile, $file); 20 } 15 21 16 public final function getParams($pParam)22 public final function ldapInternal($pParam) 17 23 { 18 24 $array_values = explode("\n", $pParam['val']); 25 $file = "confLDAPInternal.php"; 19 26 $infoServer = array(); 20 27 21 28 foreach($array_values as $tmp ) 22 29 { … … 25 32 switch(trim($nvalue[0])) 26 33 { 34 case "JETTI_NAME_JABBERIT" : 35 $infoServer['jabberName'] = $nvalue[1]; 36 break; 37 27 38 case "JETTI_SERVER_LDAP_JABBERIT" : 28 $infoServer['host'] = $nvalue[1];29 39 $infoServer['serverLdap'] = $nvalue[1]; 40 break; 30 41 31 42 case "JETTI_CONTEXT_LDAP_JABBERIT" : 32 $infoServer['context'] = $nvalue[1];33 43 $infoServer['contextLdap'] = $nvalue[1]; 44 break; 34 45 35 46 case "JETTI_USER_LDAP_JABBERIT" : 36 $infoServer['dn'] = $nvalue[1];37 47 $infoServer['user'] = $nvalue[1]; 48 break; 38 49 39 50 case "JETTI_PASSWORD_LDAP_JABBERIT" : 40 $infoServer['passwd'] = $nvalue[1];41 51 $infoServer['password'] = $nvalue[1]; 52 break; 42 53 } 43 54 } 44 55 45 $this->writeFile($infoServer); 56 $writeFile = "<?php $"."LDAP_INTERNAL="."\"".base64_encode(serialize($infoServer))."\""." ?>"; 57 $this->writeFile( $writeFile, $file ); 46 58 } 47 59 48 private final function writeFile($pContent )60 private final function writeFile($pContent, $pfile) 49 61 { 50 51 $filename = dirname(__FILE__).'/conf_Ldap_Photos.php'; 52 $caracter = "$"; 53 $content = "<?php ".$caracter."CONF_SERVER="."\"" . base64_encode(serialize($pContent)) ."\""." ?>"; 54 55 if (!$handle = fopen($filename, 'w')) 56 { 57 echo "Não foi possível abrir o arquivo : \n($filename)"; 62 $filename = dirname(__FILE__).'/'.$pfile; 63 $content = $pContent; 64 65 if ( !$handle = fopen($filename, 'w') ) 58 66 exit; 59 }60 67 61 68 if (fwrite($handle, $content) === FALSE) 62 {63 echo "Não foi possível escrever no arquivo : \n($filename)";64 69 exit; 65 } 66 67 echo "Arquivo : \n $filename \ncriado com sucesso !!"; 70 68 71 fclose($handle); 69 72 } -
trunk/jabberit_messenger/inc/class.ldap_im.inc.php
r892 r946 17 17 class ldap_im 18 18 { 19 private $attr_org; 20 private $common; 21 private $hostsJabber; 19 22 private $ldap; 20 private $ldap_host;21 23 private $ldap_context; 22 24 private $ldap_dn; 25 private $ldap_host; 23 26 private $ldap_pass; 24 private $common;25 private $jid;26 27 private $max_result; 27 private $ou_User;28 28 29 29 public final function __construct() 30 { 31 // Attributes org ldap; 32 $this->attr_org = explode(",", $_SESSION['phpgw_info']['jabberit_messenger']['attributes_org_ldap_jabberit']); 33 34 // Hosts Jabber 35 $this->hostsJabber = unserialize($_SESSION['phpgw_info']['jabberit_messenger']['map_org_realm_jabberit']); 36 37 // Result Ldap 38 $this->max_result = 30; 39 } 40 41 public final function __destruct() 42 { 43 if( $this->ldap ) 44 ldap_close($this->ldap); 45 } 46 47 private final function ldapConn() 48 { 49 $this->common = new common(); 50 51 $GLOBALS['phpgw_info']['server']['ldap_version3'] = true; 52 53 $this->ldap = $this->common->ldapConnect( $this->ldap_host, $this->ldap_dn, $this->ldap_pass, false ); 54 } 55 56 private final function ldapRoot() 30 57 { 31 58 $this->ldap_host = (isset($_SESSION['phpgw_info']['jabberit_messenger']['server_ldap_jabberit'])) ? $_SESSION['phpgw_info']['jabberit_messenger']['server_ldap_jabberit'] : $GLOBALS['phpgw_info']['server']['ldap_host']; … … 33 60 $this->ldap_dn = (isset($_SESSION['phpgw_info']['jabberit_messenger']['user_ldap_jabberit'])) ? $_SESSION['phpgw_info']['jabberit_messenger']['user_ldap_jabberit'] : $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 34 61 $this->ldap_pass = (isset($_SESSION['phpgw_info']['jabberit_messenger']['password_ldap_jabberit'])) ? $_SESSION['phpgw_info']['jabberit_messenger']['password_ldap_jabberit'] : $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 35 $this->jid = $_SESSION['phpgw_info']['jabberit_messenger']['user_jabber']; 36 $this->max_result = 50; 37 } 38 39 public final function __destruct() 40 { 41 if( $this->ldap ) 42 ldap_close($this->ldap); 43 } 44 45 private final function _connect_ldap() 46 { 47 $this->common = new common(); 48 49 if( !$this->ldap ) 50 { 51 $GLOBALS['phpgw_info']['server']['ldap_version3'] = true; 52 $this->ldap = $this->common->ldapConnect( $this->ldap_host,$this->ldap_dn,$this->ldap_pass, false ); 53 } 54 } 55 56 private final function _ldapConnect($refer = false) 57 { 58 function ldapRebindJabberit($ldap_connection, $ldap_url) 59 { 60 $acc = $_SESSION['phpgw_info']['jabberit_messenger']['ldapManager']['acc']; 61 $pw = $_SESSION['phpgw_info']['jabberit_messenger']['ldapManager']['pw']; 62 63 $this->ldapConn(); 64 } 65 66 private final function ldapCatalog() 67 { 68 $version3 = true; 69 $refer = true; 70 71 if(!function_exists('ldap_connect')) 72 return false; 73 74 if(!$conn = ldap_connect($this->ldap_host)) 75 return false; 76 77 if( $version3 ) 78 if( !ldap_set_option($conn,LDAP_OPT_PROTOCOL_VERSION,3) ) 79 $version3 = false; 80 81 ldap_set_option($conn, LDAP_OPT_REFERRALS, $refer); 82 83 // Bind as Admin 84 if($this->ldap_dn && $this->ldap_pass && !ldap_bind($conn, $this->ldap_dn, $this->ldap_pass)) 85 return false; 86 87 // Bind as Anonymous 88 if(!$this->ldap_dn && !$this->ldap_pass && !@ldap_bind($conn)) 89 return false; 62 90 63 @ldap_bind($ldap_connection, $acc,$pw); 64 } 65 66 // Using ContactCenter configuration. 67 $this->ldap_host = $_SESSION['phpgw_info']['jabberit_messenger']['ldapManager']['host']; 68 $this->ldap_context = $_SESSION['phpgw_info']['jabberit_messenger']['ldapManager']['dn']; 69 $this->ldap_dn = $_SESSION['phpgw_info']['jabberit_messenger']['ldapManager']['acc']; 70 $this->ldap_pass = $_SESSION['phpgw_info']['jabberit_messenger']['ldapManager']['pw']; 71 72 $this->ldap = ldap_connect($this->ldap_host); 73 ldap_set_option($this->ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 74 ldap_set_option($this->ldap, LDAP_OPT_REFERRALS, $refer); 75 76 if ($refer) 77 { 78 ldap_set_rebind_proc($this->ldap, ldapRebindJabberit); 79 } 80 81 @ldap_bind($this->ldap,$this->ldap_dn,$this->ldap_pass); 82 } 83 84 public final function list_groups_memberUid($pGroup) 85 { 86 $this->_ldapConnect(); 91 return $conn; 92 } 93 94 public final function getGroupsLdap($pOrg) 95 { 96 $this->ldapRoot(); 97 98 if( $this->ldap ) 99 { 100 $organization = 'ou=' . $pOrg['ou'] .",". $this->ldap_context; 101 $filter = "(&(phpgwAccountType=g)(objectClass=posixGroup))"; 102 $justthese = array("cn","gidNumber"); 103 $search = ldap_list($this->ldap, $organization, $filter, $justthese); 104 $entry = ldap_get_entries( $this->ldap, $search ); 105 106 if( $entry ) 107 { 108 $result_groups = "<ldap>"; 109 foreach($entry as $tmp) 110 if( $tmp['gidnumber'][0] != "" ) 111 $result_groups .= "<org><cn>".$tmp['cn'][0]."</cn><gid>".$tmp['gidnumber'][0]."</gid></org>"; 112 113 $result_groups .= "</ldap>"; 114 } 115 } 116 117 return $result_groups; 118 } 119 120 public final function getGroupsMemberUid($pGroup) 121 { 122 $this->ldapRoot(); 87 123 88 124 if( $this->ldap ) … … 100 136 } 101 137 102 public final function list_participants_externals($pSearch) 103 { 104 $this->_ldapConnect(true); 105 106 $mail = $pSearch['mail']; 107 108 if( $this->ldap ) 109 { 110 $filter = "(&(phpgwaccounttype=u)(mail=".$mail."))"; 111 $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto"); 112 $search = ldap_search($this->ldap,$this->ldap_context,$filter,$justthese, 0, $this->max_result + 1); 113 $entry1 = ldap_get_entries($this->ldap,$search); 114 $entry = ldap_first_entry( $this->ldap, $search ); 115 } 116 117 if( $entry1['count'] > 0 ) 118 { 119 $i = 0; 120 $result_user = array(); 121 $result = array(); 122 123 while($entry) 124 { 125 126 if ( $entry1[$i]['phpgwaccountvisible'][0] != '-1' ) 127 { 128 $result['uidnumber'] = @ldap_get_values($this->ldap, $entry, 'uidnumber'); 129 $result['mail'] = @ldap_get_values($this->ldap, $entry, 'mail'); 130 $result['uid'] = @ldap_get_values($this->ldap, $entry, 'uid'); 131 $result['cn'] = @ldap_get_values($this->ldap, $entry, 'cn'); 132 133 foreach ( $result as $key => $value ) 134 $result_user[$i][$key] = $value[0]; 135 136 $ou = explode('dc=', $entry1[$i]['dn']); 137 $ou = explode("ou=",$ou[0]); 138 $ou = array_pop($ou); 139 $result_user[$i]['dn'] = strtoupper(substr($ou,0,strlen($ou)-1)); 140 141 $result_user[$i]['photo'] = 0; 142 143 $photo = @ldap_get_values_len($this->ldap, $entry, 'jpegphoto'); 144 145 if ( $photo ) 146 { 147 $result_user[$i]['photo'] = 1; 148 $_SESSION['phpgw_info']['jabberit_messenger']['photo'][trim($result_user[$i]['uid'])] = $photo[0]; 149 } 150 151 $i++; 152 } 153 $entry = ldap_next_entry($this->ldap,$entry); 154 } 155 156 $return = "<uids>"; 157 $return .= "<".$result_user[0]['dn']."><data>"; 158 $return .= "<cn>".$result_user[0]['cn']."</cn>"; 159 $return .= "<mail>".$result_user[0]['mail']."</mail>"; 160 $return .= "<uid>".$result_user[0]['uid']."</uid>"; 161 $return .= "<photo>".$result_user[0]['photo']."</photo>"; 162 $return .= "</data></".$result_user[0]['dn'].">"; 163 $return .= "</uids>"; 164 165 return $return; 166 } 167 168 return '<empty/>'; 169 } 170 171 public final function list_users_ldap( $search, $uidnumber, $ous = false ) 172 { 173 $this->_connect_ldap(); 174 175 if( $this->ldap ) 176 { 177 $filter = "(&(phpgwaccounttype=u)(|".$uidnumber.")(".$search ."))"; 178 $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto"); 179 // SERPRO 180 //$justthese = array("uid","uidNumber","cn","mail","description","phpgwAccountVisible","dn","jpegPhoto"); 181 182 if( $ous != false ) 183 $search = ldap_search($this->ldap,$ous.",".$this->ldap_context,$filter,$justthese, 0, $this->max_result + 1); 184 else 185 $search = ldap_search($this->ldap,$this->ldap_context,$filter,$justthese, 0, $this->max_result + 1); 186 187 $entry1 = ldap_get_entries($this->ldap,$search); 188 $entry = ldap_first_entry($this->ldap,$search); 189 } 190 191 if( $entry1['count'] > 0 ) 192 { 193 if( count($entry1) < $this->max_result ) 194 { 195 $i = 0; 196 $result_user = array(); 197 $result = array(); 198 199 while($entry) 200 { 201 202 if ( $entry1[$i]['phpgwaccountvisible'][0] != '-1' ) 203 { 204 $result['uidnumber'] = @ldap_get_values($this->ldap, $entry, 'uidnumber'); 205 $result['mail'] = @ldap_get_values($this->ldap, $entry, 'mail'); 206 $result['uid'] = @ldap_get_values($this->ldap, $entry, 'uid'); 207 $result['jid'] = @ldap_get_values($this->ldap, $entry, 'uid'); 208 $result['cn'] = @ldap_get_values($this->ldap, $entry, 'cn'); 209 // SERPRO 210 //$result['description'] = @ldap_get_values($this->ldap, $entry, 'description'); 211 212 foreach ( $result as $key => $value ) 213 $result_user[$i][$key] = $value[0]; 214 215 $ou = explode('dc=', $entry1[$i]['dn']); 216 $ou = explode("ou=",$ou[0]); 217 $ou = array_pop($ou); 218 $result_user[$i]['dn'] = strtoupper(substr($ou,0,strlen($ou)-1)); 219 220 $result_user[$i]['photo'] = 0; 221 $photo = @ldap_get_values_len($this->ldap, $entry, 'jpegphoto'); 222 if ( $photo ) 223 { 224 $result_user[$i]['photo'] = 1; 225 $_SESSION['phpgw_info']['jabberit_messenger']['photo'][trim($result_user[$i]['uid'])] = $photo[0]; 226 } 227 228 $organization = explode(",", $_SESSION['phpgw_info']['jabberit_messenger']['attributes_org_ldap_jabberit']); 229 230 if(is_array($organization)) 231 { 232 foreach($organization as $attr) 233 { 234 $tmp = explode(";",$attr); 235 if( strtolower(trim($tmp[0])) == strtolower(trim($result_user[$i]['dn'])) ) 236 { 237 switch(strtolower(trim($tmp[1]))) 238 { 239 case "mail" : 240 $uid = $result_user[$i]['mail']; 241 $uid = substr($uid,0,strpos($uid,"@")); 242 $result_user[$i]['uid'] = $uid; 243 break; 244 245 case "description" : 246 // SERPRO 247 // parte antes do arroba; 248 $result_user[$i]['uid'] = $result_user[$i]['description']; 249 break; 250 } 251 } 252 } 253 } 254 255 $i++; 256 } 257 $entry = ldap_next_entry($this->ldap,$entry); 258 } 259 260 return $result_user; 261 } 262 else 263 { 264 return "Many Results"; 265 } 266 } 267 return 0; 268 } 269 270 public final function listOrganizationsLdap() 271 { 272 273 $this->_connect_ldap(); 138 public final function getOrganizationsLdap() 139 { 140 $this->ldapRoot(); 274 141 275 142 if( $this->ldap ) … … 287 154 return $result_org; 288 155 } 289 290 public final function getGroupsLdap($pOrg) 291 { 292 $this->_ldapConnect(true); 293 $organization = 'ou=' . $pOrg['ou'] .",". $this->ldap_context; 294 295 if( $this->ldap ) 296 { 297 $filter = "(&(phpgwAccountType=g)(objectClass=posixGroup))"; 298 $justthese = array("cn","gidNumber"); 299 $search = ldap_list($this->ldap, $organization, $filter, $justthese); 156 157 public final function getUsersLdap( $search, $uidnumber, $ous = false) 158 { 159 // Ldap Principal 160 $ldapRoot = $this->getUsersLdapRoot($search, $uidnumber, $ous); 161 162 if( !$ous ) 163 { 164 // Ldap Outros 165 $ldapCatalog = $this->getUsersLdapCatalog( $search ); 166 $ldapRoot = array_merge( $ldapRoot, $ldapCatalog ); 167 } 168 169 return $ldapRoot; 170 } 171 172 private final function getUsersLdapCatalog( $search ) 173 { 174 $confHosts = $this->hostsJabber; 175 $result = array(); 176 $return = array(); 177 $conn = ""; 178 179 for($i = 0; $i < count($confHosts); $i++ ) 180 { 181 $this->ldap_host = $confHosts[$i]['serverLdap']; 182 $this->ldap_context = $confHosts[$i]['contextLdap']; 183 $this->ldap_dn = $confHosts[$i]['user']; 184 $this->ldap_pass = $confHosts[$i]['password']; 185 186 $conn = $this->ldapCatalog(); 187 188 if( $conn ) 189 { 190 $filter = "(&(phpgwaccounttype=u)(".$search ."))"; 191 $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto"); 192 $search1 = @ldap_search($conn, $this->ldap_context, $filter, $justthese, 0, $this->max_result + 1); 193 $entry1 = @ldap_get_entries( $conn, $search1 ); 194 195 $result = $this->resultArray($entry1, $conn ); 196 197 if( count($return) > 0 ) 198 $return = array_merge($return, $result); 199 else 200 $return = $result; 201 202 unset($result); 203 204 ldap_close($conn); 205 } 206 } 207 208 return $return; 209 } 210 211 private final function getUsersLdapRoot( $search, $uidnumber, $ous = false ) 212 { 213 $this->ldapRoot(); 214 $result = array(); 215 216 if( $this->ldap ) 217 { 218 $searchRoot = ( $ous ) ? $ous.",".$this->ldap_context : $this->ldap_context ; 219 $filter = "(&(phpgwaccounttype=u)(|".$uidnumber.")(".$search ."))"; 220 $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn","jpegPhoto"); 221 $search = ldap_search($this->ldap, $searchRoot, $filter, $justthese, 0, $this->max_result + 1); 300 222 $entry = ldap_get_entries( $this->ldap, $search ); 301 223 302 if( $entry ) 303 { 304 $result_groups = "<ldap>"; 305 foreach($entry as $tmp) 306 if( $tmp['gidnumber'][0] != "" ) 307 $result_groups .= "<org><cn>".$tmp['cn'][0]."</cn><gid>".$tmp['gidnumber'][0]."</gid></org>"; 308 309 $result_groups .= "</ldap>"; 310 } 311 } 312 313 return $result_groups; 224 $result = $this->resultArray($entry, $this->ldap ); 225 } 226 227 return $result; 228 } 229 230 private final function resultArray($pArray, $pConn) 231 { 232 $entry = $pArray; 233 $result = array(); 234 235 $j = 0; 236 for($i = 0 ; $i < $entry['count']; $i++) 237 { 238 if ( $entry[$i]['phpgwaccountvisible'][0] != '-1' ) 239 { 240 $result[$j]['uidnumber'] = $entry[$i]['uidnumber'][0]; 241 $result[$j]['mail'] = $entry[$i]['mail'][0]; 242 $result[$j]['uid'] = $entry[$i]['uid'][0]; 243 $result[$j]['jid'] = $entry[$i]['uid'][0]; 244 $ou = explode("dc=", $entry[$i]['dn']); 245 $ou = explode("ou=",$ou[0]); 246 $ou = array_pop($ou); 247 $result[$j]['ou'] = strtoupper(substr($ou,0,strlen($ou)-1)); 248 if( $entry[$i]['jpegphoto'][0] ) 249 { 250 $result[$j]['photo'] = "1"; 251 $filterPhoto = "(objectclass=*)"; 252 $photoLdap = ldap_read($pConn, $entry[$i]['dn'], $filterPhoto, array("jpegPhoto")); 253 $firstEntry = ldap_first_entry($pConn, $photoLdap); 254 $photo = ldap_get_values_len($pConn, $firstEntry, "jpegPhoto"); 255 $_SESSION['phpgw_info']['jabberit_messenger']['photo'][trim($result[$j]['ou'])][trim($result[$j]['uid'])] = $photo[0]; 256 } 257 else 258 $result[$j]['photo'] = "0"; 259 260 $result[$j++]['cn'] = $entry[$i]['cn'][0]; 261 } 262 263 $organization = $this->attr_org; 264 265 if(is_array($organization)) 266 { 267 foreach($organization as $attr) 268 { 269 $tmp = explode(";",$attr); 270 if( strtolower(trim($tmp[0])) == strtolower(trim($result[$i]['dn'])) ) 271 { 272 switch(strtolower(trim($tmp[1]))) 273 { 274 case "mail" : 275 $uid = $result[$i]['mail']; 276 $uid = substr($uid,0,strpos($uid,"@")); 277 $result[$i]['uid'] = $uid; 278 break; 279 280 case "description" : 281 // SERPRO 282 // parte antes do arroba; 283 $result[$i]['uid'] = $result[$i]['description']; 284 break; 285 } 286 } 287 } 288 } 289 } 290 return $result; 314 291 } 315 292 } -
trunk/jabberit_messenger/inc/class.uienabledgroups.inc.php
r697 r946 27 27 } 28 28 29 public final function backPage()30 {31 echo "<pre>";32 print_r($_POST);33 echo "</pre>";34 }35 36 29 public final function editGroups() 37 30 { … … 63 56 64 57 $ous = "<option value='-1'>-- ".lang('Select Organization')." --</option>"; 65 if( ($LdapOus = $ldap-> listOrganizationsLdap()) )58 if( ($LdapOus = $ldap->getOrganizationsLdap()) ) 66 59 { 67 60 foreach($LdapOus as $tmp ) -
trunk/jabberit_messenger/inc/class.uigroupslocked.inc.php
r570 r946 70 70 71 71 $ous = "<option value='-1'>-- ".lang('Select Organization')." --</option>"; 72 if( ($LdapOus = $ldap-> listOrganizationsLdap()) )72 if( ($LdapOus = $ldap->getOrganizationsLdap()) ) 73 73 { 74 74 foreach($LdapOus as $tmp ) -
trunk/jabberit_messenger/inc/class.uihostsjabber.inc.php
r915 r946 53 53 require_once "load_lang.php"; 54 54 55 56 // Load Ldap;57 require_once "class.ldap_im.inc.php";58 59 $ldap = new ldap_im();60 61 $ous = "<option value='-1'>-- ".lang('Select Organization')." --</option>";62 if( ($LdapOus = $ldap->listOrganizationsLdap()) )63 {64 foreach($LdapOus as $tmp )65 $ous .= "<option value='".$tmp."'>".$tmp."</option>";66 }67 68 55 $ConfHosts = $this->bo->getHostsJabber(); 69 56 … … 71 58 { 72 59 $ConfHosts = unserialize($this->bo->getHostsJabber()); 73 $ConfHosts = explode(";", $ConfHosts);74 natcasesort($ConfHosts);75 60 } 76 61 77 62 $value_Organizations_Servers = ""; 78 63 79 if( is_array($ConfHosts))64 if( is_array($ConfHosts) ) 80 65 { 81 foreach($ConfHosts as $ values)66 foreach($ConfHosts as $itens) 82 67 { 83 $itens = explode(":", $values); 84 85 $value_Organizations_Servers .= "<tr id='".$values."' style='width:40%' class='row_off'>"; 86 $value_Organizations_Servers .= "<td>".$itens[0]."</td>"; 87 $value_Organizations_Servers .= "<td>".$itens[1]."</td>"; 88 $value_Organizations_Servers .= "<td><a href='javascript:constructScript.removeHostsJ(\"".$values."\");'>".lang('Delete')."</a></td>"; 68 $value_Organizations_Servers .= "<tr id='".$itens['org'].":".$itens['jabberName']."' style='width:40%' class='row_off'>"; 69 $value_Organizations_Servers .= "<td>".$itens['org']."</td>"; 70 $value_Organizations_Servers .= "<td>".$itens['jabberName']."</td>"; 71 $value_Organizations_Servers .= "<td><a href='javascript:constructScript.editHostsJ(\"".$itens['org'].":".$itens['jabberName']."\");'>".lang('Edit')."</a></td>"; 72 $value_Organizations_Servers .= "<td><a href='javascript:constructScript.removeHostsJ(\"".$itens['org'].":".$itens['jabberName']."\");'>".lang('Delete')."</a></td>"; 89 73 $value_Organizations_Servers .= "</tr>"; 90 74 } … … 98 82 'lang_Back' => lang('Back'), 99 83 'lang_Delete' => lang('Delete'), 84 'lang_Edit' => lang('Edit'), 100 85 'lang_Example' => lang('Example'), 86 'lang_new' => lang('New'), 101 87 'lang_Organization' => lang('Organization'), 102 88 'lang_save' => lang('Save'), 103 89 'lang_ServerJabber' => lang('Servers Jabber'), 104 90 'lang_Registration_Organizations_and_Server_Jabber' => lang("Registration of Organizations and Servers Jabber"), 105 'options_ous_ldap' => $ous,106 91 'value_Organizations_Servers' => $value_Organizations_Servers, 107 92 )); -
trunk/jabberit_messenger/inc/controller.xml
r899 r946 34 34 <item ref="contacts_im" alias="list_contacts" class="contacts_im" method="list_contacts" prefix="class." suffix=".inc.php"/> 35 35 <item ref="contacts_im" alias="verifyAddNewContact" class="contacts_im" method="verifyAddNewContact" prefix="class." suffix=".inc.php"/> 36 <item ref="db_im" alias="editHostJabber" class="db_im" method="editHostJabber" prefix="class." suffix=".inc.php"/> 36 37 <item ref="db_im" alias="getPreferences" class="db_im" method="getPreferences" prefix="class." suffix=".inc.php"/> 37 38 <item ref="db_im" alias="setAttributesLdap" class="db_im" method="setAttributesLdap" prefix="class." suffix=".inc.php"/> 38 39 <item ref="db_im" alias="setHostJabber" class="db_im" method="setHostJabber" prefix="class." suffix=".inc.php"/> 40 <item ref="db_im" alias="setPreferences" class="db_im" method="setPreferences" prefix="class." suffix=".inc.php"/> 39 41 <item ref="db_im" alias="setOuGroupsLocked" class="db_im" method="setOuGroupsLocked" prefix="class." suffix=".inc.php"/> 40 42 <item ref="db_im" alias="setOrganization" class="db_im" method="setOrganization" prefix="class." suffix=".inc.php"/> 41 <item ref="db_im" alias="setPreferences" class="db_im" method="setPreferences" prefix="class." suffix=".inc.php"/>42 43 <item ref="db_im" alias="setUseParticipantsExternal" class="db_im" method="setUseParticipantsExternal" prefix="class." suffix=".inc.php"/> 43 44 <item ref="db_im" alias="removeAttributesLdap" class="db_im" method="removeAttributesLdap" prefix="class." suffix=".inc.php"/> … … 45 46 <item ref="db_im" alias="removeOuGroupsLocked" class="db_im" method="removeOuGroupsLocked" prefix="class." suffix=".inc.php"/> 46 47 <item ref="db_im" alias="removeParticipantsExternal" class="db_im" method="removeParticipantsExternal" prefix="class." suffix=".inc.php"/> 47 <item ref=" ldap_im" alias="list_organizations_ldap" class="ldap_im" method="list_organizations_ldap" prefix="class." suffix=".inc.php"/>48 <item ref=" ldap_im" alias="list_participants_externals" class="ldap_im" method="list_participants_externals" prefix="class." suffix=".inc.php"/>48 <item ref="fileDefine" alias="ldapExternal" class="fileDefine" method="ldapExternal" prefix="class." suffix=".inc.php"/> 49 <item ref="fileDefine" alias="ldapInternal" class="fileDefine" method="ldapInternal" prefix="class." suffix=".inc.php"/> 49 50 <item ref="ldap_im" alias="getGroupsLdap" class="ldap_im" method="getGroupsLdap" prefix="class." suffix=".inc.php"/> 50 <item ref="ldap_im" alias="photo_ldap" class="ldap_im" method="photo_ldap" prefix="class." suffix=".inc.php"/>51 <item ref="ujabber" alias="AddNewContact" class="ujabber" method="AddNewContact" prefix="class." suffix=".inc.php"/>52 <item ref="ujabber" alias="getGroupsJabber" class="ujabber" method="getGroupsJabber" prefix="class." suffix=".inc.php"/>53 <item ref="FileDefine" alias="getParams" class="FileDefine" method="getParams" prefix="class." suffix=".inc.php"/>54 51 </php> 55 52 <xml></xml> -
trunk/jabberit_messenger/inc/hook_admin.inc.php
r942 r946 17 17 'Enable the Expresso Messenger inside of the modules' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uimodule.edit_conf'), 18 18 'Configuration of authentication attribute by Organization (OU)' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uiconforganization.edit_conf'), 19 'External Participants' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uiexternals.editParticipantsExternals'),20 19 'Restrict group' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uigroupslocked.editGroups'), 21 20 'Free organization for group' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uienabledgroups.getGroups'), 22 //'Map organization for realm jabber' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uihostsjabber.edit_conf'),21 'Map organization for realm jabber' => $GLOBALS['phpgw']->link('/index.php','menuaction=jabberit_messenger.uihostsjabber.edit_conf'), 23 22 ); 24 23 -
trunk/jabberit_messenger/inc/jabberit_acl.inc.php
r864 r946 46 46 $_SESSION['phpgw_info']['jabberit_messenger']['webserver_url'] = $webserver_url; 47 47 48 $ExternalParticipants = "";49 if(trim($_SESSION['phpgw_info']['jabberit_messenger']['conf_organization_jabberit']))50 {51 $ExternalParticipants = explode(",",$_SESSION['phpgw_info']['jabberit_messenger']['conf_organization_jabberit']);52 53 if(is_array($ExternalParticipants))54 {55 natcasesort($ExternalParticipants);56 $ExternalParticipants = implode(",", $ExternalParticipants);57 }58 }59 60 48 require_once dirname(__FILE__) . '/load_lang.php'; 61 49 62 50 $var_js = "var path_jabberit='".$webserver_url."';"; 63 $var_js .= "var externalParticipantsJabberit='".$ExternalParticipants."';";64 51 65 52 echo "<script type=\"text/javascript\">".$var_js."</script>"; -
trunk/jabberit_messenger/inc/jabberit_sessions.inc.php
r894 r946 55 55 $_SESSION['phpgw_info']['jabberit_messenger']['use_attribute_jabberit'] = $GLOBALS['phpgw_info']['server']['use_attribute_jabberit']; 56 56 $_SESSION['phpgw_info']['jabberit_messenger']['attributes_org_ldap_jabberit'] = $GLOBALS['phpgw_info']['server']['attributes_org_ldap_jabberit']; 57 $_SESSION['phpgw_info']['jabberit_messenger']['use_external_participants_jabberit'] = $GLOBALS['phpgw_info']['server']['use_external_participants_jabberit'];58 $_SESSION['phpgw_info']['jabberit_messenger']['conf_organization_jabberit'] = $GLOBALS['phpgw_info']['server']['conf_organization_jabberit'];59 57 $_SESSION['phpgw_info']['jabberit_messenger']['map_org_realm_jabberit'] = $GLOBALS['phpgw_info']['server']['map_org_realm_jabberit']; 60 58 -
trunk/jabberit_messenger/inc/login.php
r893 r946 82 82 // Enable Plugins Java; 83 83 $pluginsJava[] = $path . "applet.jar?" . filemtime("applet.jar"); 84 $pluginsJava[] = $path . "plugins/filetransfer.jar?" . filemtime("plugins/filetransfer.jar");85 84 $pluginsJava[] = $path . "plugins/xhtml.jar?" . filemtime("plugins/xhtml.jar"); 85 $pluginsJava[] = $path . "plugins/filetransfer.jar?" . filemtime("plugins/filetransfer.jar"); 86 86 87 87 for($i = 0; $i < count($pluginsJava); $i++) -
trunk/jabberit_messenger/inc/webservice.php
r697 r946 11 11 \***************************************************************************/ 12 12 13 function ldap_rebind($ldap_connection, $ldap_url){ 14 include('conf_Ldap_Photos.php'); 15 $handle = unserialize(base64_decode($CONF_SERVER)); 16 @ldap_bind($ldap_connection, $handle['dn'],$handle['passwd']); 17 } 18 19 class ldapPhoto 20 { 21 private $host; 22 private $dn; 13 class webService 14 { 15 private $conn; 16 private $contextLdap; 17 private $userDn; 18 private $jabberName; 23 19 private $passwd; 20 private $photo_user = array(); 24 21 private $refer; 25 private $user_referral; 26 private $password_referral; 27 private $conn; 28 private $context; 29 private $photo_user = array(); 30 private $handle; 31 32 22 private $serverLdap; 23 33 24 function __construct() 34 25 { 35 require_once('conf_Ldap_Photos.php'); 36 $handle = unserialize(base64_decode($CONF_SERVER)); 37 38 $this->host = $handle['host']; 39 $this->context = $handle['context']; 40 $this->dn = $handle['dn']; 41 $this->passwd = $handle['passwd']; 26 require_once('confLDAPInternal.php'); 27 $handle = unserialize(base64_decode($LDAP_INTERNAL)); 28 29 $this->jabberName = $handle['jabberName']; 30 $this->serverLdap = $handle['serverLdap']; 31 $this->contextLdap = $handle['contextLdap']; 32 $this->userDn = $handle['user']; 33 $this->passwd = $handle['password']; 42 34 43 35 $this->refer = true; 44 36 $this->version3 = true; 45 37 } 46 47 38 48 39 private final function ldapConnect() 49 40 { 50 41 if(!function_exists('ldap_connect')) 51 { 52 printf("<b>Erro : Ldap Não suportado %s</b><br>" , $this->host); 53 return False; 54 } 55 56 if(!$this->conn = ldap_connect($this->host)) 57 { 58 printf("<b>Erro: não pode conectar no servidor ldap %s!</b><br>", $this->host); 59 return False; 60 } 42 return False; 43 44 if(!$this->conn = ldap_connect($this->serverLdap)) 45 return False; 61 46 62 47 if( $this->version3 ) 63 {64 48 if( !ldap_set_option($this->conn,LDAP_OPT_PROTOCOL_VERSION,3) ) 65 49 $this->version = false; 66 } 50 67 51 ldap_set_option($this->conn, LDAP_OPT_REFERRALS, $this->refer); 68 52 69 // verifica refer 70 if( $this->refer ) 71 { 72 @ldap_set_rebind_proc($this->conn, ldap_rebind); 73 } 74 75 // bind as admin 76 if($this->dn && $this->passwd && !ldap_bind($this->conn, $this->dn, $this->passwd)){ 77 echo "<center><b>ExpressoLivre indisponível no momento</b></center>"; 78 return False; 79 } 80 81 // bind as anonymous 82 if(!$this->dn && !$this->passwd && !@ldap_bind($this->conn)) 83 { 84 echo "<center><b>ExpressoLivre indisponível no momento</b></center>"; 85 return False; 86 } 87 } 88 89 public final function getNameOrganization($pUid, $pCharset) 90 { 53 // Bind as Admin 54 if($this->userDn && $this->passwd && !ldap_bind($this->conn, $this->userDn, $this->passwd)) 55 return False; 56 57 // Bind as Anonymous 58 if(!$this->userDn && !$this->passwd && !@ldap_bind($this->conn)) 59 return False; 60 } 61 62 private final function ldapConnectExternal($pHostJabber) 63 { 64 require_once('confLDAPExternal.php'); 65 $handle = unserialize(base64_decode($LDAP_EXTERNAL)); 66 67 foreach($handle as $itens) 68 if(trim($pHostJabber) == $itens['jabberName']) 69 { 70 $this->jabberName = $itens['jabberName']; 71 $this->serverLdap = $itens['serverLdap']; 72 $this->contextLdap = $itens['contextLdap']; 73 $this->userDn = $itens['user']; 74 $this->passwd = $itens['password']; 75 } 76 77 $this->refer = true; 78 $this->version3 = true; 79 91 80 $this->ldapConnect(); 92 93 if( $this->conn ) 94 { 95 $filter = "(&(phpgwaccounttype=u)(uid=".$pUid.")(!(phpgwaccountvisible=-1)))"; 96 $justthese = array("uid","cn","dn"); 97 $search = ldap_search($this->conn,$this->context,$filter,$justthese); 98 $entry = ldap_get_entries($this->conn,$search); 99 $cn = $entry[0]['cn'][0]; 100 $ou = explode("dc=", $entry[0]['dn']); 101 $ou = explode("ou=",$ou[0]); 102 $ou = array_pop($ou); 103 $dn = strtoupper(substr($ou,0,strlen($ou)-1)); 104 105 $return = utf8_encode("Nome : " . $cn . ";Organização : " . $dn); 106 107 if( $pCharset === "1" ) 108 return $return; 109 else 110 return mb_convert_encoding($return, "ISO-8859-1", "UTF-8"); 111 112 $return = utf8_encode("Nome : Não Identificado ;Organização : Não Identificado"); 113 114 if( $pCharset === 1 ) 115 return $return; 116 else 117 return mb_convert_encoding($return, "ISO-8859-1", "UTF-8"); 118 } 119 } 120 121 public final function getPhotoLdap($uid) 122 { 123 $this->ldapConnect(); 124 if( $this->conn ) 125 { 126 $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 127 $justthese = array("uid","jpegPhoto"); 128 $search = ldap_search($this->conn,$this->context,$filter,$justthese); 129 $entry1 = ldap_get_entries($this->conn,$search); 130 $entry = ldap_first_entry( $this->conn, $search ); 131 if( $entry1['count'] > 0 ) 132 { 133 $i = 0; 134 $photo = ""; 135 $return_photo = ""; 136 $photo = @ldap_get_values_len($this->conn, $entry, 'jpegphoto'); 137 if ($photo) 138 $return_photo = $photo[0]; 139 return $return_photo; 140 } 141 } 81 } 82 83 public final function getNameOrganization($pJid, $pCharset) 84 { 85 $uid = substr($pJid, 0, strpos($pJid,"@")); 86 87 if( $this->jabberName == (substr($pJid, strpos($pJid, "@") + 1 ))) 88 { 89 $this->ldapConnect(); 90 91 if( $this->conn ) 92 { 93 $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 94 $justthese = array("uid","cn","dn"); 95 $search = ldap_search($this->conn,$this->contextLdap,$filter,$justthese); 96 $entry = ldap_get_entries($this->conn,$search); 97 $cn = $entry[0]['cn'][0]; 98 $ou = explode("dc=", $entry[0]['dn']); 99 $ou = explode("ou=",$ou[0]); 100 $ou = array_pop($ou); 101 $dn = strtoupper(substr($ou,0,strlen($ou)-1)); 102 103 $return = utf8_encode("Nome : " . $cn . ";Organização : " . $dn); 104 } 105 } 106 else 107 { 108 $this->ldapConnectExternal(substr($pJid, strpos($pJid, "@") + 1 )); 109 110 if( $this->conn ) 111 { 112 $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 113 $justthese = array("uid","cn","dn"); 114 $search = ldap_search($this->conn,$this->contextLdap,$filter,$justthese); 115 $entry = ldap_get_entries($this->conn,$search); 116 $cn = $entry[0]['cn'][0]; 117 $ou = explode("dc=", $entry[0]['dn']); 118 $ou = explode("ou=",$ou[0]); 119 $ou = array_pop($ou); 120 $dn = strtoupper(substr($ou,0,strlen($ou)-1)); 121 122 $return = utf8_encode("Nome : " . $cn . ";Organização : " . $dn); 123 } 124 } 125 126 if( $pCharset === "1" ) 127 return $return; 128 else 129 return mb_convert_encoding($return, "ISO-8859-1", "UTF-8"); 130 131 $return = utf8_encode("Nome : Não Identificado ;Organização : Não Identificado"); 132 133 if( $pCharset === 1 ) 134 return $return; 135 else 136 return mb_convert_encoding($return, "ISO-8859-1", "UTF-8"); 137 138 } 139 140 public final function getPhotoLdap($pJid) 141 { 142 $uid = substr($pJid, 0, strpos($pJid,"@")); 143 144 if( $this->jabberName == (substr($pJid, strpos($pJid, "@") + 1 ))) 145 { 146 $this->ldapConnect(); 147 148 if( $this->conn ) 149 { 150 $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 151 $justthese = array("uid","jpegPhoto"); 152 $search = ldap_search($this->conn,$this->contextLdap,$filter,$justthese); 153 $entry1 = ldap_get_entries($this->conn,$search); 154 $entry = ldap_first_entry( $this->conn, $search ); 155 if( $entry1['count'] > 0 ) 156 { 157 $i = 0; 158 $photo = ""; 159 $return_photo = ""; 160 $photo = @ldap_get_values_len($this->conn, $entry, 'jpegphoto'); 161 162 if ($photo) 163 $return_photo = $photo[0]; 164 return $return_photo; 165 } 166 } 167 } 168 else 169 { 170 $jabberName = substr($pJid, strpos($pJid, "@") + 1 ); 171 172 if( strpos($jabberName, "/") ) 173 $jabberName = substr($jabberName, 0, strpos($jabberName, "/")); 174 175 $this->ldapConnectExternal($jabberName); 176 177 if( $this->conn ) 178 { 179 $filter = "(&(phpgwaccounttype=u)(uid=".$uid.")(!(phpgwaccountvisible=-1)))"; 180 $justthese = array("uid","jpegPhoto"); 181 $search = ldap_search($this->conn,$this->contextLdap,$filter,$justthese); 182 $entry1 = ldap_get_entries($this->conn,$search); 183 $entry = ldap_first_entry( $this->conn, $search ); 184 if( $entry1['count'] > 0 ) 185 { 186 $i = 0; 187 $photo = ""; 188 $return_photo = ""; 189 $photo = @ldap_get_values_len($this->conn, $entry, 'jpegphoto'); 190 if ($photo) 191 $return_photo = $photo[0]; 192 return $return_photo; 193 } 194 } 195 } 196 142 197 return false; 143 198 } 144 199 145 public final function getPhotoSession($pUid) 146 { 147 if(isset($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$pUid])) 148 { 149 $photo = imagecreatefromstring($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$pUid]); 150 200 public final function getPhotoSession($pUid, $pOu) 201 { 202 $uid = $pUid; 203 if( strpos($pUid, "@") ) 204 $uid = substr($pUid, 0, strpos($pUid, "@")); 205 206 if( isset($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$pOu][$uid]) ) 207 { 208 $photo = imagecreatefromstring($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$pOu][$uid]); 209 151 210 header("Content-Type: image/jpeg"); 152 211 $width = imagesx($photo); … … 157 216 imagecopyresampled($small_photo, $photo, 0, 0, 0, 0,$twidth, $theight, $width, $height); 158 217 imagejpeg($small_photo,'',100); 159 160 unset($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$pUid]); 218 219 unset($_SESSION['phpgw_info']['jabberit_messenger']['photo'][$pOu][$uid]); 220 161 221 return; 162 222 } … … 164 224 } 165 225 166 if(trim($_REQUEST['uid']) != "") 167 { 168 $uid = trim($_REQUEST['uid']); 169 $a = new ldapPhoto(); 170 171 if( strpos($uid,"@")) 172 { 173 $uid = substr($uid, 0, strpos($uid,"@")); 174 $photo = $a->getPhotoLdap($uid); 175 $photoWidth = 70; 176 $photoHeight = 90; 177 $newImage = imagecreatetruecolor($photoWidth,$photoHeight); 178 179 if($photo) 180 { 181 $photo = imagecreatefromstring($photo); 182 imagecopyresized($newImage,$photo,0,0,0,0,$photoWidth,$photoHeight,imagesx($photo),imagesy($photo)); 183 } 184 else 185 { 186 $photo = @imagecreatefrompng("../templates/default/images/photo.png"); 187 imagecopyresized($newImage,$photo,0,0,0,0,$photoWidth,$photoHeight,imagesx($photo),imagesy($photo)); 188 } 189 190 ob_start(); 191 imagepng($newImage); 192 $imagePhoto = ob_get_contents(); 193 imagedestroy($newImage); 194 ob_end_clean(); 195 printf("%s",base64_encode($imagePhoto)); 226 if(trim($_REQUEST['javaPhoto']) != "" ) 227 { 228 $obj = new webService(); 229 $jid = $_REQUEST['javaPhoto']; 230 231 $photo = $obj->getPhotoLdap($jid); 232 $photoWidth = 70; 233 $photoHeight = 90; 234 $newImage = imagecreatetruecolor($photoWidth,$photoHeight); 235 236 if( $photo ) 237 { 238 $photo = imagecreatefromstring($photo); 239 imagecopyresized($newImage,$photo,0,0,0,0,$photoWidth,$photoHeight,imagesx($photo),imagesy($photo)); 196 240 } 197 241 else 198 242 { 199 $a->getPhotoSession($uid); 200 } 243 $photo = @imagecreatefrompng("../templates/default/images/photo.png"); 244 imagecopyresized($newImage,$photo,0,0,0,0,$photoWidth,$photoHeight,imagesx($photo),imagesy($photo)); 245 } 246 247 ob_start(); 248 imagepng($newImage); 249 $imagePhoto = ob_get_contents(); 250 imagedestroy($newImage); 251 ob_end_clean(); 252 printf("%s",base64_encode($imagePhoto)); 253 201 254 } 202 255 … … 204 257 { 205 258 $jid = trim($_POST['jid']); 206 if( strpos($jid,"@"))207 $jid = substr($jid, 0, strpos($jid,"@"));208 259 $charset = trim($_POST['charset']); 209 $a = new ldapPhoto(); 210 211 printf("%s",$a->getNameOrganization($jid, $charset)); 212 } 260 $obj = new webService(); 261 262 printf("%s",$obj->getNameOrganization($jid, $charset)); 263 } 264 265 if(trim($_REQUEST['phpPhoto']) != "") 266 { 267 $obj = new webservice(); 268 $ou = $_REQUEST['phpOu']; 269 $jid = $_REQUEST['phpPhoto']; 270 271 $obj->getPhotoSession($jid, $ou); 272 } 273 213 274 ?> -
trunk/jabberit_messenger/js/ldap.js
r914 r946 21 21 22 22 var _params = { 23 'lang1':jabberitGetLang('Name of Contacts'),24 'lang2':jabberitGetLang('Search'),25 'lang3':jabberitGetLang('member of organization'),26 'lang4':jabberitGetLang('nickname'),27 'lang5':jabberitGetLang('group'),28 'lang6':jabberitGetLang('add'),29 'lang7':jabberitGetLang('close'),30 'lang8':jabberitGetLang('Others Expressos')31 };23 'lang1':jabberitGetLang('Name of Contacts'), 24 'lang2':jabberitGetLang('Search'), 25 'lang3':jabberitGetLang('member of organization'), 26 'lang4':jabberitGetLang('nickname'), 27 'lang5':jabberitGetLang('group'), 28 'lang6':jabberitGetLang('add'), 29 'lang7':jabberitGetLang('close'), 30 'lang8':jabberitGetLang('Others Expressos') 31 }; 32 32 33 33 _win_add.bz.style.display = "none"; … … 35 35 36 36 _win_add.content( _xtools.parse(_xtools.xml('adduser'), 'add_user.xsl', _params)); 37 38 _conn.go('$this.contacts_im.getParticipantsExternal',39 function(data)40 {41 var data = eval(data);42 var elementDiv = document.getElementById('external_Participants_Jabberit');43 44 if( data )45 elementDiv.style.display = 'block';46 });47 37 48 38 _config( _win_add.wc.childNodes[2].childNodes[0], … … 67 57 { 68 58 if ( !(_name.value) ) 69 alert( jabberitGetLang('ATTENTION') + "!!\n Informe um \"NOME\".");59 alert( jabberitGetLang('ATTENTION') + "!!\n" + jabberitGetLang("Enter a NAME") + "."); 70 60 71 61 if ( !(_group.value) ) 72 alert( jabberitGetLang('ATTENTION') + "!!\n Informe um \"GRUPO\".");62 alert( jabberitGetLang('ATTENTION') + "!!\n" + jabberitGetLang("Enter a GROUP") + "."); 73 63 } 74 64 else … … 86 76 { 87 77 data = eval(data); 88 78 89 79 if( !data ) 90 80 { 81 91 82 alert("*********** " + jabberitGetLang("Attention") + "!! ***********\n" + 92 83 jabberitGetLang("This user is part of a small group!") + … … 102 93 _name.parentNode.style.display = 'none'; 103 94 _name.parentNode.nextSibling.style.display = 'none'; 104 _status.innerHTML = '<br/> Adicionando contato, aguarde....<br/>';95 _status.innerHTML = '<br/>' + jabberitGetLang('Add contact wait') + '....<br/>'; 105 96 106 97 try … … 124 115 _status.innerHTML = '<br/>' + jabberitGetLang('The module is not loaded') + '! ' + 125 116 jabberitGetLang('Contact was not added!') + '<br/>'; 126 127 117 } 118 128 119 setTimeout('cleanStatusAddContactIM();',2500); 129 120 … … 171 162 function _search() 172 163 { 173 var _loading = document.getElementById('__span_load_im'); 174 var _target = document.getElementById('im_ldap_user'); 175 var _particiExt = document.getElementById('external_Participants_Jabberit').firstChild; 176 177 function getUsersLdap(_data) 178 { 179 var _params = { 180 'many_results' : jabberitGetLang('More than 50 results. Please, try to refine your search.'), 181 'empty' : jabberitGetLang('None result was found.') 182 }; 183 184 _target.innerHTML = _xtools.parse(_data,'list_ldap_contacts.xsl', _params); 185 186 function _show(m) 187 { 188 m = ( m.target ) ? m.target : m.srcElement; 189 190 if ( m.getAttribute('value')) 164 var _loading = document.getElementById('__span_load_im'); 165 var _target = document.getElementById('im_ldap_user'); 166 167 _loading.style.display = "block"; 168 169 _conn.go('$this.contacts_im.list_contacts', 170 function( data ) 191 171 { 192 var jidUser = m.getAttribute('jid');193 m = m.getAttribute('value');194 }195 else196 {197 var jidUser = m.parentNode.getAttribute('jid');198 m = m.parentNode.getAttribute('value');199 }200 201 if ( !m )202 return false;203 204 document.getElementById('__span_load_im_group').style.display = 'block';205 document.getElementById('im_jidUser').value = jidUser;206 document.getElementById('im_jid').value = m.substr(0, m.indexOf(';'));207 document.getElementById('im_uid').value = m.substr((m.indexOf(';')+1));208 209 var _name = document.getElementById('im_name');210 var groups = "";211 var data;212 213 var first_name = document.getElementById(m).innerHTML;214 first_name = first_name.substr(0, first_name.indexOf(' '));215 216 _name.value = first_name;217 _name.previousSibling.style.color = "#000";218 _name.parentNode.style.display = 'block';219 _name.parentNode.nextSibling.style.display = 'block';220 _name.parentNode.nextSibling.nextSibling.innerHTML = '';221 222 try223 {224 // If Layer;225 if( elementIframe = document.getElementById('iframe_applet_jabberit') )226 {227 if( !_is_ie )228 groups = elementIframe.contentDocument.applets[0].getGroupsToExpresso();229 else230 groups = elementIframe.contentWindow.document.applets[0].getGroupsToExpresso();231 }232 else // If Pop-Up233 {234 groups = _myWindow.document.applets[0].getGroupsToExpresso();235 }236 237 if( typeof(groups) == 'object')238 {239 data = groups + ";";240 data = data.substring(0,(data.length-2));241 }242 else243 data = groups.substring(0,(groups.length-1));244 245 172 if( data ) 246 173 { 247 document.getElementById('im_group').setAttribute('selectBoxOptions', data); 248 249 if( document.getElementById('selectBox0') == null ) 250 editS.create(document.getElementById('im_group')); 174 var _params = { 175 'many_results' : jabberitGetLang('More than 50 results. Please, try to refine your search.'), 176 'empty' : jabberitGetLang('None result was found.') 177 }; 178 179 _target.innerHTML = _xtools.parse( data, 'list_ldap_contacts.xsl', _params); 180 181 // Add Contact 182 function _show(m) 183 { 184 m = ( m.target ) ? m.target : m.srcElement; 185 186 if ( m.getAttribute('value')) 187 { 188 var jidUser = m.getAttribute('jid'); 189 m = m.getAttribute('value'); 190 } 191 else 192 { 193 var jidUser = m.parentNode.getAttribute('jid'); 194 m = m.parentNode.getAttribute('value'); 195 } 196 197 if ( !m ) 198 return false; 199 200 document.getElementById('__span_load_im_group').style.display = 'block'; 201 document.getElementById('im_jidUser').value = jidUser; 202 document.getElementById('im_jid').value = m.substr(0, m.indexOf(';')); 203 document.getElementById('im_uid').value = m.substr((m.indexOf(';')+1)); 204 205 206 var _name = document.getElementById('im_name'); 207 var groups = ""; 208 var data; 209 210 var first_name = document.getElementById(m).innerHTML; 211 first_name = first_name.substr(0, first_name.indexOf(' ')); 212 213 _name.value = first_name; 214 _name.previousSibling.style.color = "#000"; 215 _name.parentNode.style.display = 'block'; 216 _name.parentNode.nextSibling.style.display = 'block'; 217 _name.parentNode.nextSibling.nextSibling.innerHTML = ''; 218 219 try 220 { 221 // If Layer; 222 if( elementIframe = document.getElementById('iframe_applet_jabberit') ) 223 { 224 if( !_is_ie ) 225 groups = elementIframe.contentDocument.applets[0].getGroupsToExpresso(); 226 else 227 groups = elementIframe.contentWindow.document.applets[0].getGroupsToExpresso(); 228 } 229 else // If Pop-Up 230 { 231 groups = _myWindow.document.applets[0].getGroupsToExpresso(); 232 } 233 234 if( typeof(groups) == 'object') 235 { 236 data = groups + ";"; 237 data = data.substring(0,(data.length-2)); 238 } 239 else 240 data = groups.substring(0,(groups.length-1)); 241 242 if( data ) 243 { 244 document.getElementById('im_group').setAttribute('selectBoxOptions', data); 245 246 if( document.getElementById('selectBox0') == null ) 247 editS.create(document.getElementById('im_group')); 248 } 249 250 document.getElementById('__span_load_im_group').style.display = 'none'; 251 document.getElementById('im_group').value = ''; 252 document.getElementById('im_group').focus(); 253 } 254 catch(e) 255 { 256 alert("*********** " + jabberitGetLang("Attention") + "!! ***********\n" + 257 jabberitGetLang("The module is not loaded") + "!\n" ); 258 259 document.getElementById('__span_load_im_group').style.display = 'none'; 260 } 261 } 251 262 } 252 253 document.getElementById('__span_load_im_group').style.display = 'none'; 254 document.getElementById('im_group').value = ''; 255 document.getElementById('im_group').focus(); 256 } 257 catch(e) 258 { 259 alert("*********** " + jabberitGetLang("Attention") + "!! ***********\n" + 260 jabberitGetLang("The module is not loaded") + "!\n" ); 261 262 document.getElementById('__span_load_im_group').style.display = 'none'; 263 } 264 } 265 266 var _member = _target.firstChild; 267 268 while ( _member ) 269 { 270 if( _member.getAttribute('photo') === '1' ) 271 { 272 var uid = _member.getAttribute('value'); 273 uid = uid.substr(uid.indexOf(';') + 1); 274 _member.style.backgroundImage = 'url(' + path_jabberit + 'inc/getphoto.php?uid=' + uid + ')'; 275 } 276 _config(_member, 'onclick', _show); 277 278 _member = _member.nextSibling; 279 } 280 } 281 282 _loading.style.display = "block"; 283 284 if(!_particiExt.checked) 285 { 286 _conn.go( 287 '$this.contacts_im.list_contacts', 288 function(_data) 263 264 var _member = _target.firstChild; 265 266 while ( _member ) 289 267 { 290 getUsersLdap(_data); 291 _loading.style.display = "none"; 292 }, 293 'name='+ arguments[0] 294 ); 295 } 296 else 297 { 298 299 function checkMail(pMail) 300 { 301 var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/); 302 if(er.test(pMail)) 303 return true; 304 else 305 return false; 306 } 307 308 if( checkMail(arguments[0]) ) 309 { 310 _conn.go( 311 '$this.ldap_im.list_participants_externals', 312 function(data) 313 { 314 getUsersLdap(data); 315 _loading.style.display = "none"; 316 }, 317 'mail=' + arguments[0] 318 ); 319 } 320 else 321 { 322 alert(jabberitGetLang('Inform a valid e-mail!')); 323 _loading.style.display = "none"; 324 } 325 } 326 268 if( _member.getAttribute('photo') === '1' ) 269 { 270 var jid = _member.getAttribute('jid'); 271 var ou = _member.getAttribute('ou'); 272 273 var _img_path = path_jabberit + 'inc/webservice.php?' + Date.parse( new Date ); 274 _img_path += '&phpPhoto=' + jid + '&phpOu=' + ou; 275 276 _member.style.backgroundImage = 'url(' + _img_path + ')'; 277 } 278 _config(_member, 'onclick', _show); 279 280 _member = _member.nextSibling; 281 } 282 283 _loading.style.display = "none"; 284 }, 285 'name='+ arguments[0] 286 ); 327 287 } 328 288 -
trunk/jabberit_messenger/js/load.js
r868 r946 469 469 } 470 470 471 function openWindowParticipantsExternal()472 {473 if( arguments.length > 0)474 {475 var element = arguments[0];476 477 if( externalParticipantsJabberit != "" )478 {479 var orgPartExternal = externalParticipantsJabberit.split(",");480 481 var _splash = top.document.createElement('span');482 _splash.setAttribute('id','fast_splash_jabberit');483 _splash.style.backgroundColor = 'dedede';484 _splash.style.position = 'absolute';485 _splash.style.display = 'block';486 _splash.style.width = '200px';487 _splash.style.height = 'auto';488 _splash.style.margin = ( !is_ie ) ? '0px 5px 0px 130px' : '20px 0px 0px 0px';489 _splash.style.zIndex = '99999';490 _splash.style.border = '2px outset #000';491 _splash.onmouseout = function(){ _showhidden.hiddenObject(false); };492 _splash.onmouseover = function(){ _showhidden.hiddenObject(true); };493 494 for(var i = 0; i < orgPartExternal.length; i++)495 _splash.innerHTML += '<div style="margin:5px;border-bottom:1px dashed #000;cursor:default !important;">' + (i + 1) + " - " + orgPartExternal[i] + '</div>';496 497 _showhidden.action('onmouseover', 'onmouseout', _splash);498 element.appendChild(_splash);499 }500 }501 }502 503 471 function preferences() 504 472 { … … 839 807 Load.prototype.getElement = getElementStatus; 840 808 Load.prototype.keyPress = keyPressSearch; 841 Load.prototype.openWinParExt = openWindowParticipantsExternal;842 809 Load.prototype.search = searchUser; 843 810 Load.prototype.setItensStatus = setItensStatusMenu; -
trunk/jabberit_messenger/setup/phpgw_pt-br.lang
r910 r946 1 1 Add jabberit_messenger pt-br Adicionar 2 Add contact wait jabberit_messenger pt-br Adicionando contato aguarde 2 3 Add Contatct jabberit_messenger pt-br Adicionar Contato 3 4 Add Contacts jabberit_messenger pt-br Adicionar Contatos … … 43 44 deny jabberit_messenger pt-br Negar 44 45 Deny module's use by group common pt-br Restringir o Uso do Módulo por Grupo 45 E rror in the message! jabberit_messenger pt-br Erro na mensagem!46 E rror saving your preferences! jabberit_messenger pt-br Erro salvando suas preferências!46 E-mail jabberit_messenger pt-br E-mail 47 Edit jabberit_messenger pt-br Editar 47 48 Enable Auto Login IM jabberit_messenger pt-br Conectar Automaticamente IM 48 49 Enable the Expresso Messenger inside of the modules common pt-br Habilitar o Expresso Messenger dentro dos módulos 49 50 Enable the Expresso Messenger module jabberit_messenger pt-br Habilitar o módulo Expresso Messenger 51 Enter a GROUP jabberit_messenger pt-br Informe um GRUPO 52 Enter a NAME jabberit_messenger pt-br Informe um NOME 50 53 Enter a value greater than or equal to 1! jabberit_messenger pt-br Informe um valor igual ou maior que 1! 51 E-mail jabberit_messenger pt-br E-mail 54 Error in the message! jabberit_messenger pt-br Erro na mensagem! 55 Error saving your preferences! jabberit_messenger pt-br Erro salvando suas preferências! 52 56 Example jabberit_messenger pt-br Exemplo 53 57 External Participants common pt-br Participantes Externos … … 82 86 Name of Contacts jabberit_messenger pt-br Nome do Contato 83 87 Name Organization jabberit_messenger pt-br Nome Organização 88 New jabberit_messenger pt-br Novo 84 89 New Message! jabberit_messenger pt-br Nova Mensagem! 85 90 Nick jabberit_messenger pt-br Apelido -
trunk/jabberit_messenger/setup/setup.inc.php
r942 r946 8 8 $setup_info['jabberit_messenger']['name'] = 'jabberit_messenger'; 9 9 $setup_info['jabberit_messenger']['title'] = 'Jeti Applet'; 10 $setup_info['jabberit_messenger']['version'] = '0.7.1 2';10 $setup_info['jabberit_messenger']['version'] = '0.7.13'; 11 11 $setup_info['jabberit_messenger']['app_order'] = 9; 12 12 $setup_info['jabberit_messenger']['enable'] = 1; -
trunk/jabberit_messenger/templates/default/confServersJabber.tpl
r909 r946 11 11 <td colspan="2"> 12 12 <table width="100%;"> 13 <tr> 14 <td colspan="3"> 15 <label>{lang_Organization}</label> .: 16 <select id="organizations_ldap_jabberit"> 17 {options_ous_ldap} 18 </select> 13 <tr class="row_off"> 14 <td style="width:20%"> 15 <label>{lang_Organization}</label> 16 </td> 17 <td style="width:80%"> 18 <input id="organizationLdapJabberit" type="text" size="30" maxlength="30"/> 19 <label style="font-size:7pt !important;color:red;"> 20 {lang_Example} .: ORGANIZACAO ( ou específica ) ou * ( para todas ) 21 </label> 19 22 </td> 20 23 </tr> 21 <tr> 22 <td colspan="3"> 23 <label>{lang_ServerJabber}</label> .: 24 <input id="HostNameJabber" type="text" size="40" maxlength="40"/> 24 <tr class="row_off"> 25 <td style="width:20%"> 26 <label>{lang_ServerJabber}</label> 27 </td> 28 <td style="width:80%"> 29 <input id="hostNameJabberit" type="text" size="40" maxlength="40"/> 25 30 <label style="font-size:7pt !important;color:red;">{lang_Example} : jabber.server.com</label> 26 31 </td> 27 32 </tr> 28 <tr> 29 <td class="row_on" style="border:1px solid #00000"> 30 <input type="button" name="add" value="{lang_save}" onclick="constructScript.setConfServerJabber();"> 33 <tr class="row_off"> 34 <td style="width:20%"> 35 <label>Servidor Ldap</label> 36 </td> 37 <td style="width:80%"> 38 <input id="serverLdapJabberit" type="text" size="50" maxlength="50"/> 39 </td> 40 </tr> 41 <tr class="row_off"> 42 <td style="width:20%"> 43 <label>Contexto</label> 44 </td> 45 <td style="width:80%"> 46 <input id="contextLdapJabberit" type="text" size="50" maxlength="50"/> 47 </td> 48 </tr> 49 <tr class="row_off"> 50 <td style="width:20%"> 51 <label>Usuário Ldap</label> 52 </td> 53 <td style="width:80%"> 54 <input id="userLdapJabberit" type="text" size="50" maxlength="50"/> 55 </td> 56 </tr> 57 <tr class="row_off"> 58 <td style="width:20%"> 59 <label>Password</label> 60 </td> 61 <td style="width:80%"> 62 <input id="passwordLdapJabberit" type="password" size="40" maxlength="40"/> 63 </td> 64 </tr> 65 <tr class="row_off"> 66 <td colspan="2" style="border:1px solid #00000; width:100%;"> 67 <input type="button" name="add" value="{lang_save}" onclick="constructScript.setConfServerJabber();" /> 68 <input type="reset" name="reset" value="{lang_new}" /> 31 69 </td> 32 70 </tr> … … 43 81 <td align="left" class="row_on" style="width:40%">{lang_Organization}</td> 44 82 <td align="left" class="row_on" style="width:40% !important">{lang_ServerJabber}</td> 45 <td align="left" class="row_on" style="width:20% !important">{lang_Delete}</td> 83 <td align="left" class="row_on" style="width:10% !important">{lang_Edit}</td> 84 <td align="left" class="row_on" style="width:10% !important">{lang_Delete}</td> 46 85 </tr> 47 86 {value_Organizations_Servers} … … 51 90 <tr> 52 91 <td colspan="2" align="center"> 53 <input type="button" name="back" value="{lang_Back}" onClick="document.location.href='{action_url}'" >92 <input type="button" name="back" value="{lang_Back}" onClick="document.location.href='{action_url}'" /> 54 93 <br/> 55 94 </td> -
trunk/jabberit_messenger/templates/default/content.html
r596 r946 116 116 Clicando duas vezes com o botão esquerdo sobre o nome do contato escolhido, abrirá uma janela (figura 8), para a troca de mensagens. Nessa mesma janela existe um menu, o qual é possível 117 117 configurar o formato da fonte e enviar smiles.<br><br> 118 <img src="images/troca_de_mensagem.png" width=" 494" height="341" alt="Troca de Mensagens" title="Troca de Mensagens" align="bottom" style="margin-top:5px;"/><br>( figura 8 )118 <img src="images/troca_de_mensagem.png" width="300" height="351" alt="Troca de Mensagens" title="Troca de Mensagens" align="bottom" style="margin-top:5px;"/><br>( figura 8 ) 119 119 </div> 120 120 <br/> -
trunk/jabberit_messenger/templates/default/indexIM.tpl
r596 r946 128 128 <br/> 129 129 <br/> 130 <img src="templates/default/images/troca_de_mensagem.png" width=" 494" height="341" alt="Troca de Mensagens" title="Troca de Mensagens" align="left" style="margin-top:5px;"/>130 <img src="templates/default/images/troca_de_mensagem.png" width="300" height="351" alt="Troca de Mensagens" title="Troca de Mensagens" align="left" style="margin-top:5px;"/> 131 131 <br clear="all"/> 132 132 ( figura 8 ) -
trunk/jabberit_messenger/templates/default/setup.js
r898 r946 91 91 }, 92 92 "organization=" + organization); 93 } 94 95 function editHostsJabber() 96 { 97 if( arguments.length > 0 ) 98 { 99 _conn.go("$this.db_im.editHostJabber", 100 function(data) 101 { 102 var fields = [ 103 ['org','organizationLdapJabberit'], 104 ['jabberName','hostNameJabberit'], 105 ['serverLdap','serverLdapJabberit'], 106 ['contextLdap','contextLdapJabberit'], 107 ['user','userLdapJabberit'], 108 ['password','passwordLdapJabberit'] 109 ]; 110 111 data = data.split(';'); 112 113 for( var i = 0 ; i < data.length ; i++ ) 114 { 115 var values = data[i].split(':'); 116 117 for( var j in fields ) 118 if( values[0] == fields[j][0] ) 119 document.getElementById(fields[j][1]).value = values[1]; 120 } 121 122 },"item="+arguments[0]); 123 } 93 124 } 94 125 … … 136 167 { 137 168 values = values.substring(0,(values.length - 1 )); 138 _conn.go("$this. FileDefine.getParams","val=" + values);169 _conn.go("$this.fileDefine.ldapInternal","val=" + values); 139 170 return true; 140 171 } … … 194 225 addLdapAttributes(doc); 195 226 } 196 else 227 else // AQUI ESTÁ GERANDO O ARQUIVO // 197 228 { 198 229 if( doc ) … … 203 234 function setConfServerJabber() 204 235 { 205 var elementSel = document.getElementById('organizations_ldap_jabberit'); 206 var Organization = ""; 207 var inputHostJabber = ltrim(document.getElementById('HostNameJabber').value); 208 209 for(var i = 0; i < elementSel.options.length; i++) 210 { 211 if( elementSel.options[i].selected == true && elementSel.options[i].value != "-1" ) 212 Organization = elementSel.options[i].value; 213 } 214 215 if( Organization && inputHostJabber ) 216 { 217 _conn.go("$this.db_im.setHostJabber", 218 function(data) 219 { 220 var _params = { 221 'lang1': jabberitGetLang('Organization'), 222 'lang2': jabberitGetLang('Servers Jabber'), 223 'lang3': jabberitGetLang('Delete') 224 }; 225 226 var Table = document.getElementById('tableConfServersJabber'); 227 Table.parentNode.innerHTML = _xtools.parse( data, 'tableConfServersJabber.xsl', _params); 228 229 elementSel.options[0].selected = true; 230 document.getElementById('HostNameJabber').value = ""; 231 232 },"organization="+Organization+"&hostJabber="+inputHostJabber); 233 } 234 236 var orgLdap = document.getElementById('organizationLdapJabberit'); 237 var hostName = document.getElementById('hostNameJabberit'); 238 var serverLdap = document.getElementById('serverLdapJabberit'); 239 var contextLdap = document.getElementById('contextLdapJabberit'); 240 var userLdap = document.getElementById('userLdapJabberit'); 241 var pwdLdap = document.getElementById('passwordLdapJabberit'); 242 243 var ArrayConf = [ 244 ['orgLdap', 'Informe uma organizacao !'], 245 ['hostName', 'Informe o nome do servidor Jabber !'], 246 ['serverLdap', 'Informe o nome do servidor Ldap !'], 247 ['contextLdap', 'Informe um contexto Ldap !'], 248 ['userLdap', ''], 249 ['pwdLdap', ''] 250 ]; 251 252 for (var i in ArrayConf) 253 { 254 if( !ltrim(eval(ArrayConf[i][0]).value) && ltrim(ArrayConf[i][1]) ) 255 { 256 alert(ArrayConf[i][1]); 257 eval(ArrayConf[i][0]).focus(); 258 return false; 259 } 260 } 261 262 _conn.go("$this.db_im.setHostJabber", 263 function(data) 264 { 265 var _params = { 266 'lang1': jabberitGetLang('Organization'), 267 'lang2': jabberitGetLang('Servers Jabber'), 268 'lang3': jabberitGetLang('Delete'), 269 'lang4': jabberitGetLang('Edit') 270 }; 271 272 var Table = document.getElementById('tableConfServersJabber'); 273 Table.parentNode.innerHTML = _xtools.parse( data, 'tableConfServersJabber.xsl', _params); 274 275 for( var i in ArrayConf ) 276 eval(ArrayConf[i][0]).value = ""; 277 }, 278 "org="+orgLdap.value+"&jabberName="+hostName.value+ 279 "&serverLdap="+serverLdap.value+"&contextLdap="+contextLdap.value+ 280 "&user="+userLdap.value+"&password="+pwdLdap.value); 235 281 } 236 282 … … 314 360 var idElement = arguments[0]; 315 361 var elementTableTr = document.getElementById(idElement); 316 362 317 363 _conn.go("$this.db_im.removeHostsJabber", 318 364 function(data) … … 383 429 function constructScript(){} 384 430 431 constructScript.prototype.editHostsJ = editHostsJabber; 385 432 constructScript.prototype.removeHostsJ = removeHostsJabber; 386 433 constructScript.prototype.removeOrg = removeOrgLdapAttributes; -
trunk/jabberit_messenger/xsl/add_user.xsl
r908 r946 19 19 <input type="text" size="30" onclick="this.select();" onkeypress="javascript:loadscript.keyPress(event, this);" style="margin: 0 10 0 0px;"/> 20 20 <input type="image" src='../jabberit_messenger/templates/default/images/users.png' value="{$lang2}" onclick="javascript:loadscript.search(this);" /> 21 <div id="external_Participants_Jabberit" style="display:none;margin:3 0 0 0px;border-bottom:1px dashed #000;width:430px;">22 <input type="checkbox" name="checkbox_external_Participants_Jabberit" style="margin:10 5 0 0px;" onclick="javascript:loadscript.cLabel(this);"/>23 <span style="width:130px;"><xsl:value-of select="$lang8" /> .: </span> - <span onclick="javascript:loadscript.openWinParExt(this);" style="cursor:pointer;">24 <img src='../jabberit_messenger/templates/default/images/view.png' alt='Ver Organizações' title='Ver Organizações' />25 </span>26 </div>27 21 </div> 28 22 <br/> -
trunk/jabberit_messenger/xsl/list_ldap_contacts.xsl
r907 r946 23 23 <xsl:for-each select="data"> 24 24 <xsl:sort select="cn"/> 25 <span value="{mail};{uid}" jid="{jid}" photo="{photo}">25 <span value="{mail};{uid}" jid="{jid}" ou="{ou}" photo="{photo}"> 26 26 <span id="{mail};{uid}" style="display:none;"><xsl:value-of select="cn" /></span> 27 27 <b><xsl:value-of select="name(..)"/></b> -
trunk/jabberit_messenger/xsl/tableConfServersJabber.xsl
r897 r946 6 6 <xsl:param name="lang2" /> 7 7 <xsl:param name="lang3" /> 8 <xsl:param name="lang4" /> 8 9 9 10 <xsl:template match="/"> … … 12 13 <td align="left" class="row_on" style="width:40%"><xsl:value-of select="$lang1" /></td> 13 14 <td align="left" class="row_on" style="width:40% !important"><xsl:value-of select="$lang2" /></td> 14 <td align="left" class="row_on" style="width:20% !important"><xsl:value-of select="$lang3" /></td> 15 <td align="left" class="row_on" style="width:10% !important"><xsl:value-of select="$lang4" /></td> 16 <td align="left" class="row_on" style="width:10% !important"><xsl:value-of select="$lang3" /></td> 15 17 </tr> 16 18 <xsl:for-each select="return/confServer"> … … 18 20 <td><xsl:value-of select="@ou" /></td> 19 21 <td><xsl:value-of select="@serverName" /></td> 22 <td><a href="javascript:constructScript.editHostsJ('{.}');"><xsl:value-of select="$lang4" /></a></td> 20 23 <td><a href="javascript:constructScript.removeHostsJ('{.}');"><xsl:value-of select="$lang3" /></a></td> 21 24 </tr>
Note: See TracChangeset
for help on using the changeset viewer.