Compare commits

...

2 commits

Author SHA1 Message Date
Benjamin Renard
466dec4a64 doc: fix syntax error in previous commit 2022-09-28 17:24:54 +02:00
Benjamin Renard
dcf68a2330 LSprofiles by LSobject: add possibility to compute basedn using LSformat on authenticated user 2022-09-28 16:50:24 +02:00
2 changed files with 13 additions and 9 deletions

View file

@ -203,7 +203,7 @@ objets pour lesquels l'utilisateur appartiendra au
// or
'filter' => [format du filtre de recherche],
'basedn' => [basedn de recherche],
'basedn' => [format du basedn de recherche],
'params' => [configuration de la recherche]
),
array (
@ -215,7 +215,7 @@ objets pour lesquels l'utilisateur appartiendra au
// ou
'filter' => [format du filtre de recherche],
'basedn' => [basedn de recherche],
'basedn' => [format du basedn de recherche],
'params' => [configuration de la recherche]
),
),
@ -232,12 +232,13 @@ la valeur clé <emphasis>LSobjects</emphasis> signifie qu'on est dans un cas de
délégation de droits sur des types d'LSobject. Dans ce tableau associatif, il
est possible de définir un ou plusieurs types de LSobject pour lesquels on délègue
des droits via des recherches simples ou enchaînées. Le fonctionnement simple
consiste à partir de l'objet de l'utilisateur et à générer un filtre de
consiste à partir de l'objet de l'utilisateur et à générer un filtre et une base de
recherche sur un type de LSobject. Le fonctionnement enchainée consiste à faire
un première recherche à partir de l'objet de l'utilisateur puis à recommencer à
partir des objets trouvés en construisant une liste de filtres de recherche
pour chaque objet qui seront combinés via l'opérateur booléen
<emphasis>ou</emphasis>.</para>
<emphasis>ou</emphasis>. Dans le cadre d'un fonctionnement enchainée, la base de
recherche est toujours générer à partir de l'objet de l'utilisateur connecté.</para>
<para>Pour configurer une délégation de type simple on mettra le nom du
LSobject dans la clé du tableau et dans la valeur un tableau définissant la
@ -298,9 +299,12 @@ objets retournés. Les paramètres de la recherche sont&nbsp;:
<varlistentry>
<term>basedn</term>
<listitem>
<simpara>C'est le <emphasis>basedn</emphasis> de la recherche. Il est possible
ainsi de la limiter sur les LSojects d'une branche précise de l'annuaire.
<emphasis>(Paramètre facultatif)</emphasis></simpara>
<simpara>C'est le format paramétrable du <emphasis>basedn</emphasis> de la
recherche généré à partir de l'utilisateur connecté. Il est possible ainsi
de la limiter sur les LSojects d'une branche précise de l'annuaire.
Voir le paragraphe <link linkend="config-LSformat">Format paramètrable</link>
pour plus d'informations sur l'écriture du format. <emphasis>(Paramètre
facultatif)</emphasis></simpara>
</listitem>
</varlistentry>

View file

@ -1934,7 +1934,7 @@ class LSsession {
}
$filter = LSldap::combineFilters('or', $filters);
$params = array(
'basedn' => isset($filter_def['basedn']) ? $filter_def['basedn'] : $basedn,
'basedn' => isset($filter_def['basedn']) ? self :: getLSuserObject() -> getFData($filter_def['basedn']) : $basedn,
'filter' => $filter,
'onlyAccessible' => False
);
@ -1971,7 +1971,7 @@ class LSsession {
}
# we are gonna grow a set of objects progressively, we start from the user
$set = array(self :: getLSuserObject());
$basedn = isset($listInfos['basedn']) ? $listInfos['basedn'] : null;
$basedn = isset($listInfos['basedn']) ? self :: getLSuserObject() -> getFData($listInfos['basedn']) : null;
$LSobject = isset($listInfos['LSobject']) ? $listInfos['LSobject'] : $LSobject;
if (isset($listInfos['filters']) && is_array($listInfos['filters'])) {