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