Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / htdocs / epack / register.php @ d6c34dc8

Historique | Voir | Annoter | Télécharger (22,8 ko)

1
<?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

    
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
//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
//Si epack ryxeo
285
if($code=="RYXEO-TESTS-2010") {
286
  $k = array_keys($datapost);
287
  for($i = 0; $i < count($k); $i++) {
288
    $key = $k[$i];
289
    $debug .= $key . "=" . $datapost[$key] . "\n";
290
  }
291
  
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
    //le flag qui indique a miniwebadmin que le epack est enregistre
295
    $commande .= "\n touch /tmp/epack.ok \n";
296
  }
297
  $message .= "<pre>
298
$debug
299
</pre>";
300

    
301
  //On ne fait pas tout le bazaaar, on teste / valide la procedure uniquement
302
  send_mail_installation($pass,$code,$datapost);
303

    
304
  $object = array();
305
  $object['message'] = "<h1>Enregistrement de votre serveur avec un ePack</h1>\n";
306
  $object['message'] .= $message;
307
  $object['command'] = $commande;
308
  
309
  print serialize($object);
310
  //print_r($_SERVER);
311
  return;
312
 }
313

    
314
//print "<pre>";
315
//print_r($datapost);
316
//$message .= implode("::",$datapost);
317
//print "</pre>";
318
//reset ...
319
//print_r($_SESSION);
320
//unset($_SESSION['epack_session']);
321

    
322
if(trim($pass) != "" && trim($code) != "") {
323
  $query = "SELECT * FROM glpi_plugin_anet_epacks
324
LEFT JOIN glpi_entities AS g ON FK_client=g.ID
325
WHERE code='$code' AND password='$pass'";
326
  $result = $DB->query($query);
327
  $mac0 = trim(strtolower($datapost['MAC0']));
328
  $mac1 = trim(strtolower($datapost['MAC1']));
329
  //$data=$DB->fetch_assoc($result);
330
  //$nbresultat = $DB->numrows($result);
331
  //  print_r($data);
332
  //  exit;
333
  if($DB->numrows($result)>0) {
334
    $data=$DB->fetch_assoc($result);
335

    
336
    //$message .= "Eric ... " . $mac0  . ": $code : $mac1";
337
    if( ! verification_data() ) {
338
      $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";
339
    }
340
    //pack deja attribué à un serveur ?
341
    else if($data['FK_serveur'] > 0) {
342
      if( strlen($mac0) == 12 && strlen($mac1) == 12) {
343
        //Petite vérification, si c'est le même serveur qu'on a réinstallé x fois on laisse faire
344
        $query2 = "SELECT * FROM glpi_computers WHERE os_license_number LIKE '" . $mac0 . "%' OR os_license_number LIKE '" . $mac1 . "%' ";
345
        $result2 = $DB->query($query2);
346
        $data2=$DB->fetch_assoc($result2);
347
        //Ce pack a été utilisé pour ce serveur ... ok
348
        if($data2['ID'] == $data['FK_serveur']) {
349
          $nbu = $data['nbused'];
350
          make_conffiles($datapost['MAC0'],$pass,$code);
351

    
352
          $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";
353
          $message .= "<h4>Rappel des informations concernant ce serveur: </h4>";
354
          $message .= "<ul>
355
  <li>Nom: " . $data2['name'] . "</li>
356
  <li>Commentaires: " . $data2['comments'] . "</li>
357
</ul>\n";
358
          $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>";
359

    
360
          if(isset($datapost["MINIWEBADMIN"])) {
361
            $message .= "<p>Vous pouvez maintenant passer à l'étape suivante: <a href=\"/maj/\">la 1ere mise à jour de votre serveur.</a></p>\n";
362
            //le flag qui indique a miniwebadmin que le epack est enregistre
363
            $commande .= "\n touch /tmp/epack.ok \n";
364
          }
365
          //On incremente le compteur qui permettra de detecter les serveur tres souvent reinstalles
366
          $nbu = $data['nbused'] + 1;
367
          $query3 = "UPDATE glpi_plugin_anet_epacks SET nbused='$nbu' WHERE code='$code' AND password='$pass'";
368
          $result3 = $DB->query($query3);
369

    
370
          //On update les liens etc. (si on a change les comptes utilisateurs par ex.)
371
          //TODO
372
          $query1 = "SELECT * FROM glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "'";
373
          $result1 = $DB->query($query1);
374
          if($DB->numrows($result1) > 0) {
375
            //L'entité existe déjà ...
376
            $data1 = $DB->fetch_assoc($result1);
377
            $identityenduser = $data1['ID'];
378
          }
379

    
380
          add_user_and_update_link($datapost['IEMAIL'], $identityenduser,$datapost['INAME'],$datapost['ICITY'],"Installation");
381
          add_user_and_update_link($datapost['ADM_EMAIL'], $identityenduser,$datapost['ADM_LASTNAME'],$datapost['ADM_FIRSTNAME'],"Directrice ou directeur");
382
          add_user_and_update_link($datapost['PR_EMAIL'], $identityenduser,$datapost['PR_LASTNAME'],$datapost['PR_FIRSTNAME'],"Autre contact");
383
          add_user_and_update_link($datapost['ATICE_EMAIL'], $identityenduser,$datapost['ATICE_LASTNAME'],$datapost['ATICE_FIRSTNAME'],"Animateur TICE");
384
          
385
          make_conffiles($datapost['MAC0'],$pass,$code);
386

    
387

    
388
        }
389
        //Sinon, c'est louche, on informe ryxeo et on avertis l'utilisateur
390
        else {
391
          $message .= "<p>Attention, Ce pack a déjà été attribué à un serveur !</p>\n";
392
          $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";
393

    
394
          $mail_content = "
395
Bonjour,
396
le pack $pass :: $code vient d'être utilisé pour enregistrer un serveur alors que ce pack a déjà
397
été utilisé. Merci de vérifier s'il ne s'agit pas d'une tentative de réinstallation multiple ...
398

399
Informations brutes récoltées:
400

401
";
402
          foreach ($datapost as $key => $value) {
403
            $mail_content .= "$key -> $value\n";
404
          }
405
          
406
          $mail_content .= "
407

408
--
409
abuledu.net est un service de RyXéo SARL, société éditrice d'AbulÉdu
410

411
";
412
          ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","Pack déjà activé plusieurs fois !");
413
        }
414
      }
415
    }
416
    //pack deja utilise ? si oui c'est qu'il a bien été activé
417
    else if($data['FK_activation'] > 0) {
418
      $notes = "Données collectées lors de l'enregistrement du serveur le " . date("Y-m-d") . "\n\n";
419
      foreach ($datapost as $key => $value) {
420
        $notes .= "$key = $value\n";
421
      }
422
      //On créé l'entité de l'école dans l'entité du client qui est elle même dans l'entité du revendeur
423
      $query1 = "SELECT * FROM glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "'";
424
      $result1 = $DB->query($query1);
425
      if($DB->numrows($result1) > 0) {
426
        //L'entité existe déjà ...
427
        $data1 = $DB->fetch_assoc($result1);
428
        $identityenduser = $data1['ID'];
429
      }
430
      else {
431
        //L'entité n'existe pas, on l'ajoute
432
        $query1 = "INSERT INTO glpi_entities VALUES('','" . addslashes($datapost['INAME']) . "'," . $data['FK_client'] . ",'" . $data['completename'] . " > " . addslashes($datapost['INAME']) . "','',5)";
433
        $result1 = $DB->query($query1);
434
        $send_mail = 1;
435
      }
436
      $query1 = "SELECT * from glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "';";
437
      $result1 = $DB->query($query1);
438
      $data1 = $DB->fetch_assoc($result1);
439
      //Creation ok
440
      $identityenduser = $data1['ID'];
441
      if($DB->numrows($result1) > 0) {
442
        $query1 = "INSERT INTO glpi_entities_data VALUES('',$identityenduser,'" .
443
          addslashes($datapost['IADDRESS0'] . " " . $datapost['IADDRESS1'] ) . "','" .
444
          addslashes($datapost['IPOSTALCODE']) . "','" .
445
          addslashes($datapost['ICITY']) . "','" .
446
          "','" .
447
          addslashes($datapost['ICOUNTRY']) . "','" .
448
          "','" .
449
          addslashes($datapost['ITEL']) . "','" .
450
          "','" .
451
          addslashes($datapost['IEMAIL']) . "','" .
452
          "','" .
453
          "','" .
454
          "');";
455
        $result1 = $DB->query($query1);
456
        //print $query1;
457
        //print_r($data1);
458
        $message .= "<ul>\n";
459
        if($result1)
460
          $message .= "<li>Création de l'école: <font color=\"green\">OK</font></li>\n";
461
        else {
462
          $message .= "<li>Création de l'école: <font color=\"red\">ERROR</font></li>\n";
463
        }
464

    
465
      }
466
    
467
      //Il faut inserer le serveur dans le compte du client final et faire le toutim
468
      $query2 = "INSERT INTO glpi_computers(FK_entities,name,date_mod,os_license_number,comments,notes,state)
469
VALUES(
470
'" . $identityenduser . "',
471
'" . addslashes($datapost['INAME']) . "',
472
NOW(),
473
'" . $mac0 . ".dip.abuledu.net',
474
'" . addslashes($datapost['ICOMMENT']) . "',
475
'" . addslashes($notes) . "',
476
'1'
477
)";
478
      $result2 = $DB->query($query2);
479
      $send_mail = 1;
480

    
481
      $query2 = "SELECT * from glpi_computers WHERE name='" . addslashes($datapost['INAME']) . "' AND os_license_number='" . $mac0 . ".dip.abuledu.net';";
482
      //      print "select $query2";
483
      $result2 = $DB->query($query2);
484
      $data2 = $DB->fetch_assoc($result2);
485
      //      print_r($data2);
486
      //Creation ok
487
      $idserver = $data2['ID'];
488
      if($DB->numrows($result2) > 0) {
489
        $message .= "<li>Ajout du serveur sur AbulÉdu.net: <font color=\"green\">OK</font></li>\n";
490

    
491
        //On attribue le pack au serveur
492
        $nbu = $data['nbused'] + 1;
493
        $query3 = "UPDATE glpi_plugin_anet_epacks SET FK_serveur='" . $idserver  . "', FK_enduser='" . $identityenduser . "', nbused='$nbu' WHERE code='$code' AND password='$pass'";
494
        $result3 = $DB->query($query3);
495
        
496
        
497
        $query3 = "INSERT INTO glpi_computer_device(specificity,device_type,FK_device,FK_computers)
498
VALUES('" . $datapost['CPU'] . "','2','2','$idserver'),
499
('" . $datapost['RAM'] . "','3','2','$idserver'),
500
('" . $datapost['HDD0'] . "','4','4','$idserver'),";
501
        if(trim($datapost['HDD1']))
502
          $query3 .= "('" . $datapost['HDD1'] . "','4','4','$idserver'),";
503
        $query3 .= "('" . $datapost['MAC0'] . "','5','2','$idserver'),
504
('" . $datapost['MAC1'] . "','5','2','$idserver');";
505
        $result3 = $DB->query($query3);
506
        $send_mail = 1;
507
        if($result3)
508
          $message .= "<li>Ajout des pièces détachées du serveur: <font color=\"green\">OK</font></li>\n";
509
        else
510
          $message .= "<li>Ajout des pièces détachées du serveur: <font color=\"red\">ERROR</font></li>\n";
511
        //Insertion des pièces détachées ok
512

    
513
        //Ajout des contacts liés à ce serveur ?
514
        add_user_and_update_link($datapost['IEMAIL'], $identityenduser,$datapost['INAME'],$datapost['ICITY'],"Installation");
515
        add_user_and_update_link($datapost['ADM_EMAIL'], $identityenduser,$datapost['ADM_LASTNAME'],$datapost['ADM_FIRSTNAME'],"Directrice ou directeur");
516
        add_user_and_update_link($datapost['PR_EMAIL'], $identityenduser,$datapost['PR_LASTNAME'],$datapost['PR_FIRSTNAME'],"Autre contact");
517
        add_user_and_update_link($datapost['ATICE_EMAIL'], $identityenduser,$datapost['ATICE_LASTNAME'],$datapost['ATICE_FIRSTNAME'],"Animateur TICE");
518

    
519
        //Création des fichiers de conf pour se rattacher a la maintenance (?) ... mais si pas de maintenance ?
520
        //On gerera ça sur les paiements des contrats associés
521
        make_conffiles($datapost['MAC0'],$pass,$code);
522

    
523
        //Mail d'information a ryxeo
524
        send_mail_installation($pass,$code,$datapost);
525
        
526
        $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";
527
        $message .= "</ul>\n";
528

    
529
      }
530
      else
531
        $message .= "<li>Ajout du serveur sur anet: <font color=\"red\">ERROR</font></li>\n";
532
    }
533
    else if ($data['activation_date'] == "0000-00-00") {
534
      $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";
535
    }
536
    else {
537
      $message .= "<p><font color=\"red\">Erreur, ce pack a déjà été utilisé ou n'a pas encore été activé !!!</font></p>\n";
538
    }
539
  }
540
  else {
541
    $message .= "<p><font color=\"red\">Erreur de code ou de mot de passe epack !!!</font></p>\n";
542
  }
543
 }
544
 else {
545
   $message .= "<p><font color=\"red\">Erreur: code ou mot de passe epack invalide.</font></p>\n";
546
 }
547

    
548
$object = array();
549
if($message == "")
550
  $message .= "<p><font color=\"red\">Erreur non prévue, merci de contacter RyXéo sans tarder...</font></p>";
551
$object['message'] = "<h1>Enregistrement de votre serveur avec un ePack</h1>\n";
552
$object['message'] .= $message;
553
$object['command'] = $commande;
554

    
555
//On touche le fichier pour forcer un update de gnudip et des accreditations ... uniquement si epack valide
556
if($send_mail) {
557
  @touch("/tmp/update-anet");
558
  @chmod("/tmp/update-anet",0666);
559
}
560
print serialize($object);
561
//print_r($_SERVER);
562

    
563
?>
Redmine Appliance - Powered by TurnKey Linux