112b1b828ac7f4acbe8ca50534932a44d17d94f9
[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_save' => 'valid',
42   'after_save' => 'valid',
43   'select_display_attrs' => '%{cn}',
44   'label' => _('Utilisateurs'),
45   'relations' => array(
46     'groups' => array(
47       'label' => _('Appartient aux groupes...'),
48       'LSobject' => 'LSeegroup',
49       'list_function' => 'listUserGroups',
50       'update_function' => 'updateUserGroups',
51       'remove_function' => 'deleteOneMember',
52       'rename_function' => 'renameOneMember',
53       'rights' => array(
54         'self' => 'r',
55         'admin' => 'w'
56       )
57     )
58   ),
59   // Attributes
60   'attrs' => array (
61     'uid' => array (
62       'label' => _('Identifiant'),
63       'ldap_type' => 'ascii',
64       'html_type' => 'text',
65       'required' => 1,
66       'check_data' => array (
67         'alphanumeric' => array(
68           'msg' => _("L'identifiant ne doit comporter que des lettres et des chiffres.")
69         ),
70       ),
71       'validation' => array (
72         array (
73           'filter' => 'uid=%{val}',
74           'result' => 0,
75           'msg' => _('Cet identifiant est déjà utilisé.')
76         )
77       ),
78       'rights' => array(
79         'self' => 'r',
80         'user' => 'r',
81         'admin' => 'w'
82       ),
83       'view' => 1,
84       'form' => array (
85         'modify' => 1,
86         'create' => 1
87       ),
88       'dependAttrs' => array(
89         'homeDirectory'
90       )
91     ),
92     'uidNumber' => array (
93       'label' => _('Identifiant (numérique)'),
94       'ldap_type' => 'numeric',
95       'html_type' => 'text',
96       'required' => 1,
97       'generate_function' => 'generate_uidNumber',
98       'check_data' => array (
99         'numeric' => array(
100           'msg' => _("L'identifiant unique doit être un entier.")
101         ),
102       ),
103       'validation' => array (
104         array (
105           'filter' => 'uidNumber=%{val}',
106           'result' => 0,
107           'msg' => _('Cet uid est déjà utilisé.')
108         )
109       ),
110       'rights' => array(
111         'self' => 'r',
112         'admin' => 'w'
113       ),
114       'view' => 1,
115       'form' => array (
116         'modify' => 0,
117       )
118     ),
119     'givenName' => array (
120       'label' => _('Prenom'),
121       'ldap_type' => 'ascii',
122       'html_type' => 'text',
123       'required' => 1,
124       'default_value' => 'toto',
125       'check_data' => array (
126         'alphanumeric' => array(
127           'msg' => _('Le prenom ne doit comporter que des lettres et des chiffres.')
128         ),
129       ),
130       'rights' => array(
131         'self' => 'w',
132         'users' => 'r',
133         'admin' => 'w'
134       ),
135       'view' => 1,
136       'form' => array (
137         'modify' => 1,
138         'create' => 1
139       ),
140       'onDisplay' => 'return_data'
141     ),
142     'sn' => array (
143       'label' => _('Nom'),
144       'ldap_type' => 'ascii',
145       'html_type' => 'text',
146       'required' => 1,
147       'rights' => array(
148         'self' => 'w',
149         'user' => 'r',
150         'admin' => 'w'
151       ),
152       'view' => 1,
153       'form' => array (
154         'modify' => 1,
155         'create' => 1
156       )
157     ),
158     'cn' => array (
159       'label' => _('Nom complet'),
160       'ldap_type' => 'ascii',
161       'html_type' => 'text',
162       'html_options' => array(
163         'generate_value_format' => '%{givenName} %{sn}',
164         'autoGenerateOnModify' => false   // default : false
165       ),
166       'required' => 1,
167       'validation' => 'valid',
168       'rights' => array(
169         'self' => 'w',
170         'user' => 'r',
171         'admin' => 'w'
172       ),
173       'view' => 1,
174       'form' => array (
175         'modify' => 1,
176         'create' => 1
177       )
178     ),
179     'gidNumber' => array (
180       'label' => _('Groupe principal'),
181       'ldap_type' => 'numeric',
182       'html_type' => 'select_list',
183       'multiple' => false,
184       'required' => 1,
185       'validation' => array (
186         array (
187           'object_type' => 'LSeegroup',           // 'object_type' : Permet definir le type d'objet recherchés
188           //'basedn' => 'o=company',                    // et d'utiliser les objectClass définis dans le fichier de configuration
189           'filter' => '(gidNumber=%{val})',       // pour la recherche
190           'result' => 1
191         )
192       ),
193       'rights' => array(
194         'self' => 'r',
195         'admin' => 'w'
196       ),
197       'view' => 1,
198       'form' => array (
199         'modify' => 1,
200         'create' => 1
201       ),
202       'possible_values' => array(
203         'OTHER_OBJECT' => array(
204           'object_type' => 'LSeegroup',                      // Nom de l'objet à lister
205           'display_attribute' => '%{cn} (%{gidNumber})',     // Spécifie le attributs à lister pour le choix,
206                                                              // si non définie => utilisation du 'select_display_attrs'
207                                                              // de la définition de l'objet
208                                               
209           'value_attribute' => 'gidNumber',   // Spécifie le attributs dont la valeur sera retournée par
210           /*'filter' =>                         // le formulaire spécifie les filtres de recherche pour
211             array (                           // l'établissement de la liste d'objets :
212               array(                          // Premier filtre
213                 'filter' => 'cn=*a*',
214                 //'basedn' => 'o=company',
215                 'scope' => 'sub',
216               )
217             )*/
218         )
219       )
220     ),
221     'loginShell' => array (
222       'label' => _('Interpreteur de commande'),
223       'ldap_type' => 'ascii',
224       'html_type' => 'select_list',
225       'required' => 1,
226       'default_value' => '/bin/false',
227       'rights' => array(
228         'self' => 'r',
229         'admin' => 'w'
230       ),
231       'view' => 1,
232       'form' => array (
233         'modify' => 1,
234         'create' => 1
235       ),
236       'possible_values' => array(
237         '/bin/false' => _('Aucun'),
238         '/bin/bash' => 'Bash',
239       )
240     ),
241     'sambaSID' => array (
242       'label' => _('Identifiant Samba'),
243       'ldap_type' => 'ascii',
244       'html_type' => 'text',
245       'required' => 1,
246       'generate_function' => 'generate_sambaSID',
247       'rights' => array(
248         'admin' => 'r'
249       ),
250       'form' => array (
251         //'modify' => 0,
252       )
253     ),
254     'homeDirectory' => array (
255       'label' => _('Répertoire personnel'),
256       'ldap_type' => 'ascii',
257       'html_type' => 'text',
258       'required' => 1,
259       'generate_function' => 'generate_homeDirectory',
260       'rights' => array(
261         'self' => 'r'
262       ),
263       'view' => 1
264     ),
265     'mail' => array (
266       'label' => _('Adresse e-mail'),
267       'ldap_type' => 'ascii',
268       'html_type' => 'mail',
269       'html_options' => array(
270         'generate_value_format' => '%{uid}@ls.com',
271         'autoGenerateOnModify' => true
272       ),
273       'required' => 1,
274       'check_data' => array (
275         'email' => array(
276           'msg' => _("L'adresse e-mail entrée n'est pas valide."),
277           'param' => array('checkDomain' => false)
278         ),
279       ),
280       'rights' => array(
281         'self' => 'r',
282         'user' => 'r',
283         'admin' => 'w'
284       ),
285       'view' => 1,
286       'form' => array (
287         'modify' => 1,
288         'create' => 1
289       )
290     ),
291     'personalTitle' => array (
292       'label' => _('Titre'),
293       'ldap_type' => 'ascii',
294       'html_type' => 'select_list',
295       'required' => 1,
296       'default_value' => 'M.',
297       'rights' => array(
298         'self' => 'w',
299         'user' => 'r',
300         'admin' => 'w'
301       ),
302       'view' => 1,
303       'form' => array (
304         'modify' => 1,
305         'create' => 1
306       ),
307       'possible_values' => array(
308         'M.' => 'M.',
309         'Mme' => 'Mme',
310         'Mlle' => 'Mlle'
311       )
312     ),
313     'description' => array (
314       'label' => _('Description'),
315       'ldap_type' => 'ascii',
316       'html_type' => 'text',
317       'rights' => array(
318         'self' => 'w',
319         'user' => 'r',
320         'admin' => 'w'
321       ),
322       'view' => 1,
323       'form' => array (
324         'modify' => 1,
325         'create' => 1
326       )
327     ),
328     'userPassword' => array (
329       'label' => _('Mot de passe'),
330       'ldap_type' => 'password',
331       'html_type' => 'password',
332       'html_options' => array(
333         'generationTool' => true,
334         'autoGenerate' => false,
335         'chars' => 'abcdefgh',
336         'lenght' => 5
337       ),
338       'required' => 1,
339       'rights' => array(
340         'self' => 'w',
341         'admin' => 'w'
342       ),
343       'dependAttrs' => array(
344         'sambaLMPassword',
345         'sambaNTPassword'
346       ),
347       'form' => array (
348         'modify' => 1,
349         'create' => 1,
350         'lostPassword' => 1
351       )
352     ),
353     'lsRecoveryHash' => array (
354       'label' => _('Hash de recouvrement du mot de passe'),
355       'ldap_type' => 'ascii',
356       'html_type' => 'text',
357       'required' => 0,
358       'form' => array (
359         'lostPassword' => 1
360       ),
361       'rights' => array(
362         'self' => 'w',
363         'admin' => 'w'
364       )
365     ),
366     'sambaLMPassword' => array (
367       'label' => _('Mot de passe Samba (LM)'),
368       'ldap_type' => 'ascii',
369       'html_type' => 'text',
370       'required' => 1,
371       'generate_function' => 'generate_sambaLMPassword',
372       'form' => array (
373         'modify' => 0
374       )
375     ),
376     'sambaNTPassword' => array (
377       'label' => _('Mot de passe Samba (NT)'),
378       'ldap_type' => 'ascii',
379       'html_type' => 'text',
380       'required' => 1,
381       'generate_function' => 'generate_sambaNTPassword',
382       'form' => array (
383         'modify' => 0
384       )
385     ),
386     'jpegPhoto' => array (
387       'label' => _('Photo'),
388       'ldap_type' => 'image',
389       'html_type' => 'image',
390       'required' => 0,
391       'view' => 0,
392       'check_data' => array (
393         'imagesize' => array(
394           'msg' => _("La taille de l'image n'est pas valide."),
395           'param' => array(
396             'maxWidth' => 2000
397           )
398         ),
399         'imagefilesize' => array(
400           'msg' => _("La taille du fichier image n'est pas valide."),
401           'param' => array(
402             'maxSize' => 3000000   // taille du fichier en octets
403           )
404         ),
405         'imagefile' => array(
406           'msg' => _("Le type du fichier n'est pas valide.")
407         )
408       ),
409       'form' => array (
410         'modify' => 1
411       ),
412       'rights' => array(
413         'self' => 'w',
414         'user' => 'r',
415         'admin' => 'w'
416       )
417     )
418   )
419 );
420 ?>