mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-22 18:09:06 +01:00
Add visibleTo parameter to extra displayed columns
This commit is contained in:
parent
e5406e924f
commit
caa45fcc12
4 changed files with 45 additions and 5 deletions
|
@ -54,6 +54,10 @@ configuration des &LSobjects;, dans la variable <varname>LSsearch</varname>
|
||||||
'formaterLSformat' => '[LSformat]',
|
'formaterLSformat' => '[LSformat]',
|
||||||
'formaterFunction' => '[fonction de formatage]',
|
'formaterFunction' => '[fonction de formatage]',
|
||||||
'cssStyle' => '[CSS style]',
|
'cssStyle' => '[CSS style]',
|
||||||
|
'visibleTo' => array (
|
||||||
|
'[LSprofile 1]',
|
||||||
|
'[LSprofile 2]'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'customActions' => array (
|
'customActions' => array (
|
||||||
|
@ -304,6 +308,14 @@ contexte dans lequel cette recherche est effectuée.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>visibleTo</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara>Ce paramètre permet de restreindre la visibilité de cette colonne aux seuls
|
||||||
|
&LSprofiles; spécifiés. S'il est omis, la colonne sera visible pour tous.</simpara>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
|
@ -1088,6 +1088,18 @@ class LSsearch {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elseif ($key=='visibleExtraDisplayedColumns') {
|
||||||
|
if ($this->params['extraDisplayedColumns'] && is_array($this -> config['extraDisplayedColumns'])) {
|
||||||
|
$ret=array();
|
||||||
|
foreach($this->config['extraDisplayedColumns'] as $col => $conf) {
|
||||||
|
if (isset($conf['visibleTo']) && !LSsession :: isLSprofiles($this -> basedn, $conf['visibleTo'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$ret[$col]=$conf;
|
||||||
|
}
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
throw new Exception('Incorrect property !');
|
throw new Exception('Incorrect property !');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1796,8 +1796,8 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Dit si l'utilisateur est du profil pour le DN spécifié
|
* Dit si l'utilisateur est du profil pour le DN spécifié
|
||||||
*
|
*
|
||||||
* @param[in] string $profile de l'objet
|
|
||||||
* @param[in] string $dn DN de l'objet
|
* @param[in] string $dn DN de l'objet
|
||||||
|
* @param[in] string $profile Profil
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur est du profil sur l'objet, false sinon.
|
* @retval boolean True si l'utilisateur est du profil sur l'objet, false sinon.
|
||||||
*/
|
*/
|
||||||
|
@ -1815,6 +1815,22 @@ class LSsession {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dit si l'utilisateur est d'au moins un des profils pour le DN spécifié
|
||||||
|
*
|
||||||
|
* @param[in] string $dn DN de l'objet
|
||||||
|
* @param[in] string $profiles Profils
|
||||||
|
*
|
||||||
|
* @retval boolean True si l'utilisateur est d'au moins un profil sur l'objet, false sinon.
|
||||||
|
*/
|
||||||
|
public static function isLSprofiles($dn,$profiles) {
|
||||||
|
foreach ($profiles as $profile) {
|
||||||
|
if (self :: isLSprofile($dn,$profile))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne qui est l'utilisateur par rapport à l'object
|
* Retourne qui est l'utilisateur par rapport à l'object
|
||||||
*
|
*
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
</th>
|
</th>
|
||||||
{/if}
|
{/if}
|
||||||
{if $LSsearch->extraDisplayedColumns}
|
{if $LSsearch->extraDisplayedColumns}
|
||||||
{foreach from=$LSsearch->extraDisplayedColumns item=conf key=cid}
|
{foreach from=$LSsearch->visibleExtraDisplayedColumns item=conf key=cid}
|
||||||
<th class='LSobject-list'{if $conf.cssStyle} style="{$conf.cssStyle}"{/if}>
|
<th class='LSobject-list'{if $conf.cssStyle} style="{$conf.cssStyle}"{/if}>
|
||||||
{if $LSsearch->sort}
|
{if $LSsearch->sort}
|
||||||
<a href='view.php?LSobject={$LSsearch->LSobject}&sortBy={$cid}&nocache={$smarty.now}'>
|
<a href='view.php?LSobject={$LSsearch->LSobject}&sortBy={$cid}&nocache={$smarty.now}'>
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
<td class='LSobject-list LSobject-list-names'><a href='view.php?LSobject={$LSsearch->LSobject}&dn={$object->dn|escape:'url'}' class='LSobject-list'>{$object->displayName}</a> </td>
|
<td class='LSobject-list LSobject-list-names'><a href='view.php?LSobject={$LSsearch->LSobject}&dn={$object->dn|escape:'url'}' class='LSobject-list'>{$object->displayName}</a> </td>
|
||||||
{if $LSsearch->displaySubDn}<td class='LSobject-list'>{$object->subDn}</td>{/if}
|
{if $LSsearch->displaySubDn}<td class='LSobject-list'>{$object->subDn}</td>{/if}
|
||||||
{if $LSsearch->extraDisplayedColumns}
|
{if $LSsearch->extraDisplayedColumns}
|
||||||
{foreach from=$LSsearch->extraDisplayedColumns item=conf key=cid}
|
{foreach from=$LSsearch->visibleExtraDisplayedColumns item=conf key=cid}
|
||||||
<td class='LSobject-list'{if $conf.cssStyle} style="{$conf.cssStyle}"{/if}>{$object->$cid}</td>
|
<td class='LSobject-list'{if $conf.cssStyle} style="{$conf.cssStyle}"{/if}>{$object->$cid}</td>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{foreachelse}
|
{foreachelse}
|
||||||
<tr class='LSobject-list'>
|
<tr class='LSobject-list'>
|
||||||
<td colspan='{if $LSsearch->extraDisplayedColumns}{count($LSsearch->extraDisplayedColumns)+3}{else}3{/if}' class='LSobject-list-without-result'>
|
<td colspan='{if $LSsearch->extraDisplayedColumns}{count($LSsearch->visibleExtraDisplayedColumns)+3}{else}3{/if}' class='LSobject-list-without-result'>
|
||||||
{$LSsearch->label_no_result}
|
{$LSsearch->label_no_result}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
Loading…
Reference in a new issue