LSrelation : improve and make it easy to configure simple relation
[ldapsaisie.git] / doc / conf / LSobject / LSrelation.docbook
1 <sect2 id="config-LSobject-LSrelation">
2   <title>LSrelation</title>
3   <para>Cette section décrit la manière de configurer les relations entre les
4   &LSobjects; appelées &LSrelation;.</para>
5   <para>Dans le cadre d'une liaison dîte <emphasis>simple</emphasis>, c'est à
6   dire une liaison au travers la valeur d'un attribut qui fera directement
7   référence à un autre objet (<emphasis>DN</emphasis> ou la première valeur
8   d'un attribut de référence), pourra être configurée simplement en spécifiant
9   l'attribut de liaison et le type de valeur qu'il contient. Dans le cas d'une
10   liaison plus complexe, il sera possible de développer vous même des méthodes
11   de mise en relation.</para>
12   
13 <programlisting>
14 <citetitle>Structure</citetitle>
15 <![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSrelation'] = array (
16   'relation1' => array(
17     'label' => '[label de la relation]',
18     'emptyText' => "[texte affiché si aucune relation avec d'autres objets 
19                      n'existe pour l'objet courant]",
20     'LSobject' => '[le type d'LSobjet en relation]',
21
22     // Liaison simple
23     'linkAttribute' => '[attribut de liaison]',
24     'linkAttributeValue' => '[value de l'attribut de liaison]',
25
26     // Liaison complexe
27     'list_function' => '[méthode1]',
28     'getkeyvalue_function' => '[methode2]',
29     'update_function' => '[methode3]',
30     'remove_function' => '[methode4]',
31     'rename_function' => '[methode5]',
32     'canEdit_function' => '[methode6]',
33     'canEdit_attribute' => '[nom d'attribut]',
34
35     'rights' => array(
36       'LSprofile1' => 'r',
37       'LSprofile2' => 'w',
38       ...
39     )
40   )
41 );]]>
42 </programlisting>
43
44 <variablelist>
45 <title>Paramètres de configuration</title>
46
47 <varlistentry>
48   <term>label</term>
49   <listitem>
50     <simpara>Le label de la relation.</simpara>
51   </listitem>
52 </varlistentry>
53
54 <varlistentry>
55   <term>emptyText</term>
56   <listitem>
57     <simpara>Le texte à afficher pour décrire le fait que l'objet courant n'a
58     aucune relation d'établie avec d'autres &LSobjects;. Exemple (au sujet d'un
59     utilisateur) : <emphasis>N'appartient à aucun groupe.</emphasis></simpara>
60   </listitem>
61 </varlistentry>
62
63 <varlistentry>
64   <term>LSobject</term>
65   <listitem>
66     <simpara>Le type d'&LSobject; en relation avec le type courant.
67     <emphasis>(Facultatif en cas de liaison complexe)</emphasis></simpara>
68   </listitem>
69 </varlistentry>
70
71 <varlistentry>
72   <term>linkAttribute</term>
73   <listitem>
74     <simpara>Dans le cadre d'une relation simple, il s'agit de l'attribut de
75     liaison du type d'&LSobject; en relation avec le type courant, c'est à dire
76     l'attribut dans lequel on retrouve une valeur en relation avec l'objet
77     courant. <emphasis>(Facultatif en cas de liaison complexe)</emphasis></simpara>
78   </listitem>
79 </varlistentry>
80
81 <varlistentry>
82   <term>linkAttributeValue</term>
83   <listitem>
84     <simpara>Dans le cadre d'une relation simple, il s'agit du type de valeur pris
85     par l'attribut de liaison du type d'&LSobject; en relation avec le type courant.
86     Il peut s'agir du mot clé <literal>dn</literal> si l'attribut de liaison contient
87     le <emphasis>DN</emphasis> de l'objet courant ou bien le nom d'un attribut du type
88     d'objet courant dont la première valeur sera stockée par l'attribut de liaison.
89     <emphasis>(Facultatif en cas de liaison simple)</emphasis></simpara>
90   </listitem>
91 </varlistentry>
92
93 <varlistentry>
94   <term>list_function</term>
95   <listitem>
96     <simpara>La méthode de la classe du type d'&LSobject; en relation, permettant
97     de lister les objets de ce type en relation avec l'objet courant.
98     <emphasis>(Facultatif en cas de liaison simple)</emphasis></simpara>
99   </listitem>
100 </varlistentry>
101
102 <varlistentry>
103   <term>getkeyvalue_function</term>
104   <listitem>
105     <simpara>La méthode de la classe du type d'&LSobject; en relation, permettant
106     d'obtenir la valeur clé à stocker pour établir la relation entre l'objet
107     courant et d'autres objets du type concerné. <emphasis>(Facultatif en cas de
108     liaison simple)</emphasis></simpara>
109   </listitem>
110 </varlistentry>
111
112 <varlistentry>
113   <term>update_function</term>
114   <listitem>
115     <simpara>La méthode de la classe du type d'&LSobject; en relation, permettant
116     de mettre à jour les relations existantes entre l'objet courant et les objets
117     du type concerné. Cette liste d'objets en relation est établie par
118     l'utilisateur à travers l'interface. <emphasis>(Facultatif en cas de liaison
119     simple)</emphasis></simpara>
120   </listitem>
121 </varlistentry>
122
123 <varlistentry>
124   <term>remove_function</term>
125   <listitem>
126     <simpara>La méthode de la classe du type d'&LSobject; en relation permettant
127     de supprimer une relation existante entre l'objet courant et un objet du 
128     type concerné. <emphasis>(Facultatif en cas de liaison simple)</emphasis>
129     </simpara>
130   </listitem>
131 </varlistentry>
132
133 <varlistentry>
134   <term>rename_function</term>
135   <listitem>
136     <simpara>La méthode de la classe du type d'&LSobject; en relation permettant
137     d'effectuer les actions nécessaires lorsque l'objet courant est renommé dans
138     le but de maintenir les valeurs clés permettant d'établir les relations entre
139     l'objet courant et les objets en relation avec lui. <emphasis>(Facultatif en
140     cas de liaison simple)</emphasis></simpara>
141   </listitem>
142 </varlistentry>
143
144 <varlistentry>
145   <term>canEdit_function</term>
146   <listitem>
147     <simpara>La méthode de la classe du type d'&LSobject; en relation permettant
148     de vérifier que l'utilisateur à le droit de modifier la relation avec un objet
149     en particulier. <emphasis>(Facultatif en cas de liaison simple)</emphasis>
150     </simpara>
151   </listitem>
152 </varlistentry>
153
154 <varlistentry>
155   <term>canEdit_attribute</term>
156   <listitem>
157     <simpara>Le nom de l'attibut du type d'&LSobject; en relation devant être
158     éditable par l'utilisateur pour que celui-ci puisse modifier la relation.
159     Dans le cadre d'une relation simple, celui-ci peut, si nécessaire, être
160     différent du paramètre <literal>linkAttribute</literal>.</simpara>
161   </listitem>
162 </varlistentry>
163
164 <varlistentry>
165   <term>rights</term>
166   <listitem>
167     <simpara>Tableau associatif dont les clés sont les noms des &LSprofiles; ayant
168     des droits sur cette relation et dont les valeurs associées sont les droits
169     correspondants. La valeur des droits d'un &LSprofile; peut être
170     <literal>r</literal> pour le droit de lecture ou <literal>w</literal> pour
171     le droit de lecture-écriture.Par défaut, un &LSprofile; n'a aucun droit.</simpara>
172   </listitem>
173 </varlistentry>
174
175 </variablelist>
176
177 </sect2>