lemonldap-ng/po-doc/fr/pages/documentation/current/exportedvars.html
Xavier Guimard bf74d0fdab Update doc
2017-04-13 17:00:28 +00:00

166 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:exportedvars</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,exportedvars"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="exportedvars.html"/>
<link rel="contents" href="exportedvars.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:exportedvars","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/lib/scripts/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/lib/scripts/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="exported_variables">Variables exportées</h1>
<div class="level1">
</div><!-- EDIT1 SECTION "Exported variables" [1-34] -->
<h2 class="sectionedit2" id="presentation">Présentation</h2>
<div class="level2">
<p>
Les variables exportées sont des variables disponibles pour <a href="writingrulesand_headers.html" class="wikilink1" title="documentation:2.0:writingrulesand_headers">écrire des règles d'accès et des en-têtes</a>. Elles sont extraites de la base de données des utilisateurs par le <a href="start.html#authentication_users_and_password_databases" class="wikilink1" title="documentation:2.0:start">module utilisateurs</a>.
</p>
<p>
Pour créer une variable, il faut simplement associer des attributs utilisateurs dans <abbr title="LemonLDAP::NG">LL::NG</abbr> en utilisant <code>Variables</code> » <code>Variables exportées</code>. Pour chaque variable, le premier champ est le nom qui servira dans les règles, macros ou en-têtes et le second est le nom du champ dans la base de données utilisateurs.
</p>
<p>
Exemples pour <a href="authldap.html" class="wikilink1" title="documentation:2.0:authldap">LDAP</a> :
</p>
<div class="table sectionedit3"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign"> Nom de Variable </th><th class="col1 centeralign"> Attribut LDAP </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0 centeralign"> uid </td><td class="col1 centeralign"> uid </td>
</tr>
<tr class="row2 roweven">
<td class="col0 centeralign"> numero </td><td class="col1 centeralign"> employeeNumber </td>
</tr>
<tr class="row3 rowodd">
<td class="col0 centeralign"> nom </td><td class="col1 centeralign"> sn </td>
</tr>
</table></div><!-- EDIT3 TABLE [587-693] -->
<p>
On peut définir des variables exportées pour chaque module dans sa propre configuration. Les variables définies dans le <code>Variables exportées</code> principal seront utilisées dans chaque backend. Celle définies dans le nœud « variables exportées » du module ne e seront que pour celui-ci.
</p>
<p>
<img src="documentation/manager-exported-variables.png" class="mediacenter" title="Variables exportées dans le manager" alt="Variables exportées dans le manager" />
</p>
<div class="notetip">You can define environment variables in <code>Exported variables</code>, this allows one to populate user session with some environment values. Les variables d'environnement ne seront pas demandées à la base de données utilisateurs.
</div>
</div><!-- EDIT2 SECTION "Presentation" [35-1271] -->
<h2 class="sectionedit4" id="extend_variables_using_macros_and_groups">Étendre les variables en utilisant les macros et groups</h2>
<div class="level2">
</div><!-- EDIT5 PLUGIN_INCLUDE_START_NOREDIRECT "documentation:2.0:performances" [0-] -->
<div class="plugin_include_content plugin_include__documentation:2.0:performances">
<div class="level3">
<p>
Les macros et les groupes sont calculées pendant le processus d'authentification par le portail :
</p>
<ul>
<li class="level1"><div class="li"> Les macros sont utilisées pour étendre (ou réécrire) les <span class="curid"><a href="exportedvars.html" class="wikilink1" title="documentation:2.0:exportedvars">variables exportées</a></span>. Une macro est stockée comme un attribut : elle peut contenir le résultat d'un calcul booléen ou n'importe quelle chaîne de caractères</div>
</li>
<li class="level1"><div class="li"> macros can also be used to import environment variables <em>(these variables are in CGI format)</em>. Example: <code>$ENV{HTTP_COOKIE}</code></div>
</li>
<li class="level1"><div class="li"> les groupes sont stockées en chaîne de caractères séparées par des espaces dans l'attribut spécial “groups” : il contient les noms des groupes dont la règle à retournée une valeur non nulle pour l'utilisateur courant</div>
</li>
<li class="level1"><div class="li"> On peut également définir des groupes dans <code>$hGroups</code> qui est une référence à une table de hashage de la forme :</div>
</li>
</ul>
<pre class="code perl"><span class="re0">$hGroups</span> <span class="sy0">=</span> <span class="br0">{</span>
<span class="st_h">'group3'</span> <span class="sy0">=&gt;</span> <span class="br0">{</span>
<span class="st_h">'description'</span> <span class="sy0">=&gt;</span> <span class="br0">[</span>
<span class="st_h">'Service 3'</span><span class="sy0">,</span>
<span class="st_h">'Service 3 TEST'</span>
<span class="br0">]</span><span class="sy0">,</span>
<span class="st_h">'cn'</span> <span class="sy0">=&gt;</span> <span class="br0">[</span>
<span class="st_h">'group3'</span>
<span class="br0">]</span><span class="sy0">,</span>
<span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'group3'</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="st_h">'admin'</span> <span class="sy0">=&gt;</span> <span class="br0">{</span>
<span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'admin'</span>
<span class="br0">}</span>
<span class="br0">}</span></pre>
<p>
Exemples de macros:
</p>
<pre class="code perl"><span class="co1"># macro booléenne</span>
isAdmin <span class="sy0">-&gt;</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st_h">'foo'</span> <span class="kw1">or</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st_h">'bar'</span>
<span class="co1"># autre macro </span>
displayName <span class="sy0">-&gt;</span> <span class="re0">$givenName</span><span class="sy0">.</span><span class="st0">" "</span><span class="sy0">.</span><span class="re0">$surName</span>
&nbsp;
<span class="co1"># Utiliser une macro booléenne dans une règle</span>
<span class="sy0">^/</span>admin <span class="sy0">-&gt;</span> <span class="re0">$isAdmin</span>
<span class="co1"># Utiliser une macro chaîne dans un en-tête HTTP</span>
Display<span class="sy0">-</span>Name <span class="sy0">-&gt;</span> <span class="re0">$displayName</span></pre>
<p>
Exemples de groupes:
</p>
<pre class="code perl"><span class="co1"># group</span>
admin <span class="sy0">-&gt;</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st_h">'foo'</span> <span class="kw1">or</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st_h">'bar'</span>
&nbsp;
<span class="co1"># Use a group in a rule</span>
<span class="sy0">^/</span>admin <span class="sy0">-&gt;</span> <span class="re0">$groups</span> <span class="sy0">=~</span> <span class="co2">/\badmin\b/</span>
&nbsp;
<span class="co1"># Or with hGroups</span>
<span class="sy0">^/</span>admin <span class="sy0">-&gt;</span> <a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a> <span class="re0">$hGroups</span><span class="sy0">-&gt;</span><span class="br0">{</span><span class="st_h">'admin'</span><span class="br0">}</span></pre>
<div class="noteclassic">Noter que les groupes sont calculés après les macros, donc une règle de groupe peut utiliser une valeur issue d'une macro.
</div><div class="noteimportant">Les macros et groupes sont calculés dans l'ordre alpha-numerique, c'est à dire dans l'ordre d'affichage dans le manager. Par exemple, la macro “macro1” sear calculée avant la macro “macro2” : donc l'expression de macro2 peut utiliser la valeur $macro1. De même pour les groupes : une règle de groupe peut en utiliser une autre calculée précédemment.
</div>
</div><!-- EDIT6 PLUGIN_INCLUDE_END "documentation:2.0:performances" [0-] -->
</div>
<div class="level2">
</div><!-- EDIT4 SECTION "Extend variables using macros and groups" [1272-] -->
</div>
</body>
</html>