Samba 4 fix
This commit is contained in:
parent
0d9508def1
commit
98ce4e3edf
|
@ -3,7 +3,7 @@
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
Copyright (C) 2004 David Smith
|
Copyright (C) 2004 David Smith
|
||||||
modified to fit for LDAP Account Manager 2005 - 2006 Roland Gruber
|
modified to fit for LDAP Account Manager 2005 - 2013 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -127,7 +127,7 @@ class ObjectClass extends SchemaItem
|
||||||
{
|
{
|
||||||
$this->initVars();
|
$this->initVars();
|
||||||
$class = $raw_ldap_schema_string;
|
$class = $raw_ldap_schema_string;
|
||||||
$strings = preg_split ("/[\s,]+/", $class, -1,PREG_SPLIT_DELIM_CAPTURE);
|
$strings = preg_split ('/[\s,]+/', $class, -1,PREG_SPLIT_DELIM_CAPTURE);
|
||||||
for($i=0; $i<count($strings); $i++) {
|
for($i=0; $i<count($strings); $i++) {
|
||||||
switch($strings[$i]) {
|
switch($strings[$i]) {
|
||||||
case '(':
|
case '(':
|
||||||
|
@ -140,7 +140,7 @@ class ObjectClass extends SchemaItem
|
||||||
$this->name = $strings[$i];
|
$this->name = $strings[$i];
|
||||||
else
|
else
|
||||||
$this->name .= " " . $strings[$i];
|
$this->name .= " " . $strings[$i];
|
||||||
}while(!preg_match("/\'$/s", $strings[$i]));
|
}while(!preg_match('/\'$/s', $strings[$i]));
|
||||||
} else {
|
} else {
|
||||||
$i++;
|
$i++;
|
||||||
do {
|
do {
|
||||||
|
@ -149,13 +149,13 @@ class ObjectClass extends SchemaItem
|
||||||
$this->name = $strings[$i];
|
$this->name = $strings[$i];
|
||||||
else
|
else
|
||||||
$this->name .= " " . $strings[$i];
|
$this->name .= " " . $strings[$i];
|
||||||
} while(!preg_match("/\'$/s", $strings[$i]));
|
} while(!preg_match('/\'$/s', $strings[$i]));
|
||||||
do {
|
do {
|
||||||
$i++;
|
$i++;
|
||||||
}while(!preg_match('/\)+\)?/',$strings[$i]));
|
}while(!preg_match('/\)+\)?/',$strings[$i]));
|
||||||
}
|
}
|
||||||
$this->name = preg_replace("/^\'/", "", $this->name);
|
$this->name = preg_replace('/^\'/', "", $this->name);
|
||||||
$this->name = preg_replace("/\'$/", "", $this->name);
|
$this->name = preg_replace('/\'$/', "", $this->name);
|
||||||
break;
|
break;
|
||||||
case 'DESC':
|
case 'DESC':
|
||||||
do {
|
do {
|
||||||
|
@ -164,7 +164,7 @@ class ObjectClass extends SchemaItem
|
||||||
$this->description=$this->description . $strings[$i];
|
$this->description=$this->description . $strings[$i];
|
||||||
else
|
else
|
||||||
$this->description=$this->description . " " . $strings[$i];
|
$this->description=$this->description . " " . $strings[$i];
|
||||||
}while(!preg_match("/\'$/s", $strings[$i]));
|
}while(!preg_match('/\'$/s', $strings[$i]));
|
||||||
break;
|
break;
|
||||||
case 'OBSOLETE':
|
case 'OBSOLETE':
|
||||||
$this->is_obsolete = TRUE;
|
$this->is_obsolete = TRUE;
|
||||||
|
@ -192,11 +192,19 @@ class ObjectClass extends SchemaItem
|
||||||
$this->type='auxiliary';
|
$this->type='auxiliary';
|
||||||
break;
|
break;
|
||||||
case 'MUST':
|
case 'MUST':
|
||||||
if (preg_match("/^\(./",$strings[$i+1]))
|
if (preg_match('/^\(./',$strings[$i+1]))
|
||||||
{
|
{
|
||||||
$i++;
|
$i++;
|
||||||
$attr = new ObjectClassAttribute(preg_replace("/^\(/","",$strings[$i]), $this->name);
|
$attr = new ObjectClassAttribute(preg_replace('/^\(/',"",$strings[$i]), $this->name);
|
||||||
array_push ($this->must_attrs, $attr);
|
array_push ($this->must_attrs, $attr);
|
||||||
|
do {
|
||||||
|
$i++;
|
||||||
|
if($strings[$i]!="$")
|
||||||
|
{
|
||||||
|
$attr = new ObjectClassAttribute($strings[$i], $this->name);
|
||||||
|
array_push ($this->must_attrs, $attr);
|
||||||
|
}
|
||||||
|
}while(! preg_match('/\)+\)?/',$strings[$i+1]));
|
||||||
}
|
}
|
||||||
elseif($strings[$i+1]!="(")
|
elseif($strings[$i+1]!="(")
|
||||||
{
|
{
|
||||||
|
@ -217,11 +225,20 @@ class ObjectClass extends SchemaItem
|
||||||
sort($this->must_attrs);
|
sort($this->must_attrs);
|
||||||
break;
|
break;
|
||||||
case 'MAY':
|
case 'MAY':
|
||||||
if (preg_match("/^\(./",$strings[$i+1]))
|
if (preg_match('/^\(./',$strings[$i+1]))
|
||||||
{
|
{
|
||||||
$i++;
|
$i++;
|
||||||
$attr = new ObjectClassAttribute(preg_replace("/^\(/","",$strings[$i]), $this->name);
|
$attr = new ObjectClassAttribute(preg_replace('/^\(/',"",$strings[$i]), $this->name);
|
||||||
array_push ($this->may_attrs, $attr);
|
array_push ($this->may_attrs, $attr);
|
||||||
|
do
|
||||||
|
{
|
||||||
|
$i++;
|
||||||
|
if($strings[$i]!="$")
|
||||||
|
{
|
||||||
|
$attr = new ObjectClassAttribute($strings[$i], $this->name);
|
||||||
|
array_push ($this->may_attrs, $attr);
|
||||||
|
}
|
||||||
|
}while(! preg_match('/\)+\)?/',$strings[$i+1]));
|
||||||
}
|
}
|
||||||
elseif($strings[$i+1]!="(")
|
elseif($strings[$i+1]!="(")
|
||||||
{
|
{
|
||||||
|
@ -243,13 +260,13 @@ class ObjectClass extends SchemaItem
|
||||||
sort($this->may_attrs);
|
sort($this->may_attrs);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if(preg_match ("/[\d\.]+/i",$strings[$i]) && $i == 1)
|
if(preg_match ('/[\d\.]+/i',$strings[$i]) && $i == 1)
|
||||||
$this->oid = $strings[$i];
|
$this->oid = $strings[$i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->description = preg_replace("/^\'/", "", $this->description);
|
$this->description = preg_replace('/^\'/', "", $this->description);
|
||||||
$this->description = preg_replace("/\'$/", "", $this->description);
|
$this->description = preg_replace('/\'$/', "", $this->description);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1525,7 +1542,7 @@ function _get_raw_schema($schema_to_fetch, $dn='' )
|
||||||
function get_schema_objectclasses($dn=null, $use_cache=true )
|
function get_schema_objectclasses($dn=null, $use_cache=true )
|
||||||
{
|
{
|
||||||
if( $use_cache && cached_schema_available('objectclasses' ) ) {
|
if( $use_cache && cached_schema_available('objectclasses' ) ) {
|
||||||
return get_cached_schema('objectclasses' );
|
// return get_cached_schema('objectclasses' );
|
||||||
}
|
}
|
||||||
|
|
||||||
$raw_oclasses = _get_raw_schema('objectclasses', $dn );
|
$raw_oclasses = _get_raw_schema('objectclasses', $dn );
|
||||||
|
|
Loading…
Reference in New Issue