3893f3ee80e5a8b52e9aa31ff3265878b0e7f9ee
[ldapsaisie.git] / trunk / conf / LSobjects / config.LSobjects.LSeepeople.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 $GLOBALS['LSobjects']['LSeepeople'] = array (
24   'objectclass' => array(
25     'top',
26     'lspeople',
27     'posixAccount',
28     'sambaSamAccount',
29   ),
30   'rdn' => 'uid',
31   'container_dn' => 'ou=people',
32   'container_auto_create' => array(
33     'objectclass' => array(
34       'top',
35       'organizationalUnit'
36     ),
37     'attrs' => array(
38       'ou' => 'people'
39     )
40   ),
41   'before_modify' => 'valid',
42   'after_modify' => 'valid',
43   'after_create' => 'createMaildirByFTP',
44   'after_delete' => 'removeMaildirByFTP',
45   'select_display_attrs' => '%{cn}',
46   'label' => _('Utilisateurs'),
47   'relations' => array(
48     'groups' => array(
49       'label' => _('Appartient aux groupes...'),
50       'emptyText' => _("N'appartient à aucun groupe."),
51       'LSobject' => 'LSeegroup',
52       'list_function' => 'listUserGroups',
53       'getkeyvalue_function' => 'getMemberKeyValue',
54       'update_function' => 'updateUserGroups',
55       'remove_function' => 'deleteOneMember',
56       'rename_function' => 'renameOneMember',
57       'rights' => array(
58         'self' => 'r',
59         'admin' => 'w'
60       )
61     )
62   ),
63   // Attributes
64   'attrs' => array (
65     'uid' => array (
66       'label' => _('Identifiant'),
67       'ldap_type' => 'ascii',
68       'html_type' => 'text',
69       'required' => 1,
70       'check_data' => array (
71         'alphanumeric' => array(
72           'msg' => _("L'identifiant ne doit comporter que des lettres et des chiffres.")
73         ),
74       ),
75       'validation' => array (
76         array (
77           'filter' => 'uid=%{val}',
78           'result' => 0,
79           'msg' => _('Cet identifiant est déjà utilisé.')
80         )
81       ),
82       'rights' => array(
83         'self' => 'r',
84         'user' => 'r',
85         'admin' => 'w'
86       ),
87       'view' => 1,
88       'form' => array (
89         'modify' => 1,
90         'create' => 1
91       ),
92       'dependAttrs' => array(
93         'homeDirectory'
94       )
95     ),
96     'uidNumber' => array (
97       'label' => _('Identifiant (numérique)'),
98       'ldap_type' => 'numeric',
99       'html_type' => 'text',
100       'required' => 1,
101       'generate_function' => 'generate_uidNumber',
102       'check_data' => array (
103         'numeric' => array(
104           'msg' => _("L'identifiant unique doit être un entier.")
105         ),
106       ),
107       'validation' => array (
108         array (
109           'filter' => 'uidNumber=%{val}',
110           'result' => 0,
111           'msg' => _('Cet uid est déjà utilisé.')
112         )
113       ),
114       'rights' => array(
115         'self' => 'r',
116         'admin' => 'w'
117       ),
118       'view' => 1,
119       'form' => array (
120         'modify' => 0,
121       )
122     ),
123     'givenName' => array (
124       'label' => _('Prenom'),
125       'ldap_type' => 'ascii',
126       'html_type' => 'text',
127       'required' => 1,
128       'default_value' => 'toto',
129       'check_data' => array (
130         'alphanumeric' => array(
131           'msg' => _('Le prenom ne doit comporter que des lettres et des chiffres.')
132         ),
133       ),
134       'rights' => array(
135         'self' => 'w',
136         'users' => 'r',
137         'admin' => 'w'
138       ),
139       'view' => 1,
140       'form' => array (
141         'modify' => 1,
142         'create' => 1
143       ),
144       'onDisplay' => 'return_data'
145     ),
146     'sn' => array (
147       'label' => _('Nom'),
148       'ldap_type' => 'ascii',
149       'html_type' => 'text',
150       'required' => 1,
151       'rights' => array(
152         'self' => 'w',
153         'user' => 'r',
154         'admin' => 'w'
155       ),
156       'view' => 1,
157       'form' => array (
158         'modify' => 1,
159         'create' => 1
160       )
161     ),
162     'cn' => array (
163       'label' => _('Nom complet'),
164       'ldap_type' => 'ascii',
165       'html_type' => 'text',
166       'html_options' => array(
167         'generate_value_format' => '%{givenName} %{sn}',
168         'autoGenerateOnModify' => true   // default : false
169       ),
170       'required' => 1,
171       'validation' => 'valid',
172       'rights' => array(
173         'self' => 'w',
174         'user' => 'r',
175         'admin' => 'w'
176       ),
177       'view' => 1,
178       'form' => array (
179         'modify' => 1,
180         'create' => 1
181       )
182     ),
183     'gidNumber' => array (
184       'label' => _('Groupe principal'),
185       'ldap_type' => 'numeric',
186       'html_type' => 'select_list',
187       'multiple' => false,
188       'required' => 1,
189       'validation' => array (
190         array (
191           'object_type' => 'LSeegroup',           // 'object_type' : Permet definir le type d'objet recherchés
192           //'basedn' => 'o=company',                    // et d'utiliser les objectClass définis dans le fichier de configuration
193           'filter' => '(gidNumber=%{val})',       // pour la recherche
194           'result' => 1
195         )
196       ),
197       'rights' => array(
198         'self' => 'r',
199         'admin' => 'w'
200       ),
201       'view' => 1,
202       'form' => array (
203         'modify' => 1,
204         'create' => 1
205       ),
206       'possible_values' => array(
207         'OTHER_OBJECT' => array(
208           'object_type' => 'LSeegroup',                      // Nom de l'objet à lister
209           'display_attribute' => '%{cn} (%{gidNumber})',     // Spécifie le attributs à lister pour le choix,
210                                                              // si non définie => utilisation du 'select_display_attrs'
211                                                              // de la définition de l'objet
212                                               
213           'value_attribute' => 'gidNumber',   // Spécifie le attributs dont la valeur sera retournée par
214           /*'filter' =>                         // le formulaire spécifie les filtres de recherche pour
215             array (                           // l'établissement de la liste d'objets :
216               array(                          // Premier filtre
217                 'filter' => 'cn=*a*',
218                 //'basedn' => 'o=company',
219                 'scope' => 'sub',
220               )
221             )*/
222         )
223       )
224     ),
225     'loginShell' => array (
226       'label' => _('Interpreteur de commande'),
227       'help_info' => _("Permet ou non a l'utilisateur de se connecter à un système POSIX."),
228       'ldap_type' => 'boolean',
229       'html_type' => 'boolean',
230       'required' => 1,
231       'default_value' => '/bin/false',
232       'rights' => array(
233         'self' => 'r',
234         'admin' => 'w'
235       ),
236       'view' => 1,
237       'form' => array (
238         'modify' => 1,
239         'create' => 1
240       ),
241       'true_value' => '/bin/bash',
242       'false_value' => '/bin/false'
243     ),
244     'sambaSID' => array (
245       'label' => _('Identifiant Samba'),
246       'ldap_type' => 'ascii',
247       'html_type' => 'text',
248       'required' => 1,
249       'generate_function' => 'generate_sambaSID',
250       'rights' => array(
251         'admin' => 'r'
252       ),
253       'form' => array (
254         //'modify' => 0,
255       )
256     ),
257     'homeDirectory' => array (
258       'label' => _('Répertoire personnel'),
259       'ldap_type' => 'ascii',
260       'html_type' => 'text',
261       'required' => 1,
262       'generate_function' => 'generate_homeDirectory',
263       'rights' => array(
264         'self' => 'r'
265       ),
266       'view' => 1
267     ),
268     'mail' => array (
269       'label' => _('Adresse e-mail'),
270       'ldap_type' => 'ascii',
271       'html_type' => 'text',
272       'html_options' => array(
273         'generate_value_format' => '%{givenName}.%{sn}@ls.com',
274         'withoutAccent' => 1,
275         'replaceSpaces' => '.',
276         'lowerCase' => 1
277       ),
278       'required' => 1,
279       'check_data' => array (
280         'email' => array(
281           'msg' => _("L'adresse e-mail entrée n'est pas valide."),
282           'params' => array('checkDomain' => false)
283         ),
284       ),
285       'rights' => array(
286         'self' => 'r',
287         'user' => 'r',
288         'admin' => 'w'
289       ),
290       'view' => 1,
291       'form' => array (
292         'modify' => 1,
293         'create' => 1
294       )
295     ),
296     'personalTitle' => array (
297       'label' => _('Titre'),
298       'ldap_type' => 'ascii',
299       'html_type' => 'select_list',
300       'required' => 1,
301       'default_value' => 'M.',
302       'rights' => array(
303         'self' => 'w',
304         'user' => 'r',
305         'admin' => 'w'
306       ),
307       'view' => 1,
308       'form' => array (
309         'modify' => 1,
310         'create' => 1
311       ),
312       'possible_values' => array(
313         'M.' => 'M.',
314         'Mme' => 'Mme',
315         'Mlle' => 'Mlle'
316       )
317     ),
318     'description' => array (
319       'label' => _('Description'),
320       'ldap_type' => 'ascii',
321       'html_type' => 'textarea',
322       'rights' => array(
323         'self' => 'w',
324         'user' => 'r',
325         'admin' => 'w'
326       ),
327       'view' => 1,
328       'form' => array (
329         'modify' => 1,
330         'create' => 1
331       )
332     ),
333     'userPassword' => array (
334       'label' => _('Mot de passe'),
335       'ldap_type' => 'password',
336       'html_type' => 'password',
337       'html_options' => array(
338         'generationTool' => true,
339         'autoGenerate' => false,
340         'chars' => 'abcdefgh',
341         'lenght' => 5
342       ),
343       'required' => 1,
344       'rights' => array(
345         'self' => 'w',
346         'admin' => 'w'
347       ),
348       'dependAttrs' => array(
349         'sambaLMPassword',
350         'sambaNTPassword'
351       ),
352       'form' => array (
353         'modify' => 1,
354         'create' => 1,
355         'lostPassword' => 1
356       )
357     ),
358     'lsRecoveryHash' => array (
359       'label' => _('Hash de recouvrement du mot de passe'),
360       'ldap_type' => 'ascii',
361       'html_type' => 'text',
362       'required' => 0,
363       'form' => array (
364         'lostPassword' => 1
365       ),
366       'rights' => array(
367         'self' => 'w',
368         'admin' => 'w'
369       )
370     ),
371     'sambaLMPassword' => array (
372       'label' => _('Mot de passe Samba (LM)'),
373       'ldap_type' => 'ascii',
374       'html_type' => 'text',
375       'required' => 1,
376       'generate_function' => 'generate_sambaLMPassword',
377       'form' => array (
378         'modify' => 0
379       )
380     ),
381     'sambaNTPassword' => array (
382       'label' => _('Mot de passe Samba (NT)'),
383       'ldap_type' => 'ascii',
384       'html_type' => 'text',
385       'required' => 1,
386       'generate_function' => 'generate_sambaNTPassword',
387       'form' => array (
388         'modify' => 0
389       )
390     ),
391     'jpegPhoto' => array (
392       'label' => _('Photo'),
393       'ldap_type' => 'image',
394       'html_type' => 'image',
395       'required' => 0,
396       'view' => 0,
397       'check_data' => array (
398         'imagesize' => array(
399           'msg' => _("La taille de l'image n'est pas valide."),
400           'params' => array(
401             'maxWidth' => 2000
402           )
403         ),
404         'imagefilesize' => array(
405           'msg' => _("La taille du fichier image n'est pas valide."),
406           'params' => array(
407             'maxSize' => 3000000   // taille du fichier en octets
408           )
409         ),
410         'imagefile' => array(
411           'msg' => _("Le type du fichier n'est pas valide.")
412         )
413       ),
414       'form' => array (
415         'modify' => 1
416       ),
417       'rights' => array(
418         'self' => 'w',
419         'user' => 'r',
420         'admin' => 'w'
421       )
422     )
423   )
424 );
425 ?>