lemonldap-ng/po-doc/fr/pages/documentation/current/notifications.html
Clément Oudot ea00b9d6c3 New FR doc
2016-10-15 17:57:54 +00:00

411 lines
25 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:notifications</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,notifications"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="notifications.html"/>
<link rel="contents" href="notifications.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.min.css"/>
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:notifications","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script>
</head>
<body>
<div class="dokuwiki export container"><!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#installation">Installation</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#activation">Activation</a></div></li>
<li class="level2"><div class="li"><a href="#storage">Stockage</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="#file">File</a></div></li>
<li class="level3"><div class="li"><a href="#dbi">DBI</a></div></li>
<li class="level3"><div class="li"><a href="#ldap">LDAP</a></div></li>
</ul>
</li>
<li class="level2"><div class="li"><a href="#wildcard">Carte blanche</a></div></li>
<li class="level2"><div class="li"><a href="#custom_xslt_file">Fichier XSLT personnalisé</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#using_notification_system">Utiliser le système de notification</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#notification_format">Format des notifications</a></div></li>
<li class="level2"><div class="li"><a href="#create_new_notifications_with_notifications_explorer">Créer de nouvelles notifications avec l'explorateur des notifications</a></div></li>
<li class="level2"><div class="li"><a href="#notifications_trough_soap">Notifications via SOAP</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="#insertion_example_in_perl">Exemple d'insertion en Perl</a></div></li>
<li class="level3"><div class="li"><a href="#deletion_example_in_perl">Exemple d'effacement en Perl</a></div></li>
</ul>
</li>
<li class="level2"><div class="li"><a href="#test_notification">Tester les notifications</a></div></li>
</ul></li>
</ul>
</div>
</div><!-- TOC END -->
<h1 class="sectionedit1" id="notifications_system">Systèmes de notification</h1>
<div class="level1">
<p>
Depuis la version 0.9.4, LemonLDAP::NG peut être utilisé pour notifier des messages aux utilisateurs : si un utilisateur a un message, celui-ci est affiché lorsqu'il accède au portail. Si le message contient des cases à cocher, l'utilisateur doit toutes les cocher, sinon il ne peut obtenir de cookie de session.
</p>
<p>
Depuis la version 1.1.0, un explorateur de notifications est disponible dans le manager, et les notifications peuvent être faites pour tous les utilisateurs, avec possibilité d'affichage conditionnel. Lorsque l'utilisateur accepte la notification, la référence est stockée dans ses données de session persistentes.
</p>
</div><!-- EDIT1 SECTION "Notifications system" [1-586] -->
<h2 class="sectionedit2" id="installation">Installation</h2>
<div class="level2">
</div><!-- EDIT2 SECTION "Installation" [587-612] -->
<h3 class="sectionedit3" id="activation">Activation</h3>
<div class="level3">
<p>
Il suffit d'activer les notifications dans le manager (Paramètres généraux &gt; Paramètres avancés &gt; Notifications &gt; Activation) ou dans lemonldap-ng.ini :
</p>
<pre class="code file ini"><span class="re0"><span class="br0">[</span>portal<span class="br0">]</span></span>
<span class="re1">notification</span> <span class="sy0">=</span><span class="re2"> 1</span></pre>
</div><!-- EDIT3 SECTION "Activation" [613-831] -->
<h3 class="sectionedit4" id="storage">Stockage</h3>
<div class="level3">
<p>
Par défaut, les notifications sont stockées dans la même base de données que la configuration :
</p>
<ul>
<li class="level1"><div class="li"> si “File” est utilisé et que “dirName” vaut /usr/local/lemonldap-ng/conf/, les notifications seront stockées dans /usr/local/lemonldap-ng/notifications/</div>
</li>
<li class="level1"><div class="li"> si “CDBI” ou “RDBI” est utilisé, les notifications sont stockées dans la même base de données que la configuration et la table est nommée “notifications”.</div>
</li>
<li class="level1"><div class="li"> si “LDAP” est utilisé, les notifications sont stockées dans la même arborescence que la configuration et la branche est nommée “notifications”.</div>
</li>
</ul>
<p>
On peut changer les paramètres par défaut en utilisant les paramètres “notificationStorage” et “notificationStorageOptions” avec la même syntaxe que les paramètres de stockage de la configuration. pour ce faire dans le manager, aller dans Paramètres généraux &gt; Paramètres avancés &gt; Notifications.
</p>
</div>
<h4 id="file">File</h4>
<div class="level4">
<p>
Les paramètres pour le backend File sont les mêmes que ceux du <a href="fileconfbackend.html" class="wikilink1" title="documentation:2.0:fileconfbackend">backend de configuration File</a>.
</p>
<div class="noteimportant">Il faut créer soi-même le répertoire et y donner un accès en écriture pour l'utilisateur Apache. Par exemple :
<pre class="code">mkdir /usr/local/lemonldap-ng/notifications/
chown www-data /usr/local/lemonldap-ng/notifications/</pre>
</div><div class="notetip">Le séparateur par défaut des noms de fichiers est <code>_</code>, ce qui peut poser problème si on enregistre des notifications pour des utilsateur ayant un caractère <code>_</code> dans leur nom de connexion. On peut changer ce séparateur en changeant la valeur de l'option <code>fileNameSeparator</code> par exemple <code>@</code>.
</div>
<p>
Pour résumer les options disponibles :
</p>
<ul>
<li class="level1"><div class="li"> <strong>dirName</strong> : répertoire dans lequel sont stockées les notifications.</div>
</li>
<li class="level1"><div class="li"> <strong>fileNameSeparator</strong> : séparateur de nom de fichier.</div>
</li>
</ul>
</div>
<h4 id="dbi">DBI</h4>
<div class="level4">
<p>
Les paramètres pour le backend <abbr title="Database Interface">DBI</abbr> sont les mêmes que ceux du <a href="sqlconfbackend.html" class="wikilink1" title="documentation:2.0:sqlconfbackend">backend de configuration DBI</a>.
</p>
<div class="noteimportant">Il faut créer soi-même la table :
<pre class="code sql"><span class="kw1">CREATE</span> <span class="kw1">TABLE</span> notifications <span class="br0">(</span>
<span class="kw1">DATE</span> datetime <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span>
uid <span class="kw1">VARCHAR</span><span class="br0">(</span><span class="nu0">255</span><span class="br0">)</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span>
<span class="kw1">REF</span> <span class="kw1">VARCHAR</span><span class="br0">(</span><span class="nu0">255</span><span class="br0">)</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span>
cond <span class="kw1">VARCHAR</span><span class="br0">(</span><span class="nu0">255</span><span class="br0">)</span> <span class="kw1">DEFAULT</span> <span class="kw1">NULL</span><span class="sy0">,</span>
xml longblob <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span>
done datetime <span class="kw1">DEFAULT</span> <span class="kw1">NULL</span><span class="sy0">,</span>
<span class="kw1">PRIMARY</span> <span class="kw1">KEY</span> <span class="br0">(</span><span class="kw1">DATE</span><span class="sy0">,</span> uid<span class="sy0">,</span><span class="kw1">REF</span><span class="br0">)</span>
<span class="br0">)</span></pre>
</div>
<p>
Pour résumer les options disponibles :
</p>
<ul>
<li class="level1"><div class="li"> <strong>dbiChain</strong> : chaîne de connexion <abbr title="Database Interface">DBI</abbr>.</div>
</li>
<li class="level1"><div class="li"> <strong>dbiUser</strong> : utilisateur <abbr title="Database Interface">DBI</abbr>.</div>
</li>
<li class="level1"><div class="li"> <strong>dbiPassword</strong> : mot-de-passe <abbr title="Database Interface">DBI</abbr>.</div>
</li>
<li class="level1"><div class="li"> <strong>table</strong> : nom de la table des notifications.</div>
</li>
</ul>
</div>
<h4 id="ldap">LDAP</h4>
<div class="level4">
<p>
Les paramètres pour le backend LDAP sont les mêmes que ceux du <a href="ldapconfbackend.html" class="wikilink1" title="documentation:2.0:ldapconfbackend">backend de configuration LDAP</a>.
</p>
<div class="noteimportant">Il faut toutefois créer manuellement la branche
</div>
<p>
Pour résumer les options disponibles :
</p>
<ul>
<li class="level1"><div class="li"> <strong>ldapServer</strong> : <abbr title="Uniform Resource Locator">URL</abbr> du serveur LDAP.</div>
</li>
<li class="level1"><div class="li"> <strong>ldapBindDN</strong> : utilisateur LDAP.</div>
</li>
<li class="level1"><div class="li"> <strong>ldapBindPassword</strong> : mot-de-passe LDAP.</div>
</li>
<li class="level1"><div class="li"> <strong>ldapConfBase</strong> : <abbr title="Distinguished Name">DN</abbr> de la branche des notifications.</div>
</li>
</ul>
</div><!-- EDIT4 SECTION "Storage" [832-3326] -->
<h3 class="sectionedit5" id="wildcard">Carte blanche</h3>
<div class="level3">
<p>
Le module de notifications utilise une carte blanche pour gérer les notifications destinées à tous les utilisateurs. La valeur par défaut de cette carte blanche est <code>allusers</code>, mais on peut la changer si <code>allusers</code> est un nom d'utilisateur.
</p>
<p>
Pour le changer, aller dans Paramètres généraux &gt; Paramètres avancés &gt; Notifications &gt; Carte blanche pour tous les utilisateurs, et mettre par exemple <code>alluserscustom</code>.
</p>
<p>
Ainsi, créer une notification pour <code>alluserscustom</code> affichera la notification à tous les utilisateurs.
</p>
</div><!-- EDIT5 SECTION "Wildcard" [3327-3796] -->
<h3 class="sectionedit6" id="custom_xslt_file">Fichier XSLT personnalisé</h3>
<div class="level3">
<p>
La transformation entre le texte XML d'une notification et l'affichage HTML est faite par XSLT. Le fichier XSLT par défaut est portal/skins/common/notification.xsl. On peut créer son propre fichier XSLT et le stocker à un autre endroit, par exemple /etc/lemonldap-ng. Configure ensuite le nouveau fichier XSLT dans le manager, aller dans Paramètres généraux &gt; Paramètres avancés &gt; Notifications &gt; Fichier XSLT personnalisé et mettre par exemple <code>/etc/lemonldap-ng/notification.xsl</code>.
</p>
</div><!-- EDIT6 SECTION "Custom XSLT file" [3797-4269] -->
<h2 class="sectionedit7" id="using_notification_system">Utiliser le système de notification</h2>
<div class="level2">
</div><!-- EDIT7 SECTION "Using notification system" [4270-4308] -->
<h3 class="sectionedit8" id="notification_format">Format des notifications</h3>
<div class="level3">
<p>
Les notifications sont des fichiers XML contenant :
</p>
<ul>
<li class="level1"><div class="li"> élément(s) &lt;notification&gt; :</div>
<ul>
<li class="level2"><div class="li"> Attibuts requis :</div>
<ul>
<li class="level3"><div class="li"> date : date de création (format AAAA-MM-JJ)</div>
</li>
<li class="level3"><div class="li"> ref : une référence qui peut être utilisée plus tard pour connaître ce qui a été notifié et quand</div>
</li>
<li class="level3"><div class="li"> uid : le nom de connexion de l'utilisateur (il doit correspondre à l'attribut utilisé dans le paramètre whatToTrace, uid par défaut), ou la carte blanche (par défaut : <code>allusers</code>) si la notification doit être affichée à tous les utilisateurs.</div>
</li>
</ul>
</li>
<li class="level2"><div class="li"> Attributs optionnels :</div>
<ul>
<li class="level3"><div class="li"> condition : condition pour afficher la notification, peut utiliser toutes les variables de session.</div>
</li>
</ul>
</li>
<li class="level2"><div class="li"> Éléments subordonnés :</div>
<ul>
<li class="level3"><div class="li"> &lt;title&gt; : titre à afficher : sera inséré dans la page <abbr title="HyperText Markup Language">HTML</abbr> encadré dans &lt;h2 class=“notifText”&gt;&lt;/h2&gt;</div>
</li>
<li class="level3"><div class="li"> &lt;subtitle&gt; : sous-titre : sera inséré dans la page <abbr title="HyperText Markup Language">HTML</abbr> encadré dans &lt;h2 class=“notifText”&gt;&lt;/h2&gt;</div>
</li>
<li class="level3"><div class="li"> &lt;text&gt; : paragraphe à afficher : sera inséré dans la page <abbr title="HyperText Markup Language">HTML</abbr> encadré dans &lt;p class=“notifText”&gt;&lt;/p&gt;</div>
</li>
<li class="level3"><div class="li"> &lt;check&gt; : paragraphe à afficher avec une case à cocher : sera inséré dans la page <abbr title="HyperText Markup Language">HTML</abbr> encadré dans &lt;p class=“notifCheck”&gt;&lt;input type=“checkbox” /&gt;&lt;/p&gt;</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="noteimportant">Tous les autres éléments seront supprimés y compris les balises <abbr title="HyperText Markup Language">HTML</abbr> telles &lt;b&gt;.
</div><div class="notetip">Un document XML de notification peut contenir plusieurs messages de notification.
</div>
<p>
Exemple :
</p>
<pre class="code file xml"><span class="sc3"><span class="re1"><?xml version="1.0" encoding="UTF-8"?></span></span>
<span class="sc3"><span class="re1">&lt;root<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;notification</span> <span class="re0">uid</span>=<span class="st0">"foo.bar"</span> <span class="re0">date</span>=<span class="st0">"2009-01-27"</span> <span class="re0">reference</span>=<span class="st0">"ABC"</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;title<span class="re2">&gt;</span></span></span>Vous avez de nouvelles autorisations<span class="sc3"><span class="re1">&lt;/title<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;subtitle<span class="re2">&gt;</span></span></span>Application 1<span class="sc3"><span class="re1">&lt;/subtitle<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;text<span class="re2">&gt;</span></span></span>Vous êtes autorisé à accéder à appli-1<span class="sc3"><span class="re1">&lt;/text<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;subtitle<span class="re2">&gt;</span></span></span>Application 2<span class="sc3"><span class="re1">&lt;/subtitle<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;text<span class="re2">&gt;</span></span></span>Vous êtes autorisé à accéder à appli-2<span class="sc3"><span class="re1">&lt;/text<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;subtitle<span class="re2">&gt;</span></span></span>Acceptation<span class="sc3"><span class="re1">&lt;/subtitle<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;check<span class="re2">&gt;</span></span></span>Je reconnais savoir que je peux accéder à appli-1 <span class="sc3"><span class="re1">&lt;/check<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;check<span class="re2">&gt;</span></span></span>Je reconnais savoir que je peux accéder à appli-2 <span class="sc3"><span class="re1">&lt;/check<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/notification<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;notification</span> <span class="re0">uid</span>=<span class="st0">"allusers"</span> <span class="re0">date</span>=<span class="st0">"2009-01-27"</span> <span class="re0">reference</span>=<span class="st0">"disclaimer"</span> <span class="re0">condition</span>=<span class="st0">"$ipAddr =~ /^192/"</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;title<span class="re2">&gt;</span></span></span>Ceci est votre premier accès à ce système<span class="sc3"><span class="re1">&lt;/title<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;text<span class="re2">&gt;</span></span></span>Soyez sage et ne le cassez pas.<span class="sc3"><span class="re1">&lt;/text<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;check<span class="re2">&gt;</span></span></span>Bien sûr, je ne suis pas méchant !<span class="sc3"><span class="re1">&lt;/check<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/notification<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/root<span class="re2">&gt;</span></span></span></pre>
</div><!-- EDIT8 SECTION "Notification format" [4309-6407] -->
<h3 class="sectionedit9" id="create_new_notifications_with_notifications_explorer">Créer de nouvelles notifications avec l'explorateur des notifications</h3>
<div class="level3">
<p>
Dans le manager, cliquer sur l'<code>explorateur des notifications</code> et ensuite sur le bouton <code>Créer</code>.
</p>
<p>
<img src="documentation/manager-notification.png" class="mediacenter" alt="" />
</p>
<p>
Remplir ensuite tous les champs pour créer la notification. Seule la condition n'est pas exigée.
</p>
<p>
Lorsque tout est bon, cliquer sur <code>Sauver</code>.
</p>
</div><!-- EDIT9 SECTION "Create new notifications with notifications explorer" [6408-6726] -->
<h3 class="sectionedit10" id="notifications_trough_soap">Notifications via SOAP</h3>
<div class="level3">
<p>
Les nouvelles notifications peuvent être insérées en utilisant des requêtes SOAP (décrites dans le fichier WSDL généré par l'utilitaire buildPortalWSDL). Pour activer SOAP sur le portal :
</p>
<ul>
<li class="level1"><div class="li"> Activer SOAP dans Paramètres généraux » Paramètres avancés » SOAP</div>
</li>
<li class="level1"><div class="li"> Activer le service SOAP de notifications dans la configuration Apache :</div>
</li>
</ul>
<pre class="code file apache"><span class="co1"># SOAP functions for notification insertion (disabled by default)</span>
&lt;<span class="kw3">Location</span> /index.pl/notification&gt;
<span class="kw1">Order</span> <span class="kw1">deny</span>,<span class="kw1">allow</span>
<span class="kw1">Deny</span> from <span class="kw2">all</span>
<span class="kw1">Allow</span> from 192.168.2.0/<span class="nu0">24</span>
&lt;/<span class="kw3">Location</span>&gt;</pre>
</div>
<h4 id="insertion_example_in_perl">Exemple d'insertion en Perl</h4>
<div class="level4">
<pre class="code perl"><span class="co1">#!/usr/bin/perl</span>
&nbsp;
<span class="kw2">use</span> SOAP<span class="sy0">::</span><span class="me2">Lite</span><span class="sy0">;</span>
<span class="kw2">use</span> utf8<span class="sy0">;</span>
&nbsp;
<span class="kw1">my</span> <span class="re0">$lite</span> <span class="sy0">=</span> SOAP<span class="sy0">::</span><span class="me2">Lite</span>
<span class="sy0">-&gt;</span><span class="me1">uri</span><span class="br0">(</span><span class="st_h">'urn:Lemonldap::NG::Common::CGI::SOAPService'</span><span class="br0">)</span>
<span class="sy0">-&gt;</span><span class="me1">proxy</span><span class="br0">(</span><span class="st_h">'http://auth.example.com/index.pl/notification'</span><span class="br0">)</span><span class="sy0">;</span>
&nbsp;
&nbsp;
<span class="re0">$r</span> <span class="sy0">=</span> <span class="re0">$lite</span><span class="sy0">-&gt;</span><span class="me1">newNotification</span><span class="br0">(</span>
<span class="st_h">'<?xml version="1.0" encoding="UTF-8" standalone="no"?>
&lt;root&gt;
&lt;notification uid="foo.bar" date="2009-01-27" reference="ABC"&gt;
&lt;text&gt; You have been granted to access to appli-1 &lt;/text&gt;
&lt;text&gt; You have been granted to access to appli-2 &lt;/text&gt;
&lt;check&gt; I know that I can acces to appli-1 &lt;/check&gt;
&lt;check&gt; I know that I can acces to appli-2 &lt;/check&gt;
&lt;/notification&gt;
&lt;/root&gt;
'</span><span class="br0">)</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">(</span> <span class="re0">$r</span><span class="sy0">-&gt;</span><span class="me1">fault</span> <span class="br0">)</span> <span class="br0">{</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="kw2">STDERR</span> <span class="st0">"SOAP Error: "</span> <span class="sy0">.</span> <span class="re0">$r</span><span class="sy0">-&gt;</span><span class="me1">fault</span><span class="sy0">-&gt;</span><span class="br0">{</span>faultstring<span class="br0">}</span><span class="sy0">;</span>
<span class="br0">}</span>
<span class="kw1">else</span> <span class="br0">{</span>
<span class="kw1">my</span> <span class="re0">$res</span> <span class="sy0">=</span> <span class="re0">$r</span><span class="sy0">-&gt;</span><span class="me1">result</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">"$res notification(s) have been inserted<span class="es0">\n</span>"</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
<p>
On peut également effacer certaines notifications avec SOAP, si SOAP est activé :
</p>
</div>
<h4 id="deletion_example_in_perl">Exemple d'effacement en Perl</h4>
<div class="level4">
<pre class="code perl"><span class="co1">#!/usr/bin/perl</span>
&nbsp;
<span class="kw2">use</span> SOAP<span class="sy0">::</span><span class="me2">Lite</span><span class="sy0">;</span>
<span class="kw2">use</span> utf8<span class="sy0">;</span>
&nbsp;
<span class="kw1">my</span> <span class="re0">$lite</span> <span class="sy0">=</span> SOAP<span class="sy0">::</span><span class="me2">Lite</span>
<span class="sy0">-&gt;</span><span class="me1">uri</span><span class="br0">(</span><span class="st_h">'urn:Lemonldap::NG::Common::CGI::SOAPService'</span><span class="br0">)</span>
<span class="sy0">-&gt;</span><span class="me1">proxy</span><span class="br0">(</span><span class="st_h">'http://auth.example.com/index.pl/notification'</span><span class="br0">)</span><span class="sy0">;</span>
&nbsp;
&nbsp;
<span class="re0">$r</span> <span class="sy0">=</span> <span class="re0">$lite</span><span class="sy0">-&gt;</span><span class="me1">deleteNotification</span><span class="br0">(</span><span class="st_h">'foo.bar'</span><span class="sy0">,</span> <span class="st_h">'ABC'</span><span class="br0">)</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">(</span> <span class="re0">$r</span><span class="sy0">-&gt;</span><span class="me1">fault</span> <span class="br0">)</span> <span class="br0">{</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="kw2">STDERR</span> <span class="st0">"SOAP Error: "</span> <span class="sy0">.</span> <span class="re0">$r</span><span class="sy0">-&gt;</span><span class="me1">fault</span><span class="sy0">-&gt;</span><span class="br0">{</span>faultstring<span class="br0">}</span><span class="sy0">;</span>
<span class="br0">}</span>
<span class="kw1">else</span> <span class="br0">{</span>
<span class="kw1">my</span> <span class="re0">$res</span> <span class="sy0">=</span> <span class="re0">$r</span><span class="sy0">-&gt;</span><span class="me1">result</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="st0">"$res notification(s) have been deleted<span class="es0">\n</span>"</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div><!-- EDIT10 SECTION "Notifications trough SOAP" [6727-8623] -->
<h3 class="sectionedit11" id="test_notification">Tester les notifications</h3>
<div class="level3">
<p>
Il suffit d'insérer une notification et de se connecter au portail en utilisant le même UID. Le message sera affiché.
</p>
<p>
<img src="documentation/portal-notification.png" class="mediacenter" alt="" />
</p>
<p>
Essayer alors de créer une notification globale (à l'utilisateur “allusers”), et se connecter avec n'importe quel compte, le message sera affiché.
</p>
</div><!-- EDIT11 SECTION "Test notification" [8624-] -->
</div>
</body>
</html>