mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-22 01:49:08 +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]',
|
||||
'formaterFunction' => '[fonction de formatage]',
|
||||
'cssStyle' => '[CSS style]',
|
||||
'visibleTo' => array (
|
||||
'[LSprofile 1]',
|
||||
'[LSprofile 2]'
|
||||
)
|
||||
)
|
||||
),
|
||||
'customActions' => array (
|
||||
|
@ -304,6 +308,14 @@ contexte dans lequel cette recherche est effectuée.</para>
|
|||
</listitem>
|
||||
</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>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
|
|
@ -1088,6 +1088,18 @@ class LSsearch {
|
|||
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 {
|
||||
throw new Exception('Incorrect property !');
|
||||
}
|
||||
|
|
|
@ -1796,9 +1796,9 @@ class LSsession {
|
|||
/**
|
||||
* 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 $profile Profil
|
||||
*
|
||||
* @retval boolean True si l'utilisateur est du profil sur l'objet, false sinon.
|
||||
*/
|
||||
public static function isLSprofile($dn,$profile) {
|
||||
|
@ -1814,6 +1814,22 @@ class LSsession {
|
|||
}
|
||||
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
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
</th>
|
||||
{/if}
|
||||
{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}>
|
||||
{if $LSsearch->sort}
|
||||
<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>
|
||||
{if $LSsearch->displaySubDn}<td class='LSobject-list'>{$object->subDn}</td>{/if}
|
||||
{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>
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
@ -107,7 +107,7 @@
|
|||
</tr>
|
||||
{foreachelse}
|
||||
<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}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
Loading…
Reference in a new issue