index 339eca51fa81568fbe32d504acbb43a1207faba1..8e9fb9fabedc754e7f4d94d632a6e890075e8e3b 100644 (file)
--- a/include/class_config.inc
+++ b/include/class_config.inc
$xmldata= fread($fh, 100000);
fclose($fh);
if(!xml_parse($this->parser, chop($xmldata))){
- print_red(sprintf(_("XML error in gosa.conf: %s at line %d"),
+ print_red(sprintf(_("XML error in %s: %s at line %d"),
+ CONFIG_FILE,
xml_error_string(xml_get_error_code($this->parser)),
xml_get_current_line_number($this->parser)));
echo $_SESSION['errors'];
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";
}
$this->current['PASSWORD']= $referral['PASSWORD'];
}
+ /* Possibly load kerberos style */
+ if (isset($this->current['KRBSASL'])){
+ if (preg_match('/^(yes|true)$/i', $this->current['KRBSASL'])){
+ $this->current['KRBSASL']= "sasl";
+ } else {
+ $this->current['KRBSASL']= "kerberos";
+ }
+ } else {
+ $this->current['KRBSASL']= "kerberos";
+ }
+
/* Load server informations */
$this->load_servers();
}
/* 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 glpi servers */
$ret = array();
$depth ++;
- /* Walk through array */
+ /* 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;
}