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