Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
fusiondirectory
fusiondirectory
Commits
0223b172
Commit
0223b172
authored
Jan 24, 2017
by
Côme Chilliet
Browse files
Fixed TODO in class_objects.inc to cache parsed filters and avoid parsing them several times
parent
0c9de786
Changes
3
Hide whitespace changes
Inline
Side-by-side
include/class_listing.inc
View file @
0223b172
...
...
@@ -233,7 +233,7 @@ class listing
'image'
=>
$i
[
'icon'
],
'category'
=>
$i
[
'aclCategory'
],
'class'
=>
$i
[
'mainTab'
],
'filter'
=>
ldapFilter
::
parse
(
$i
[
'filter'
]
),
'filter'
=>
objects
::
getFilterObject
(
$type
),
'nameAttr'
=>
$i
[
'nameAttr'
],
);
}
...
...
include/class_objects.inc
View file @
0223b172
...
...
@@ -247,12 +247,27 @@ class objects
static
function
isOfType
(
$attrs
,
$type
)
{
//TODO : cache ldapFilter objects?
$infos
=
static
::
infos
(
$type
);
$filter
=
ldapFilter
::
parse
(
$infos
[
'filter'
]);
$filter
=
static
::
getFilterObject
(
$type
);
return
$filter
(
$attrs
);
}
/* This method allows to cache parsed filter in filterObject key in objectTypes */
static
function
getFilterObject
(
$type
)
{
global
$config
;
if
(
!
isset
(
$config
->
data
[
'OBJECTS'
][
strtoupper
(
$type
)]))
{
throw
new
NonExistingObjectTypeException
(
'Non-existing type "'
.
$type
.
'"'
);
}
$infos
=&
$config
->
data
[
'OBJECTS'
][
strtoupper
(
$type
)];
if
(
!
isset
(
$infos
[
'filterObject'
]))
{
$infos
[
'filterObject'
]
=
ldapFilter
::
parse
(
$infos
[
'filter'
]);
}
return
$infos
[
'filterObject'
];
}
static
function
types
()
{
global
$config
;
...
...
include/simpleplugin/class_simpleManagement.inc
View file @
0223b172
...
...
@@ -299,13 +299,14 @@ class simpleManagement
$i
[
'icon'
]
=
''
;
}
$filterObject
=
objects
::
getFilterObject
(
$object
);
$this
->
headpage
->
objectTypes
[
$object
]
=
array
(
'label'
=>
$i
[
'name'
],
'category'
=>
$i
[
'aclCategory'
],
'class'
=>
$i
[
'mainTab'
],
'image'
=>
$i
[
'icon'
],
'filter'
=>
ldapFilter
::
parse
(
$i
[
'filter'
])
,
'filter'
=>
$filterObject
,
'nameAttr'
=>
$i
[
'nameAttr'
],
);
if
(
!
$this
->
skipTemplates
)
{
...
...
@@ -320,7 +321,7 @@ class simpleManagement
'&'
,
array
(
new
ldapFilterLeaf
(
'objectClass'
,
'='
,
'fdTemplate'
),
fdTemplateFilter
(
ldapFilter
::
parse
(
$i
[
'filter'
])
),
fdTemplateFilter
(
$filterObject
),
)
),
'nameAttr'
=>
$i
[
'nameAttr'
],
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment