ryxeo-glpi-git / htdocs / epack / register.php @ 6fd1e9d9
Historique | Voir | Annoter | Télécharger (22,6 ko)
1 | 1c14bcc4 | Eric Seigne | <?php
|
---|---|---|---|
2 | //AJAX CODE
|
||
3 | |||
4 | $commande = ""; |
||
5 | $message = ""; |
||
6 | $send_mail = 0; //flag pour savoir s'il faut envoyer un mail (en bref a toute insertion ou update de base) |
||
7 | |||
8 | 6fd1e9d9 | Eric Seigne | |
9 | function send_mail_installation($pass,$code,$datapost) { |
||
10 | $mail_content = " |
||
11 |
|
||
12 | Bonjour,
|
||
13 |
|
||
14 | un nouveau serveur vient d'être inséré dans AbulÉdu.NET:
|
||
15 |
|
||
16 | Référence du ePack AbulÉdu:
|
||
17 | - $pass
|
||
18 | - $code
|
||
19 |
|
||
20 | Site de l'installation:
|
||
21 | - Nom: " . addslashes($datapost['INAME']) . " |
||
22 | - Adresse: " . addslashes($datapost['IADDRESS0'] . " " . $datapost['IADDRESS1'] ) . " |
||
23 | - Code postal: " . addslashes($datapost['IPOSTALCODE']) . " |
||
24 | - Ville: " . addslashes($datapost['ICITY']) . " |
||
25 | - Pays: " . addslashes($datapost['ICOUNTRY']) . " |
||
26 | - Téléphone: " . addslashes($datapost['ITEL']) . " |
||
27 | - Adresse email: " . addslashes($datapost['IEMAIL']) . " |
||
28 |
|
||
29 | Serveur:
|
||
30 | - Marque ou modèle: " . $datapost['ISRV'] . " |
||
31 | - Numéro de série: " . $datapost['ISERIAL'] . " |
||
32 | - Processeur: " . $datapost['CPU'] . " |
||
33 | - Mémoire vive: " . $datapost['RAM'] . " |
||
34 | - Disque dur 1: " . $datapost['HDD0'] . " |
||
35 | - Disque dur 2: " . $datapost['HDD1'] . " |
||
36 | - Carte réseau 1: " . $datapost['MAC0'] . " |
||
37 | - Carte réseau 2: " . $datapost['MAC1'] . " |
||
38 | - Date d'installation: " . $datapost['IDATE'] . " |
||
39 |
|
||
40 | Mots de passe:
|
||
41 | - root: " . $datapost['IROOT'] . " |
||
42 | - abuladmin: " . $datapost['IABE'] . " |
||
43 |
|
||
44 | Installateur:
|
||
45 | - Société: " . $datapost['RCODE'] . " |
||
46 | - Nom: " . $datapost['RNAME'] . " |
||
47 | - Téléphone: " . $datapost['RTEL'] . " |
||
48 | - Email: " . $datapost['REMAIL'] . " |
||
49 |
|
||
50 | Compte utilisateur:
|
||
51 | - Nom: " . $datapost['ADM_LASTNAME'] . " |
||
52 | - Prénom: " . $datapost['ADM_FIRSTNAME'] . " |
||
53 | - Email: " . $datapost['ADM_EMAIL'] . " |
||
54 |
|
||
55 | Compte personne ressource:
|
||
56 | - Nom: " . $datapost['PR_LASTNAME'] . " |
||
57 | - Prénom: " . $datapost['PR_FIRSTNAME'] . " |
||
58 | - Email: " . $datapost['PR_EMAIL'] . " |
||
59 |
|
||
60 | Compte ATICE:
|
||
61 | - Nom: " . $datapost['ATICE_LASTNAME'] . " |
||
62 | - Prénom: " . $datapost['ATICE_FIRSTNAME'] . " |
||
63 | - Email: " . $datapost['ATICE_EMAIL'] . " |
||
64 |
|
||
65 | Commentaires:
|
||
66 | " . $datapost["ICOMMENT"] . " |
||
67 |
|
||
68 | --
|
||
69 | abuledu.net est un service de RyXéo SARL, société éditrice d'AbulÉdu
|
||
70 |
|
||
71 | ";
|
||
72 | ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","Nouveau serveur dans la base abuledu.net"); |
||
73 | } |
||
74 | |||
75 | 1c14bcc4 | Eric Seigne | //Verifie si les donnees qu'on a en entree sont correctes sinon on saute ... direction webadmin/installation
|
76 | function verification_data() { |
||
77 | global $datapost; |
||
78 | global $message; |
||
79 | $error = ""; |
||
80 | if(trim(strtolower($datapost['MAC0'])) == "" || trim(strtolower($datapost['MAC1'])) == "" ) |
||
81 | $error .= "<li>Il manque une carte réseau dans ce serveur !</li>"; |
||
82 | if(trim($datapost['INAME']) == "") |
||
83 | $error .= "<li>Erreur sur le nom de l'installation</li>"; |
||
84 | if(trim($datapost['IADDRESS0']) == "") |
||
85 | $error .= "<li>Adresse de l'installation incorrecte</li>"; |
||
86 | if(trim($datapost['IPOSTALCODE']) == "") |
||
87 | $error .= "<li>Code postal incorrect</li>"; |
||
88 | if(trim($datapost['ICITY']) == "") |
||
89 | $error .= "<li>Nom de ville incorrect</li>"; |
||
90 | if(trim($datapost['ICOUNTRY']) == "") |
||
91 | $error .= "<li>Nom du pays incorrect</li>"; |
||
92 | if(trim($datapost['ITEL']) == "") |
||
93 | $error .= "<li>Numéro de téléphone incorect</li>"; |
||
94 | if(trim($datapost['ADM_LASTNAME']) == "") |
||
95 | $error .= "<li>Nom du contact administratif incomplet</li>"; |
||
96 | if(trim($datapost['ADM_FIRSTNAME'])== "") |
||
97 | $error .= "<li>Prénom du contact administratif incomplet</li>"; |
||
98 | if(strpos($datapost['IEMAIL'],"@") == FALSE) |
||
99 | $error .= "<li>Adresse email de l'école incorrecte</li>"; |
||
100 | if(strpos($datapost['ADM_EMAIL'],"@") == FALSE) |
||
101 | $error .= "<li>Adresse email du responsable administratif incorrecte</li>"; |
||
102 | |||
103 | if($error != "") { |
||
104 | $message .= "<ul>"; |
||
105 | $message .= $error; |
||
106 | $message .= "</ul>"; |
||
107 | return false; |
||
108 | } |
||
109 | else
|
||
110 | return true; |
||
111 | |||
112 | } |
||
113 | |||
114 | //création des fichiers de conf sur ce nouveau serveur
|
||
115 | //ou restauration des fichiers de conf (si réinstallation)
|
||
116 | function make_conffiles($login,$pass,$code) { |
||
117 | global $commande; |
||
118 | $codecrypt = md5($pass); |
||
119 | $commande .= " echo \"" . $login . ";dip.abuledu.net;http://dip.abuledu.net/gnudip/cgi-bin/gdipupdt.cgi;" . $codecrypt . ";/home/abecmd/.GnuDIP2.cache." . $login . ".dip.abuledu.net;0;2073600\" > ~abecmd/.GnuDIP2 |
||
120 | chmod 600 ~abecmd/.GnuDIP2
|
||
121 | chown abecmd:admin ~abecmd/.GnuDIP2
|
||
122 | su - abecmd gdipc
|
||
123 | mkdir ~abecmd/.ssh
|
||
124 | echo \"ssh-dss AAAAB3NzaC1kc3MAAACBAPM3DKuDXuSsQgPeBNO/jBEAd28smHqYVAODRwshfI04/rFvwh/A+7UZ2H/QnZOn6XLS/3R4yPp/QdGKEJ0BCHDd2fLIuS6ZLDHoHdQRBFzEAXP1SE1Yyp9c1pKnWeke6oK6196yKpE2aWBRv9kma+KoPhz7mpt6KHISow+yYV/PAAAAFQDFCotxKtxherzuwzVbeXmiOGQ3EwAAAIEAq+KXzJUt13h5QvM7u0O3mbDGD6YY9avMYqFk8StJ4DoFpSfeiwvNynoDsAE2qLTje7hbs+UO4Ns1lCLhh4R4T9wdLodTRVfizvqjZhmhOGfTHUjX9qi+dTs7c0mtqZz89ZZSqJsnMb9I1Ifj0H++MOswa7qp1cFxzUYtlew128QAAACAXve21Gn+gD7GXhvLIMq7bq6/ECjcjoBQcpLF72Z3tAsd0i0Scv1eydsUiee47pr3o4fJToQAr3iFQX6zWnDaw4htg3cZAMzfuvXxuWBcDoQ2qjYAk1A/FoJM7z5pPZXnWQZ+Vq+HfsW8W7EHztVgoZ/Xj/10webHjcL8CzFGWU4= remoteabecmd@Timide
|
||
125 | ssh-dss AAAAB3NzaC1kc3MAAACBAIyAzv1X8Hy8r8QiJAmhlDs9INd0jCpYNk5OxBDYA1/qdmKVqVMwKACvZg8xigRBg4e5PMsgpGQf9OxHTlhIiqAjwxmi7tHAy1t1fHuqDCZmqpQG5banOPvr4R5w4q47jKAJNqRsofgZACQKo8KkSHxY5VWZNx5bOfZYdEcWcNqpAAAAFQCXElvdvY+/aILI5a1z4fKRybA7GQAAAIB+5v/foiMKyZ+JEocToPIj2fP4mH7o8xnA1T8HKUGOiutxT/TWT4OnUMmquA/XVdzOyJ/tEeznfUDvlJZzKtFoW75ftQ8Or0AJj68jGQQ3wxQW5TXKuOCoo4vdf0ZQ+ASbzY1ECdxiQEB5kWusWbpes/eyTzDzjpUjMfR2JS5+rAAAAIAksQfdasobfpGuqLIvHBpgSFyas9J6EguBQVauNyLy7IE/WmAN1zgbYvBVU7KY3WUr5pgum9GcExCfnGH/qW7zR7M5zbZdOwq2W4AphXibkf+YbB2q1BouigbUzCiA54wa6XArtHsx0PpzyToHjAplnI4O5DhJ1SQNHClLbfA9Gw== erics@hurlevent
|
||
126 | \" > ~abecmd/.ssh/authorized_keys
|
||
127 | chmod 700 ~abecmd/.ssh -R
|
||
128 | chown abecmd:admin ~abecmd/.ssh -R
|
||
129 | adduser abecmd admin
|
||
130 | cd ~abecmd
|
||
131 | wget apt.ryxeo.com/ryxeo/bashrc -O .bashrc
|
||
132 | chown abecmd .bashrc
|
||
133 | ";
|
||
134 | |||
135 | //Et maintenant on sauvegarde qqpart le code/pass du pack
|
||
136 | $commande .= " |
||
137 | echo \"" . $code . ":" . $pass . "\" > /etc/abuledu/epack |
||
138 | chown aesd:www-data /etc/abuledu/epack
|
||
139 | chmod 640 /etc/abuledu/epack
|
||
140 | ";
|
||
141 | |||
142 | //L'identification du revendeur ... a améliorer
|
||
143 | $commande .= make_rvd_conffile();
|
||
144 | |||
145 | |||
146 | //Il faudrait egalement faire la base pour OCS-NG et les remontees automatiques ... on utilisera le code du epack
|
||
147 | } |
||
148 | |||
149 | function make_rvd_conffile() { |
||
150 | global $DB; |
||
151 | //Securisation de l'identification du revendeur ... a améliorer
|
||
152 | $commande .= " |
||
153 | chown aesd /etc/abuledu/rvd
|
||
154 | chmod 400 /etc/abuledu/rvd
|
||
155 | ";
|
||
156 | |||
157 | } |
||
158 | |||
159 | function add_user_and_update_link($usermail,$identity,$userlastname,$userfirstname,$tag="") { |
||
160 | global $DB; |
||
161 | global $message; |
||
162 | global $send_mail; |
||
163 | |||
164 | if(trim($usermail) == "") { |
||
165 | $message .= "<li><font color=\"red\">ERROR ($tag)</font> compte utilisateur sans adresse email ! $userlastname :: $userfirstname</li>\n"; |
||
166 | return;
|
||
167 | } |
||
168 | |||
169 | $query = "SELECT * from glpi_users WHERE email='$usermail'"; |
||
170 | $result = $DB->query($query); |
||
171 | //$message .= "<p>nb ; " . $DB->numrows($result) . " req : $query</p>";
|
||
172 | if($DB->numrows($result)>0) { |
||
173 | $data = $DB->fetch_assoc($result); |
||
174 | $iduser = $data['ID']; |
||
175 | //existe dejà on fait juste le lien s'il n'existe pas déjà
|
||
176 | $query2 = "SELECT * FROM glpi_users_profiles WHERE FK_users='$iduser' AND FK_entities='$identity'"; |
||
177 | $result2 = $DB->query($query2); |
||
178 | if($DB->numrows($result2)<=0) { |
||
179 | $query3 = "INSERT INTO glpi_users_profiles(FK_users,FK_entities,FK_profiles,recursive,dynamic) VALUES('$iduser','$identity',1,0,1)"; |
||
180 | $result3 = $DB->query($query3); |
||
181 | $send_mail = 1; |
||
182 | if($result3) |
||
183 | $message .= "<li>Attribution des droits de l'utilisateur $usermail sur le serveur: <font color=\"green\">OK</font></li>\n"; |
||
184 | else {
|
||
185 | $message .= "<li>Attribution des droits de l'utilisateur $usermail sur le serveur: <font color=\"red\">ERROR</font></li>\n"; |
||
186 | } |
||
187 | } |
||
188 | //Sinon c'est que tout est déjà fait !
|
||
189 | } |
||
190 | //Sinon c'est que l'utilisateur n'existe pas encore dans la base
|
||
191 | else {
|
||
192 | //Insérer l'utilisateur ... et appel sur la même fonction qui cette fois ci fera le reste :)
|
||
193 | $query2 = "INSERT INTO glpi_users(name,email,realname,firstname,FK_profiles,FK_entities,auth_method) VALUES( |
||
194 | '$usermail',
|
||
195 | '$usermail',
|
||
196 | '$userlastname',
|
||
197 | '$userfirstname',
|
||
198 | '0',
|
||
199 | '$identity',
|
||
200 | '1'
|
||
201 | )";
|
||
202 | $result2 = $DB->query($query2); |
||
203 | $send_mail = 1; |
||
204 | if($result2) { |
||
205 | $message .= "<li>Création du compte utilisateur $usermail : <font color=\"green\">OK</font></li>\n"; |
||
206 | add_user_and_update_link($usermail,$identity,$userlastname,$userrfirstname,$tag); |
||
207 | } |
||
208 | else {
|
||
209 | $message .= "<li>Création du compte utilisateur $usermail : <font color=\"red\">ERROR</font></li>\n"; |
||
210 | } |
||
211 | } |
||
212 | } |
||
213 | |||
214 | //Vite une session
|
||
215 | session_start(); |
||
216 | if(trim($_GET['reset']) != "") { |
||
217 | // Finalement, on détruit la session.
|
||
218 | session_destroy(); |
||
219 | header('Location: http://abuledu.net/epack/register/'); |
||
220 | } |
||
221 | //print_r($_SESSION);
|
||
222 | //recupration des variables de l'url
|
||
223 | $g_http_request = $_SERVER['REQUEST_URI']; |
||
224 | //$message .= "<p>Du cote abuledu.net ...</p>";
|
||
225 | if($_SESSION['epack_session'] > 1) { |
||
226 | $pass = strtoupper($_SESSION['epack_pass']); |
||
227 | $code = strtoupper($_SESSION['epack_code']); |
||
228 | if(isset($_POST['login_email'])) { |
||
229 | $login_email = $_POST['login_email']; |
||
230 | $login_pass = $_POST['login_pass']; |
||
231 | } |
||
232 | if(isset($_SESSION['login_email'])) { |
||
233 | $login_email = $_SESSION['login_email']; |
||
234 | $login_pass = $_SESSION['login_pass']; |
||
235 | } |
||
236 | } |
||
237 | else {
|
||
238 | //Si on est sur un formulaire POST (on casse la limite de la taille de la requete GET)
|
||
239 | if(isset($_POST["pass"])) { |
||
240 | //$message .= "Passage en POST";
|
||
241 | $pass = $_POST["pass"]; |
||
242 | $code = strtoupper($_POST["code"]); |
||
243 | $datapost = array(); |
||
244 | //$message .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>";
|
||
245 | foreach($_POST as $key=>$value) { |
||
246 | $datapost[$key]=$value; |
||
247 | //$message .= "<p>" . $key . " -> " . $value . "</p>";
|
||
248 | } |
||
249 | } |
||
250 | else {
|
||
251 | ereg(".*pass=(.*).code=(.*).data=(.*)",$_SERVER['REQUEST_URI'],$regs); |
||
252 | $pass = addslashes($regs[1]); |
||
253 | $code = strtoupper(addslashes($regs[2])); |
||
254 | $keyvalue_list=explode("&",base64_decode($regs[3])); |
||
255 | $datapost = array(); |
||
256 | //$message .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>";
|
||
257 | foreach($keyvalue_list as $key=>$value) { |
||
258 | // Explode each individual key/value into an array
|
||
259 | $keyvalue=explode("=",$value); |
||
260 | // Make sure we have a "key=value" array
|
||
261 | if(count($keyvalue)==2) { |
||
262 | $datapost[$keyvalue[0]]=$keyvalue[1]; |
||
263 | //$message .= "<p>" . $keyvalue[0] . " -> " . $keyvalue[1] . "</p>";
|
||
264 | } |
||
265 | else {
|
||
266 | //$message .= "<p>XXX:" . $value . "</p>";
|
||
267 | } |
||
268 | } |
||
269 | } |
||
270 | |||
271 | //Ou du POST
|
||
272 | if(trim($pass) == "" || trim($code) == "") { |
||
273 | $pass = addslashes($_POST['pass']); |
||
274 | $code = addslashes(strtoupper($_POST['code'])); |
||
275 | } |
||
276 | } |
||
277 | $_SERVER['REQUEST_URI'] = ""; |
||
278 | $_SERVER['HTTP_REFERER'] = ""; |
||
279 | define('GLPI_ROOT', '..'); |
||
280 | include (GLPI_ROOT . "/inc/includes.php"); |
||
281 | |||
282 | include ("ryxeo.php"); |
||
283 | |||
284 | 6fd1e9d9 | Eric Seigne | //Si epack ryxeo
|
285 | if($code=="RYXEO-TESTS-2010") { |
||
286 | 1c14bcc4 | Eric Seigne | $k = array_keys($datapost); |
287 | for($i = 0; $i < count($k); $i++) { |
||
288 | $key = $k[$i]; |
||
289 | 6fd1e9d9 | Eric Seigne | $debug .= $key . "=" . $datapost[$key] . "\n"; |
290 | 1c14bcc4 | Eric Seigne | } |
291 | 6fd1e9d9 | Eric Seigne | |
292 | if(isset($datapost["MINIWEBADMIN"])) |
||
293 | $message .= "<p>Vous pouvez maintenant passer à l'étape suivante: <a href=\"/maj/\">la 1ere mise à jour de votre serveur.</a></p>\n"; |
||
294 | |||
295 | $message .= "<pre> |
||
296 | $debug
|
||
297 | </pre>";
|
||
298 | |||
299 | //On ne fait pas tout le bazaaar, on teste / valide la procedure uniquement
|
||
300 | send_mail_installation($pass,$code,$datapost); |
||
301 | |||
302 | $object = array(); |
||
303 | $object['message'] = "<h1>Enregistrement de votre serveur avec un ePack</h1>\n"; |
||
304 | $object['message'] .= $message; |
||
305 | $object['command'] = $commande; |
||
306 | |||
307 | print serialize($object); |
||
308 | //print_r($_SERVER);
|
||
309 | return;
|
||
310 | 1c14bcc4 | Eric Seigne | } |
311 | |||
312 | //print "<pre>";
|
||
313 | //print_r($datapost);
|
||
314 | //$message .= implode("::",$datapost);
|
||
315 | //print "</pre>";
|
||
316 | //reset ...
|
||
317 | //print_r($_SESSION);
|
||
318 | //unset($_SESSION['epack_session']);
|
||
319 | |||
320 | if(trim($pass) != "" && trim($code) != "") { |
||
321 | $query = "SELECT * FROM glpi_plugin_anet_epacks |
||
322 | LEFT JOIN glpi_entities AS g ON FK_client=g.ID
|
||
323 | WHERE code='$code' AND password='$pass'";
|
||
324 | $result = $DB->query($query); |
||
325 | $mac0 = trim(strtolower($datapost['MAC0'])); |
||
326 | $mac1 = trim(strtolower($datapost['MAC1'])); |
||
327 | //$data=$DB->fetch_assoc($result);
|
||
328 | //$nbresultat = $DB->numrows($result);
|
||
329 | // print_r($data);
|
||
330 | // exit;
|
||
331 | if($DB->numrows($result)>0) { |
||
332 | $data=$DB->fetch_assoc($result); |
||
333 | |||
334 | //$message .= "Eric ... " . $mac0 . ": $code : $mac1";
|
||
335 | if( ! verification_data() ) {
|
||
336 | $message .= "<p><font color=\"red\">Erreur, il manque des informations ou certaines informations ne sont pas correctes sur la <a href=\"/installation/\">fiche d'identité du serveur</a>. Merci de les corriger tout de suite et de repasser ensuite sur cette page !!!</font></p>\n"; |
||
337 | } |
||
338 | //pack deja attribué à un serveur ?
|
||
339 | else if($data['FK_serveur'] > 0) { |
||
340 | if( strlen($mac0) == 12 && strlen($mac1) == 12) { |
||
341 | //Petite vérification, si c'est le même serveur qu'on a réinstallé x fois on laisse faire
|
||
342 | $query2 = "SELECT * FROM glpi_computers WHERE os_license_number LIKE '" . $mac0 . "%' OR os_license_number LIKE '" . $mac1 . "%' "; |
||
343 | $result2 = $DB->query($query2); |
||
344 | $data2=$DB->fetch_assoc($result2); |
||
345 | //Ce pack a été utilisé pour ce serveur ... ok
|
||
346 | if($data2['ID'] == $data['FK_serveur']) { |
||
347 | $nbu = $data['nbused']; |
||
348 | make_conffiles($datapost['MAC0'],$pass,$code); |
||
349 | |||
350 | $message .= "<p>Ce pack a déjà été utilisé $nbu fois pour ce serveur. Si vous avez des difficultés pour utiliser ou configurer AbulÉdu, prennez contact avec la communauté des utilisateurs <a href=\"http://forum.abuledu.org\">sur les forums</a> ou par courriel avec la <a href=\"mailto:contact@ryxeo.com\">société RyXéo</a>, éditrice d'AbulÉdu.</p>\n"; |
||
351 | $message .= "<h4>Rappel des informations concernant ce serveur: </h4>"; |
||
352 | $message .= "<ul> |
||
353 | <li>Nom: " . $data2['name'] . "</li> |
||
354 | <li>Commentaires: " . $data2['comments'] . "</li> |
||
355 | </ul>\n";
|
||
356 | $message .= "<p>Merci d'avoir enregistré ce serveur. Pour toute demande de modification, veuillez utiliser votre compte abuledu.net ou prendre <a href=\"mailto:contact@ryxeo.com\">contact avec RyXéo</a></p>"; |
||
357 | |||
358 | 6fd1e9d9 | Eric Seigne | if(isset($datapost["MINIWEBADMIN"])) |
359 | $message .= "<p>Vous pouvez maintenant passer à l'étape suivante: <a href=\"/maj/\">la 1ere mise à jour de votre serveur.</a></p>\n"; |
||
360 | |||
361 | 1c14bcc4 | Eric Seigne | //On incremente le compteur qui permettra de detecter les serveur tres souvent reinstalles
|
362 | $nbu = $data['nbused'] + 1; |
||
363 | $query3 = "UPDATE glpi_plugin_anet_epacks SET nbused='$nbu' WHERE code='$code' AND password='$pass'"; |
||
364 | $result3 = $DB->query($query3); |
||
365 | |||
366 | //On update les liens etc. (si on a change les comptes utilisateurs par ex.)
|
||
367 | //TODO
|
||
368 | $query1 = "SELECT * FROM glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "'"; |
||
369 | $result1 = $DB->query($query1); |
||
370 | if($DB->numrows($result1) > 0) { |
||
371 | //L'entité existe déjà ...
|
||
372 | $data1 = $DB->fetch_assoc($result1); |
||
373 | $identityenduser = $data1['ID']; |
||
374 | } |
||
375 | |||
376 | add_user_and_update_link($datapost['IEMAIL'], $identityenduser,$datapost['INAME'],$datapost['ICITY'],"Installation"); |
||
377 | add_user_and_update_link($datapost['ADM_EMAIL'], $identityenduser,$datapost['ADM_LASTNAME'],$datapost['ADM_FIRSTNAME'],"Directrice ou directeur"); |
||
378 | add_user_and_update_link($datapost['PR_EMAIL'], $identityenduser,$datapost['PR_LASTNAME'],$datapost['PR_FIRSTNAME'],"Autre contact"); |
||
379 | add_user_and_update_link($datapost['ATICE_EMAIL'], $identityenduser,$datapost['ATICE_LASTNAME'],$datapost['ATICE_FIRSTNAME'],"Animateur TICE"); |
||
380 | |||
381 | make_conffiles($datapost['MAC0'],$pass,$code); |
||
382 | |||
383 | |||
384 | } |
||
385 | //Sinon, c'est louche, on informe ryxeo et on avertis l'utilisateur
|
||
386 | else {
|
||
387 | $message .= "<p>Attention, Ce pack a déjà été attribué à un serveur !</p>\n"; |
||
388 | $message .= "<p>Les packs sont à usage unique, merci d'acheter un nouveau pack pour ce serveur ou <a href=\"mailto:contact@ryxeo.com\">contactez-nous</a> si vous pensez qu'il s'agit d'une erreur.</p>\n"; |
||
389 | |||
390 | $mail_content = " |
||
391 | Bonjour,
|
||
392 | le pack $pass :: $code vient d'être utilisé pour enregistrer un serveur alors que ce pack a déjà
|
||
393 | été utilisé. Merci de vérifier s'il ne s'agit pas d'une tentative de réinstallation multiple ...
|
||
394 |
|
||
395 | Informations brutes récoltées:
|
||
396 |
|
||
397 | ";
|
||
398 | foreach ($datapost as $key => $value) { |
||
399 | $mail_content .= "$key -> $value\n"; |
||
400 | } |
||
401 | |||
402 | $mail_content .= " |
||
403 |
|
||
404 | --
|
||
405 | abuledu.net est un service de RyXéo SARL, société éditrice d'AbulÉdu
|
||
406 |
|
||
407 | ";
|
||
408 | ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","Pack déjà activé plusieurs fois !"); |
||
409 | } |
||
410 | } |
||
411 | } |
||
412 | //pack deja utilise ? si oui c'est qu'il a bien été activé
|
||
413 | else if($data['FK_activation'] > 0) { |
||
414 | $notes = "Données collectées lors de l'enregistrement du serveur le " . date("Y-m-d") . "\n\n"; |
||
415 | foreach ($datapost as $key => $value) { |
||
416 | $notes .= "$key = $value\n"; |
||
417 | } |
||
418 | //On créé l'entité de l'école dans l'entité du client qui est elle même dans l'entité du revendeur
|
||
419 | $query1 = "SELECT * FROM glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "'"; |
||
420 | $result1 = $DB->query($query1); |
||
421 | if($DB->numrows($result1) > 0) { |
||
422 | //L'entité existe déjà ...
|
||
423 | $data1 = $DB->fetch_assoc($result1); |
||
424 | $identityenduser = $data1['ID']; |
||
425 | } |
||
426 | else {
|
||
427 | //L'entité n'existe pas, on l'ajoute
|
||
428 | $query1 = "INSERT INTO glpi_entities VALUES('','" . addslashes($datapost['INAME']) . "'," . $data['FK_client'] . ",'" . $data['completename'] . " > " . addslashes($datapost['INAME']) . "','',5)"; |
||
429 | $result1 = $DB->query($query1); |
||
430 | $send_mail = 1; |
||
431 | } |
||
432 | $query1 = "SELECT * from glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "';"; |
||
433 | $result1 = $DB->query($query1); |
||
434 | $data1 = $DB->fetch_assoc($result1); |
||
435 | //Creation ok
|
||
436 | $identityenduser = $data1['ID']; |
||
437 | if($DB->numrows($result1) > 0) { |
||
438 | $query1 = "INSERT INTO glpi_entities_data VALUES('',$identityenduser,'" . |
||
439 | addslashes($datapost['IADDRESS0'] . " " . $datapost['IADDRESS1'] ) . "','" . |
||
440 | addslashes($datapost['IPOSTALCODE']) . "','" . |
||
441 | addslashes($datapost['ICITY']) . "','" . |
||
442 | "','" .
|
||
443 | addslashes($datapost['ICOUNTRY']) . "','" . |
||
444 | "','" .
|
||
445 | addslashes($datapost['ITEL']) . "','" . |
||
446 | "','" .
|
||
447 | addslashes($datapost['IEMAIL']) . "','" . |
||
448 | "','" .
|
||
449 | "','" .
|
||
450 | "');";
|
||
451 | $result1 = $DB->query($query1); |
||
452 | //print $query1;
|
||
453 | //print_r($data1);
|
||
454 | $message .= "<ul>\n"; |
||
455 | if($result1) |
||
456 | $message .= "<li>Création de l'école: <font color=\"green\">OK</font></li>\n"; |
||
457 | else {
|
||
458 | $message .= "<li>Création de l'école: <font color=\"red\">ERROR</font></li>\n"; |
||
459 | } |
||
460 | |||
461 | } |
||
462 | |||
463 | //Il faut inserer le serveur dans le compte du client final et faire le toutim
|
||
464 | $query2 = "INSERT INTO glpi_computers(FK_entities,name,date_mod,os_license_number,comments,notes,state) |
||
465 | VALUES(
|
||
466 | '" . $identityenduser . "', |
||
467 | '" . addslashes($datapost['INAME']) . "', |
||
468 | NOW(),
|
||
469 | '" . $mac0 . ".dip.abuledu.net', |
||
470 | '" . addslashes($datapost['ICOMMENT']) . "', |
||
471 | '" . addslashes($notes) . "', |
||
472 | '1'
|
||
473 | )";
|
||
474 | $result2 = $DB->query($query2); |
||
475 | $send_mail = 1; |
||
476 | |||
477 | $query2 = "SELECT * from glpi_computers WHERE name='" . addslashes($datapost['INAME']) . "' AND os_license_number='" . $mac0 . ".dip.abuledu.net';"; |
||
478 | // print "select $query2";
|
||
479 | $result2 = $DB->query($query2); |
||
480 | $data2 = $DB->fetch_assoc($result2); |
||
481 | // print_r($data2);
|
||
482 | //Creation ok
|
||
483 | $idserver = $data2['ID']; |
||
484 | if($DB->numrows($result2) > 0) { |
||
485 | $message .= "<li>Ajout du serveur sur AbulÉdu.net: <font color=\"green\">OK</font></li>\n"; |
||
486 | |||
487 | //On attribue le pack au serveur
|
||
488 | $nbu = $data['nbused'] + 1; |
||
489 | $query3 = "UPDATE glpi_plugin_anet_epacks SET FK_serveur='" . $idserver . "', FK_enduser='" . $identityenduser . "', nbused='$nbu' WHERE code='$code' AND password='$pass'"; |
||
490 | $result3 = $DB->query($query3); |
||
491 | |||
492 | |||
493 | $query3 = "INSERT INTO glpi_computer_device(specificity,device_type,FK_device,FK_computers) |
||
494 | VALUES('" . $datapost['CPU'] . "','2','2','$idserver'), |
||
495 | ('" . $datapost['RAM'] . "','3','2','$idserver'), |
||
496 | ('" . $datapost['HDD0'] . "','4','4','$idserver'),"; |
||
497 | if(trim($datapost['HDD1'])) |
||
498 | $query3 .= "('" . $datapost['HDD1'] . "','4','4','$idserver'),"; |
||
499 | $query3 .= "('" . $datapost['MAC0'] . "','5','2','$idserver'), |
||
500 | ('" . $datapost['MAC1'] . "','5','2','$idserver');"; |
||
501 | $result3 = $DB->query($query3); |
||
502 | $send_mail = 1; |
||
503 | if($result3) |
||
504 | $message .= "<li>Ajout des pièces détachées du serveur: <font color=\"green\">OK</font></li>\n"; |
||
505 | else
|
||
506 | $message .= "<li>Ajout des pièces détachées du serveur: <font color=\"red\">ERROR</font></li>\n"; |
||
507 | //Insertion des pièces détachées ok
|
||
508 | |||
509 | //Ajout des contacts liés à ce serveur ?
|
||
510 | add_user_and_update_link($datapost['IEMAIL'], $identityenduser,$datapost['INAME'],$datapost['ICITY'],"Installation"); |
||
511 | add_user_and_update_link($datapost['ADM_EMAIL'], $identityenduser,$datapost['ADM_LASTNAME'],$datapost['ADM_FIRSTNAME'],"Directrice ou directeur"); |
||
512 | add_user_and_update_link($datapost['PR_EMAIL'], $identityenduser,$datapost['PR_LASTNAME'],$datapost['PR_FIRSTNAME'],"Autre contact"); |
||
513 | add_user_and_update_link($datapost['ATICE_EMAIL'], $identityenduser,$datapost['ATICE_LASTNAME'],$datapost['ATICE_FIRSTNAME'],"Animateur TICE"); |
||
514 | |||
515 | //Création des fichiers de conf pour se rattacher a la maintenance (?) ... mais si pas de maintenance ?
|
||
516 | //On gerera ça sur les paiements des contrats associés
|
||
517 | make_conffiles($datapost['MAC0'],$pass,$code); |
||
518 | |||
519 | 6fd1e9d9 | Eric Seigne | //Mail d'information a ryxeo
|
520 | send_mail_installation($pass,$code,$datapost); |
||
521 | |||
522 | 1c14bcc4 | Eric Seigne | $message .= "<li><font color=\"green\">Bravo</font> votre serveur est maintenant bien enregistré sur abuledu.net. Vous pouvez passer à l'étape de création automatique du <a href=\"recette.php\">cahier de recettes</a></li>\n"; |
523 | $message .= "</ul>\n"; |
||
524 | |||
525 | } |
||
526 | else
|
||
527 | $message .= "<li>Ajout du serveur sur anet: <font color=\"red\">ERROR</font></li>\n"; |
||
528 | } |
||
529 | else if ($data['activation_date'] == "0000-00-00") { |
||
530 | 6fd1e9d9 | Eric Seigne | $message .= "<p><font color=\"red\">Erreur, ce packs n'a pas été activé !!! Vous devez activer votre ePack tout de suite à l'adresse suivante, <a href=\"http://www.abuledu.net/epack/new\" target=\"_blank\">abuledu.net/epack/new</a> comme indiqué sur la fiche ePack.</font></p>\n"; |
531 | 1c14bcc4 | Eric Seigne | } |
532 | else {
|
||
533 | $message .= "<p><font color=\"red\">Erreur, ce pack a déjà été utilisé ou n'a pas encore été activé !!!</font></p>\n"; |
||
534 | } |
||
535 | } |
||
536 | else {
|
||
537 | $message .= "<p><font color=\"red\">Erreur de code ou de mot de passe epack !!!</font></p>\n"; |
||
538 | } |
||
539 | } |
||
540 | else {
|
||
541 | $message .= "<p><font color=\"red\">Erreur: code ou mot de passe epack invalide.</font></p>\n"; |
||
542 | } |
||
543 | |||
544 | $object = array(); |
||
545 | if($message == "") |
||
546 | $message .= "<p><font color=\"red\">Erreur non prévue, merci de contacter RyXéo sans tarder...</font></p>"; |
||
547 | $object['message'] = "<h1>Enregistrement de votre serveur avec un ePack</h1>\n"; |
||
548 | $object['message'] .= $message; |
||
549 | $object['command'] = $commande; |
||
550 | |||
551 | //On touche le fichier pour forcer un update de gnudip et des accreditations ... uniquement si epack valide
|
||
552 | if($send_mail) { |
||
553 | @touch("/tmp/update-anet"); |
||
554 | @chmod("/tmp/update-anet",0666); |
||
555 | } |
||
556 | print serialize($object); |
||
557 | //print_r($_SERVER);
|
||
558 | |||
559 | ?> |