Add documentation
[ldapsaisie.git] / public_html / modify.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 require_once 'core.php';
24
25 if(LSsession :: startLSsession()) {
26
27   if (isset($_POST['LSform_objecttype'])) {
28     $LSobject = $_POST['LSform_objecttype'];
29   }
30   else if (isset($_GET['LSobject'])) {
31     if ($_GET['LSobject'] == 'SELF') {
32       $LSobject = LSsession :: getLSuserObject() -> getType();
33       $dn = LSsession :: getLSuserObjectDn();
34     }
35     else { 
36       $LSobject = $_GET['LSobject'];
37     }
38   }
39   
40   if (isset($_POST['LSform_objectdn'])) {
41     $dn = $_POST['LSform_objectdn'];
42   }
43   else if (isset($_GET['dn'])) {
44     $dn = urldecode($_GET['dn']);
45   }
46
47   if ((isset($dn)) && (isset($LSobject)) ) {
48     // Création d'un LSobject
49     if (LSsession :: loadLSobject($LSobject)) {
50       if ( LSsession :: canEdit($LSobject,$dn) ) {
51         $object = new $LSobject();
52         if ($object -> loadData($dn)) {
53           // Définition du Titre de la page
54           LStemplate :: assign('pagetitle',_('Modify').' : '.$object -> getDisplayName());
55           $form = $object -> getForm('modify');
56           if ($form->validate()) {
57             // MàJ des données de l'objet LDAP
58             if ($object -> updateData('modify')) {
59               if (LSerror::errorsDefined()) {
60                 LSsession :: addInfo(_("The object has been partially modified."));
61               }
62               else {
63                 LSsession :: addInfo(_("The object has been modified successfully."));
64               }
65               if (isset($_REQUEST['ajax'])) {
66                 LSsession :: displayAjaxReturn (
67                   array(
68                     'LSredirect' => 'view.php?LSobject='.$LSobject.'&dn='.$object -> getDn()
69                   )
70                 );
71                 exit();
72               }
73               else {
74                 if (!LSdebugDefined()) {
75                   LSsession :: redirect('view.php?LSobject='.$LSobject.'&dn='.$object -> getDn());
76                 }
77                 else {
78                   LSsession :: displayTemplate();
79                 }
80               }
81             }
82             else {
83               if (isset($_REQUEST['ajax'])) {
84                 LSsession :: displayAjaxReturn (
85                   array(
86                     'LSformErrors' => $form -> getErrors()
87                   )
88                 );
89               }
90               else {
91                 LSsession :: displayTemplate();
92               }
93             }
94           }
95           else if (isset($_REQUEST['ajax']) && $form -> definedError()) {
96             LSsession :: displayAjaxReturn (
97               array(
98                 'LSformErrors' => $form -> getErrors()
99               )
100             );
101           }
102           else {
103             $LSview_actions[] = array(
104               'label' => _('View'),
105               'url' =>'view.php?LSobject='.$LSobject.'&amp;dn='.urlencode($object -> getDn()),
106               'action' => 'view'
107             );
108           
109             if (LSsession :: canRemove($LSobject,$object -> getDn())) {
110               $LSview_actions[] = array(
111                 'label' => _('Delete'),
112                 'url' => 'remove.php?LSobject='.$LSobject.'&amp;dn='.urlencode($object -> getDn()),
113                 'action' => 'delete'
114               );
115             }
116             
117             LStemplate :: assign('LSview_actions',$LSview_actions);
118             LSsession :: setTemplate('modify.tpl');
119             $form -> display();
120             LSsession :: displayTemplate();
121           }
122         }
123         else {
124           LSerror :: addErrorCode('LSsession_11');
125         }
126       }
127       else {
128         LSerror :: addErrorCode('LSsession_11');
129       }
130     }
131   }
132   else {
133     LSerror :: addErrorCode('LSsession_12');
134   }
135
136 }
137 else {
138   LSsession :: setTemplate('login.tpl');
139   LSsession :: displayTemplate();
140 }
141
142
143 ?>