index 473319751d283abd023c7546e5177cd5228864a6..a7d3a53b6a0e17e7001f2bde8a2ab0560a667325 100644 (file)
--- a/include/class_config.inc
+++ b/include/class_config.inc
if (!isset($this->current['GROUPS'])){
$this->current['GROUPS']= "ou=groups";
}
+
+ if (isset($this->current['INITIAL_BASE'])){
+ $_SESSION['CurrentMainBase']= $this->current['INITIAL_BASE'];
+ }
+
+ /* Remove possibly added ',' from end of group and people ou */
+ $this->current['GROUPS'] = preg_replace("/,*$/","",$this->current['GROUPS']);
+ $this->current['PEOPLE'] = preg_replace("/,*$/","",$this->current['PEOPLE']);
+
if (!isset($this->current['WINSTATIONS'])){
$this->current['WINSTATIONS']= "ou=winstations,ou=systems";
}
'PASSWORD' => $attrs['goFaxPassword'][0]);
}
+
/* Get asterisk servers */
$ldap->cd ($this->current['BASE']);
$ldap->search ("(objectClass=goFonServer)");
+ $this->data['SERVERS']['FON']= array();
if ($ldap->count()){
- $attrs= $ldap->fetch();
- $this->data['SERVERS']['FON']= array(
- 'SERVER' => $attrs['cn'][0],
- 'LOGIN' => $attrs['goFonAdmin'][0],
- 'PASSWORD' => $attrs['goFonPassword'][0],
- 'DB' => "gophone",
- 'SIP_TABLE' => "sip_users",
- 'EXT_TABLE' => "extensions",
- 'VOICE_TABLE' => "voicemail_users",
- 'QUEUE_TABLE' => "queues",
- 'QUEUE_MEMBER_TABLE' => "queue_members");
+ while ($attrs= $ldap->fetch()){
+
+ /* Add 0 entry for development */
+ if(count($this->data['SERVERS']['FON']) == 0){
+ $this->data['SERVERS']['FON'][0]= array(
+ 'DN' => $attrs['dn'],
+ 'SERVER' => $attrs['cn'][0],
+ 'LOGIN' => $attrs['goFonAdmin'][0],
+ 'PASSWORD' => $attrs['goFonPassword'][0],
+ 'DB' => "gophone",
+ 'SIP_TABLE' => "sip_users",
+ 'EXT_TABLE' => "extensions",
+ 'VOICE_TABLE' => "voicemail_users",
+ 'QUEUE_TABLE' => "queues",
+ 'QUEUE_MEMBER_TABLE' => "queue_members");
+ }
+
+ /* Add entry with 'dn' as index */
+ $this->data['SERVERS']['FON'][$attrs['dn']]= array(
+ 'DN' => $attrs['dn'],
+ 'SERVER' => $attrs['cn'][0],
+ 'LOGIN' => $attrs['goFonAdmin'][0],
+ 'PASSWORD' => $attrs['goFonPassword'][0],
+ 'DB' => "gophone",
+ 'SIP_TABLE' => "sip_users",
+ 'EXT_TABLE' => "extensions",
+ 'VOICE_TABLE' => "voicemail_users",
+ 'QUEUE_TABLE' => "queues",
+ 'QUEUE_MEMBER_TABLE' => "queue_members");
+ }
}
- /* Get asterisk servers */
+
+ /* Get glpi server */
$ldap->cd ($this->current['BASE']);
$ldap->search ("(&(objectClass=goGlpiServer)(cn=*)(goGlpiAdmin=*)(goGlpiDatabase=*))",array("cn","goGlpiPassword","goGlpiAdmin","goGlpiDatabase"));
if ($ldap->count()){
'PASSWORD' => $attrs['goGlpiPassword'][0],
'DB' => $attrs['goGlpiDatabase'][0]);
}
+
+
/* Get logdb server */
$ldap->cd ($this->current['BASE']);
$ldap->search ("(objectClass=goLogDBServer)");
'PASSWORD' => $attrs['goLogPassword'][0]);
}
+
+ /* GOsa logging databases */
+ $ldap->cd ($this->current['BASE']);
+ $ldap->search ("(objectClass=gosaLogServer)");
+ if ($ldap->count()){
+ while($attrs= $ldap->fetch()){
+ $this->data['SERVERS']['LOGGING'][$attrs['cn'][0]]=
+ array(
+ 'DN' => $attrs['dn'],
+ 'USER' => $attrs['goLogDBUser'][0],
+ 'DB' => $attrs['goLogDB'][0],
+ 'PWD' => $attrs['goLogDBPassword'][0]);
+ }
+ }
+
+
/* Get NFS server lists */
$tmp= array("default");
$ldap->cd ($this->current['BASE']);
$depth ++;
/* Walk through array */
+ ksort($arr);
foreach($arr as $name => $entries){
/* If this department is the last in the current tree position
if(isset($entries['ENTRY'])){
$a = "";
for($i = 0 ; $i < $depth ; $i ++){
- $a.=" ";
+ $a.=".";
}
$ret[$entries['ENTRY']]=$a." ".$name;
}
function getShareList($listboxEntry = false)
{
$ldap= $this->get_ldap_link();
- $a_res = $ldap->search("(objectClass=goShareServer)",array("goExportEntry","cn"));
- $return= array();
- while($entry = $ldap->fetch($a_res)){
- if(isset($entry['goExportEntry']['count'])){
- unset($entry['goExportEntry']['count']);
- }
- if(isset($entry['goExportEntry'])){
- foreach($entry['goExportEntry'] as $export){
- $shareAttrs = split("\|",$export);
- if($listboxEntry) {
- $return[$shareAttrs[0]."|".$entry['cn'][0]] = $shareAttrs[0]." - ".$entry['cn'][0];
- }else{
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['server'] = $entry['cn'][0];
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['name'] = $shareAttrs[0];
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['description'] = $shareAttrs[1];
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['type'] = $shareAttrs[2];
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['charset'] = $shareAttrs[3];
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['path'] = $shareAttrs[4];
- $return[$shareAttrs[0]."|".$entry['cn'][0]]['option'] = $shareAttrs[5];
+ $base = $this->current['BASE'];
+ $res= get_list("(&(objectClass=goShareServer)(goExportEntry=*))","server",$base,array("goExportEntry","cn"),GL_SUBSEARCH);
+ $return = array();
+
+ foreach($res as $entry){
+ if(obj_is_readable($entry['dn'], "server/goShareServer","goExportEntry")){
+
+ if(isset($entry['goExportEntry']['count'])){
+ unset($entry['goExportEntry']['count']);
+ }
+ if(isset($entry['goExportEntry'])){
+ foreach($entry['goExportEntry'] as $export){
+ $shareAttrs = split("\|",$export);
+ if($listboxEntry) {
+ $return[$shareAttrs[0]."|".$entry['cn'][0]] = $shareAttrs[0]." - ".$entry['cn'][0];
+ }else{
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['server'] = $entry['cn'][0];
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['name'] = $shareAttrs[0];
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['description'] = $shareAttrs[1];
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['type'] = $shareAttrs[2];
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['charset'] = $shareAttrs[3];
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['path'] = $shareAttrs[4];
+ $return[$shareAttrs[0]."|".$entry['cn'][0]]['option'] = $shareAttrs[5];
+ }
}
}
- }
+ }
}
+
return($return);
}
$return = array();
$ui = get_userinfo();
$base = $config->current['BASE'];
- $res = get_list("(&(objectClass=goShareServer)(goExportEntry=*))",$ui->subtreeACL,$base,array("goExportEntry","cn"),GL_SUBSEARCH);
+
+ $res= get_list("(&(objectClass=goShareServer)(goExportEntry=*))", "server", $base,array("goExportEntry","cn"),GL_SUBSEARCH);
foreach($res as $entry){
- if(isset($entry['goExportEntry']['count'])){
- unset($entry['goExportEntry']['count']);
- }
- foreach($entry['goExportEntry'] as $share){
- $a_share = split("\|",$share);
- $sharename = $a_share[0];
- $return[$entry['cn'][0]."|".$sharename] = $entry['cn'][0]." [".$sharename."]";
+ if(obj_is_readable($entry['dn'], "server/goShareServer","goExportEntry")){
+ if(isset($entry['goExportEntry']['count'])){
+ unset($entry['goExportEntry']['count']);
+ }
+ foreach($entry['goExportEntry'] as $share){
+ $a_share = split("\|",$share);
+ $sharename = $a_share[0];
+ $return[$entry['cn'][0]."|".$sharename] = $entry['cn'][0]." [".$sharename."]";
+ }
}
-
}
return($return);
}