Projet

Général

Profil

Révision e213dd82

Voir les différences:

htdocs/epack/export/checksum.md5
1
78310e8f3bb280084faf9f0e1d7810d0  checksum
1
6058fe910c89a9aeaacd37969d3716a2  checksum
htdocs/epack/register-tabuledu.php
1
<?php
2
//AJAX CODE
3

  
4
$commande = "";
5
$message = "";
6
$debug = "";
7
$log_debug = 1; //flag pour savoir s'il faut ecrire les debug logs dans le fichier de logs
8
$log_file = "/tmp/debug.log";
9
$send_mail = 0; //flag pour savoir s'il faut envoyer un mail (en bref a toute insertion ou update de base)
10

  
11
function make_pdf($pass,$code,$datapost) {
12
  global $message;
13
  global $login_email;
14
  require_once('lib/odf.php');
15
  $odf = new odf("abuledu-base_genere_automatiquement_enregistrement_epack.odp");
16
   
17
  //1ere page
18
  setlocale(LC_TIME, "fr_FR.UTF-8");
19
  //  $odf->setVars('date', strftime("%A %e %B %Y"));
20
  $odf->setVars('date_installation', $datapost['IDATE']);
21
  $odf->setVars('date', date("d/m/Y"));
22

  
23
  //Le epack
24
  $odf->setVars('epack_pass', $pass);
25
  $odf->setVars('epack_code', $code);
26

  
27
  //Les mots de passes
28
  $odf->setVars('pass_root', $datapost['IROOT']);
29
  $odf->setVars('pass_abuladmin', $datapost['IABE']);
30

  
31
  //L'école
32
  $odf->setVars('ecole_nom', $datapost['INAME'], true, 'UTF-8');
33
  $odf->setVars('ecole_adresse', $datapost['IADDRESS0'], true, 'UTF-8');
34
  $odf->setVars('ecole_cp', $datapost['IPOSTALCODE'], true, 'UTF-8');
35
  $odf->setVars('ecole_ville', $datapost['ICITY'], true, 'UTF-8');
36
  $odf->setVars('ecole_pays', $datapost['ICOUNTRY'], true, 'UTF-8');
37
  $odf->setVars('ecole_tel', $datapost['ITEL'], true, 'UTF-8');
38
  $odf->setVars('ecole_email', $datapost['IEMAIL'], true, 'UTF-8');
39

  
40
  //Le tabuledu
41
  $odf->setVars('srv_srv', $datapost['ISRV'], true, 'UTF-8');
42
  $odf->setVars('srv_serial', $datapost['ISERIAL'], true, 'UTF-8');
43
  $odf->setVars('srv_cpu', $datapost['CPU'], true, 'UTF-8');
44
  $odf->setVars('srv_ram', $datapost['RAM'], true, 'UTF-8');
45
  $odf->setVars('srv_hdd0', $datapost['HDD0'], true, 'UTF-8');
46
  $odf->setVars('srv_hdd1', $datapost['HDD1'], true, 'UTF-8');
47
  $odf->setVars('srv_eth0', $datapost['MAC0'], true, 'UTF-8');
48
  $odf->setVars('srv_eth1', $datapost['MAC1'], true, 'UTF-8');
49

  
50
  //L'admin local
51
  $odf->setVars('adm_prenom', $datapost['ADM_FIRSTNAME'], true, 'UTF-8');
52
  $odf->setVars('adm_nom', $datapost['ADM_LASTNAME'], true, 'UTF-8');
53
  $odf->setVars('adm_email', $datapost['ADM_EMAIL'], true, 'UTF-8');
54

  
55
  //La personne ressource
56
  $odf->setVars('pr_prenom', $datapost['PR_FIRSTNAME'], true, 'UTF-8');
57
  $odf->setVars('pr_nom', $datapost['PR_LASTNAME'], true, 'UTF-8');
58
  $odf->setVars('pr_email', $datapost['PR_EMAIL'], true, 'UTF-8');
59

  
60
  //L'anim TICE
61
  $odf->setVars('atice_prenom', $datapost['ATICE_FIRSTNAME'], true, 'UTF-8');
62
  $odf->setVars('atice_nom', $datapost['ATICE_LASTNAME'], true, 'UTF-8');
63
  $odf->setVars('atice_email', $datapost['ATICE_EMAIL'], true, 'UTF-8');
64

  
65
  //Le revendeur
66
  $odf->setVars('rvd_code', $datapost['RCODE'], true, 'UTF-8');
67
  $odf->setVars('rvd_nom', $datapost['RNAME'], true, 'UTF-8');
68
  $odf->setVars('rvd_tel', $datapost['RTEL'], true, 'UTF-8');
69
  $odf->setVars('rvd_email', $datapost['REMAIL'], true, 'UTF-8');
70
  $odf->setVars('rvd_adresse', $datapost['RADDRESS'], true, 'UTF-8');
71
  $odf->setVars('rvd_cp', $datapost['RCP'], true, 'UTF-8');
72
  $odf->setVars('rvd_ville', $datapost['RVILLE'], true, 'UTF-8');
73
  
74
  //On créé un fichier local pour archive ...
75
  $fichier="archives/" . date("Y-m-d") . "-epack-register-" . $code . ".odp";
76
  $fichier_pdf="archives/" . date("Y-m-d") . "-epack-register-" . $code . ".pdf";
77

  
78
  $odf->saveToDisk($fichier);
79
  $t = exec("unoconv --server localhost --port 2002 -f pdf " . $fichier);
80

  
81
  //Ensuite il faut l'envoyer par email ...
82
  $txtmail = "Bonjour,
83
vous venez d'enregistrer un ePack d'installation AbulÉdu et nous vous en remercions.
84

  
85
Vous trouverez ci-joint le document récapitulatif de votre enregistrement.
86

  
87
--
88
RyXéo SARL
89
contact@ryxeo.com
90
Tel: 05 35 54 01 18";
91
  $crlf = "\n";
92
  $hdrs = array(
93
	      'From'    => 'contact@ryxeo.com',
94
              'Subject' => mb_encode_mimeheader("[AbulEdu] Fiche d'installation " . $datapost['INAME']),
95
	      'BCC'     => 'contact@ryxeo.com, supportteam@ryxeo.com'
96
		);
97
  $mime = new Mail_mime($crlf);
98
  $mime->setTXTBody($txtmail);
99
  $mime->addAttachment($fichier_pdf, mime_content_type($fichier_pdf));
100
  $mime->addAttachment($fichier, mime_content_type($fichier));
101
  $body = $mime->get(array('text_charset' => 'utf-8'));
102
  $hdrs = $mime->headers($hdrs);
103
  $mail =& Mail::factory('mail');
104
  
105
  if(trim($datapost['REMAIL']) == "") {
106
    if(trim($login_email) != "") {
107
      $mail->send($login_email, $hdrs, $body);
108
    }
109
    else {
110
      //On cherche le mail associe a ce pack ?
111
      $mail->send("contact@ryxeo.com", $hdrs, $body);
112
    }
113
  }
114
  else {
115
    $mail->send($datapost['REMAIL'], $hdrs, $body);
116
  }
117
}
118

  
119
function send_mail_installation($pass,$code,$datapost) {
120
  $mail_content = "
121

  
122
Bonjour,
123

  
124
un nouveau tabuledu vient d'être inséré dans AbulÉdu.NET:
125

  
126
Référence du ePack AbulÉdu:
127
 - $pass
128
 - $code
129

  
130
Site de l'installation:
131
 - Nom:           " .  addslashes($datapost['INAME']) . "
132
 - Adresse:       " .  addslashes($datapost['IADDRESS0'] . " " . $datapost['IADDRESS1'] ) . "
133
 - Code postal:   " .  addslashes($datapost['IPOSTALCODE']) . "
134
 - Ville:         " .  addslashes($datapost['ICITY']) . "
135
 - Pays:          " .  addslashes($datapost['ICOUNTRY']) . "
136
 - Téléphone:     " .  addslashes($datapost['ITEL']) . "
137
 - Adresse email: " .  addslashes($datapost['IEMAIL']) . "
138

  
139
Tabuledu:
140
 - Marque ou modèle:    " . $datapost['ISRV'] . "
141
 - Numéro de série:     " . $datapost['ISERIAL'] . "
142
 - Processeur:          " . $datapost['CPU'] . "
143
 - Mémoire vive:        " . $datapost['RAM'] . "
144
 - Disque dur 1:        " . $datapost['HDD0'] . "
145
 - Disque dur 2:        " . $datapost['HDD1'] . "
146
 - Carte réseau 1:      " . $datapost['MAC0'] . "
147
 - Carte réseau 2:      " . $datapost['MAC1'] . "
148
 - Date d'installation: " . $datapost['IDATE'] . "
149

  
150
Mots de passe:
151
 - root: " . $datapost['IROOT'] . "
152
 - abuladmin: " . $datapost['IABE'] . "
153

  
154
Installateur:
155
 - Société:   " . $datapost['RCODE'] . "
156
 - Adresse:   " . $datapost['RADDRESS'] . "
157
 - Ville:     " . $datapost['RCP'] . " " . $datapost['RVILLE'] . "
158
 - Nom:       " . $datapost['RNAME'] . "
159
 - Téléphone: " . $datapost['RTEL'] . "
160
 - Email:     " . $datapost['REMAIL'] . "
161

  
162
Compte utilisateur:
163
 - Nom:    " . $datapost['ADM_LASTNAME'] . "
164
 - Prénom: " . $datapost['ADM_FIRSTNAME'] . "
165
 - Email:  " . $datapost['ADM_EMAIL'] . "
166

  
167
Compte personne ressource:
168
 - Nom:    " . $datapost['PR_LASTNAME'] . "
169
 - Prénom: " . $datapost['PR_FIRSTNAME'] . "
170
 - Email:  " . $datapost['PR_EMAIL'] . "
171

  
172
Compte ATICE:
173
 - Nom:    " . $datapost['ATICE_LASTNAME'] . "
174
 - Prénom: " . $datapost['ATICE_FIRSTNAME'] . "
175
 - Email:  " . $datapost['ATICE_EMAIL'] . "
176

  
177
Commentaires:
178
" . $datapost["ICOMMENT"] . "
179

  
180
--
181
abuledu.net est un service de RyXéo SARL, société éditrice d'AbulÉdu
182

  
183
";
184

  
185
  if(stripos($code, "-TESTS-")) {
186
    ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","[epack de test] Nouveau tabuledu dans la base abuledu.net");
187
    make_conffiles($datapost['MAC0'],$pass,$code);
188
  }
189
  else {
190
    ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","Nouveau tabuledu dans la base abuledu.net");
191
  }
192
}
193

  
194
//Verifie si les donnees qu'on a en entree sont correctes sinon on saute ... direction webadmin/installation
195
function verification_data() {
196
  global $datapost;
197
  global $message;
198
  $error = "";
199
  if(trim(strtolower($datapost['MAC0'])) == "") // || trim(strtolower($datapost['MAC1'])) == "" )
200
    $error .= "<li>Il manque une carte réseau dans ce tabuledu !</li>";
201
  if(trim($datapost['INAME'])        == "")
202
    $error .= "<li>Erreur sur le nom de l'installation</li>";
203
  if(trim($datapost['IADDRESS0'])    == "")
204
    $error .= "<li>Adresse de l'installation incorrecte</li>";
205
  if(trim($datapost['IPOSTALCODE'])  == "")
206
    $error .= "<li>Code postal incorrect</li>";
207
  if(trim($datapost['ICITY'])        == "")
208
    $error .= "<li>Nom de ville incorrect</li>";
209
  if(trim($datapost['ICOUNTRY'])     == "")
210
    $error .= "<li>Nom du pays incorrect</li>";
211
  if(trim($datapost['ITEL'])         == "")
212
    $error .= "<li>Numéro de téléphone incorect</li>";
213
  if(trim($datapost['ADM_LASTNAME']) == "")
214
    $error .= "<li>Nom du contact administratif incomplet</li>";
215
  if(trim($datapost['ADM_FIRSTNAME'])== "")
216
    $error .= "<li>Prénom du contact administratif incomplet</li>";
217
  if(strpos($datapost['IEMAIL'],"@")    == FALSE)
218
    $error .= "<li>Adresse email de l'école incorrecte</li>";
219
  if(strpos($datapost['ADM_EMAIL'],"@") == FALSE)
220
    $error .= "<li>Adresse email du responsable administratif incorrecte</li>";
221

  
222
  if($error != "") {
223
    $message .= "<ul>";
224
    $message .= $error;
225
    $message .= "</ul>";
226
    return false;
227
  }
228
  else
229
    return true;
230

  
231
}
232

  
233
//création des fichiers de conf sur ce nouve<au tabuledu
234
//ou restauration des fichiers de conf (si réinstallation)
235
function make_conffiles($login,$pass,$code) {
236
  global $commande;
237
  $codecrypt = md5($pass);
238

  
239
  //Si c'est un tabuledu de tests on ne cree surtout pas le fichier gdipc pour eviter que apt essaye
240
  //de passer en mode authentifie, on demandera donc le login/pass rvd a chaque upgrade
241
  if(stripos($code, "-TESTS-")) {
242
    $commande .= "";
243
  }
244
  else {
245
    $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
246
  chmod 600 ~abecmd/.GnuDIP2
247
  chown abecmd:admin ~abecmd/.GnuDIP2
248
  su - abecmd gdipc\n";
249
  }
250

  
251
  $commande .= "  mkdir ~abecmd/.ssh || true
252
  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
253
ssh-dss AAAAB3NzaC1kc3MAAACBAIyAzv1X8Hy8r8QiJAmhlDs9INd0jCpYNk5OxBDYA1/qdmKVqVMwKACvZg8xigRBg4e5PMsgpGQf9OxHTlhIiqAjwxmi7tHAy1t1fHuqDCZmqpQG5banOPvr4R5w4q47jKAJNqRsofgZACQKo8KkSHxY5VWZNx5bOfZYdEcWcNqpAAAAFQCXElvdvY+/aILI5a1z4fKRybA7GQAAAIB+5v/foiMKyZ+JEocToPIj2fP4mH7o8xnA1T8HKUGOiutxT/TWT4OnUMmquA/XVdzOyJ/tEeznfUDvlJZzKtFoW75ftQ8Or0AJj68jGQQ3wxQW5TXKuOCoo4vdf0ZQ+ASbzY1ECdxiQEB5kWusWbpes/eyTzDzjpUjMfR2JS5+rAAAAIAksQfdasobfpGuqLIvHBpgSFyas9J6EguBQVauNyLy7IE/WmAN1zgbYvBVU7KY3WUr5pgum9GcExCfnGH/qW7zR7M5zbZdOwq2W4AphXibkf+YbB2q1BouigbUzCiA54wa6XArtHsx0PpzyToHjAplnI4O5DhJ1SQNHClLbfA9Gw== erics@hurlevent
254
\" > ~abecmd/.ssh/authorized_keys
255
  chmod 700 ~abecmd/.ssh -R
256
  chown abecmd:admin ~abecmd/.ssh -R
257
  adduser abecmd admin || true
258
  cd ~abecmd
259
  wget apt.ryxeo.com/ryxeo/bashrc -O .bashrc
260
  chown abecmd .bashrc
261
";
262

  
263
  //Et maintenant on sauvegarde qqpart le code/pass du pack
264
  $commande .= "
265
echo \"" . $code . ":" . $pass . "\" > /etc/abuledu/epack
266
chown aesd:www-data /etc/abuledu/epack || true
267
chmod 640 /etc/abuledu/epack || true
268
sed -i -e \"/.*EPACK.*/D\" /etc/abuledu/rvd || true
269
echo RVD_EPACK_CODE=\\\"$code\\\" >> /etc/abuledu/rvd
270
";
271

  
272
  //L'identification du revendeur ... a améliorer
273
  $commande .= make_rvd_conffile();
274

  
275
  //Il faudrait egalement faire la base pour OCS-NG et les remontees automatiques ... on utilisera le code du epack 
276
}
277

  
278
function make_rvd_conffile() {
279
  global $DB;
280
  //Securisation de l'identification du revendeur ... a améliorer
281
  $commande .= "
282
chown aesd /etc/abuledu/rvd
283
chmod 400 /etc/abuledu/rvd
284
";
285

  
286
}
287

  
288
function add_user_and_update_link($usermail,$identity,$userlastname,$userfirstname,$tag="") {
289
  global $DB;
290
  global $debug;
291
  global $message;
292
  global $send_mail;
293

  
294
  if(trim($usermail) == "") {
295
    $message .= "<li><font color=\"red\">ERROR ($tag)</font> compte utilisateur sans adresse email ! $userlastname :: $userfirstname</li>\n";
296
    return;
297
  }
298

  
299
  $query = "SELECT * from glpi_users WHERE email='$usermail'";
300
  $result = $DB->query($query);
301
  $debug .= "<p>nb ; " . $DB->numrows($result) . " req : $query</p>";
302
  if($DB->numrows($result)>0) {
303
    $data = $DB->fetch_assoc($result);
304
    $iduser = $data['ID'];
305
    //existe dejà on fait juste le lien s'il n'existe pas déjà
306
    $query2 = "SELECT * FROM glpi_users_profiles WHERE FK_users='$iduser' AND FK_entities='$identity'";
307
    //$debug .= "$query2";
308
    $result2 = $DB->query($query2);
309
    if($DB->numrows($result2)<=0) {
310
      //pour eviter qu'un utilisateur se retrouve dans l'entite racine ...
311
      if(trim($identity) != 0) {
312
	$query3 = "INSERT INTO glpi_users_profiles(FK_users,FK_entities,FK_profiles,recursive,dynamic) VALUES('$iduser','$identity',1,0,1)";
313
	$result3 = $DB->query($query3);
314
	$send_mail = 1;
315
	if($result3)
316
	  $message .= "<li>Attribution des droits de l'utilisateur $usermail sur le tabuledu: <font color=\"green\">OK</font></li>\n";
317
	else {
318
	  $message .= "<li>Attribution des droits de l'utilisateur $usermail sur le tabuledu: <font color=\"red\">ERROR</font></li>\n";
319
	}
320
      }
321
      else {
322
	$message .= "<li>Tentative de lien avec l'entité racine($identity) refusée pour $usermail: <font color=\"red\">ERROR</font></li>\n";
323
	//$message .= "<li>$query2</li>\n";
324
      }
325
    }
326
    //Sinon c'est que tout est déjà fait !
327
  }
328
  //Sinon c'est que l'utilisateur n'existe pas encore dans la base
329
  else {
330
    //Insérer l'utilisateur ... et appel sur la même fonction qui cette fois ci fera le reste :)
331
    $query2 = "INSERT INTO glpi_users(name,email,realname,firstname,FK_profiles,FK_entities,auth_method) VALUES(
332
'$usermail',
333
'$usermail',
334
'$userlastname',
335
'$userfirstname',
336
'0',
337
'$identity',
338
'1'
339
)";
340
    $result2 = $DB->query($query2);
341
    $send_mail = 1;
342
    if($result2) {
343
      $message .= "<li>Création du compte utilisateur $usermail : <font color=\"green\">OK</font></li>\n";
344
      add_user_and_update_link($usermail,$identity,$userlastname,$userrfirstname,$tag);
345
    }
346
    else {
347
      $message .= "<li>Création du compte utilisateur $usermail : <font color=\"red\">ERROR</font></li>\n";
348
    }
349
  }
350
}
351

  
352
//Vite une session
353
session_start();
354
if(trim($_GET['reset']) != "") {
355
  // Finalement, on détruit la session.
356
  session_destroy();
357
  header('Location: http://abuledu.net/epack/register/');
358
 }
359
//print_r($_SESSION);
360
//recupration des variables de l'url
361
$g_http_request = $_SERVER['REQUEST_URI'];
362

  
363
if($_SESSION['epack_session'] > 1) {
364
  $pass    = strtoupper($_SESSION['epack_pass']);
365
  $code    = strtoupper($_SESSION['epack_code']);
366
  if(isset($_POST['login_email'])) {
367
    $login_email = $_POST['login_email'];
368
    $login_pass  = $_POST['login_pass'];
369
  }
370
  if(isset($_SESSION['login_email'])) {
371
    $login_email = $_SESSION['login_email'];
372
    $login_pass  = $_SESSION['login_pass'];
373
  }
374
}
375
else {
376
  $debug .= "Pas de session\n";
377
  //Si on est sur un formulaire POST (on casse la limite de la taille de la requete GET)
378
  if(isset($_POST["pass"])) {
379
    $debug .= "Passage en POST\n";
380

  
381
    $pass = $_POST["pass"];
382
    $code = strtoupper($_POST["code"]);
383
    $datapost = array();
384

  
385
    $debug .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>\n";
386

  
387
    foreach($_POST as $key=>$value) {
388
      $datapost[$key]=$value;
389
      $debug .= "<p>" . $key . " -> " . $value . "</p>\n";
390
    }
391
  }
392
  else {
393
    ereg(".*pass=(.*).code=(.*).data=(.*)",$_SERVER['REQUEST_URI'],$regs);
394
    $pass = addslashes($regs[1]);
395
    $code = strtoupper(addslashes($regs[2]));
396
    $keyvalue_list=explode("&",base64_decode($regs[3]));
397
    $datapost = array();
398

  
399
    $debug .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>\n";
400
    foreach($keyvalue_list as $key=>$value) {
401
      // Explode each individual key/value into an array
402
      $keyvalue=explode("=",$value);
403
      // Make sure we have a "key=value" array
404
      if(count($keyvalue)==2) {
405
	$datapost[$keyvalue[0]]=$keyvalue[1];
406
	$debug .= "<p>" . $keyvalue[0] . " -> " . $keyvalue[1] . "</p>\n";
407
      }
408
      else {
409
	$debug .= "<p>XXX:" . $value . "</p>\n";
410
      }
411
    }
412
  }
413

  
414
  //Ou du POST
415
  if(trim($pass) == "" || trim($code) == "") {
416
    $pass = addslashes($_POST['pass']);
417
    $code = addslashes(strtoupper($_POST['code']));
418
  }
419
}
420

  
421
$_SERVER['REQUEST_URI'] = "";
422
$_SERVER['HTTP_REFERER'] = "";
423

  
424
define('GLPI_ROOT', '..');
425
include (GLPI_ROOT . "/inc/includes.php");
426

  
427
include ("ryxeo.php");
428
include('Mail.php');
429
include('Mail/mime.php');
430

  
431
//Si epack ryxeo de tests
432
if(stripos($code, "RYXEO-TESTS-")) {
433
  if(is_array($datapost)) {
434
    $k = array_keys($datapost);
435
    for($i = 0; $i < count($k); $i++) {
436
      $key = $k[$i];
437
      $debug .= $key . "=" . $datapost[$key] . "\n";
438
    }
439
  }
440
 }
441
if(isset($datapost["MINIWEBADMIN"]) && stripos($code, "-TESTS-")) {
442
  $message .= "<p><h2>Vous pouvez maintenant passer à l'étape suivante: <a href=\"/maj/\">la 1ere mise à jour de votre tabuledu.</a></h2></p>\n";
443
  //le flag qui indique a miniwebadmin que le epack est enregistre
444
  $commande .= "\n touch /tmp/epack.ok \n";
445
 }
446

  
447
/*
448
if(trim($debug) != "" ) {
449
  $message .= "<pre>
450
$debug
451
</pre>";
452
 }
453
*/
454

  
455
$debug .= "<p>Du cote abuledu.net ... $g_http_request</p>\n7";
456

  
457

  
458
//On ne fait pas tout le bazaaar, on teste / valide la procedure uniquement
459
if(stripos($code, "-TESTS-")) {
460
  make_pdf($pass,$code,$datapost);
461
  send_mail_installation($pass,$code,$datapost);
462
 }
463
//print_r($_SERVER);
464
//On ne fait pas tout le bazaaar, on teste / valide la procedure uniquement
465
if(stripos($code, "-TESTS-")) {
466
  $object = array();
467
  $object['message'] = "<h1>Enregistrement de votre tabuledu avec un ePack</h1>\n";
468
  $object['message'] .= $message;
469
  $object['command'] = $commande;
470
  
471
  print serialize($object);
472
  return;
473
}
474

  
475
//print "<pre>";
476
//print_r($datapost);
477
//$message .= implode("::",$datapost);
478
//print "</pre>";
479
//reset ...
480
//print_r($_SESSION);
481
//unset($_SESSION['epack_session']);
482
if(trim($pass) != "" && trim($code) != "") {
483
  $query = "SELECT * FROM glpi_plugin_anet_epacks
484
LEFT JOIN glpi_entities AS g ON FK_client=g.ID
485
WHERE code='$code' AND password='$pass'";
486
  $result = $DB->query($query);
487
  $debug .= "$query";
488
  $mac0 = trim(strtolower($datapost['MAC0']));
489
  $mac1 = trim(strtolower($datapost['MAC1']));
490
  //$data=$DB->fetch_assoc($result);
491
  //$nbresultat = $DB->numrows($result);
492
  //print_r($data);
493
  //exit;
494
  if($DB->numrows($result)>0) {
495
    $data=$DB->fetch_assoc($result);
496

  
497
    $debug .= "Eric ... " . $mac0  . ": $code : $mac1";
498
    if( ! verification_data() ) {
499
      $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 tabuledu</a>. Merci de les corriger tout de suite et de repasser ensuite sur cette page !!!</font></p>\n";
500
    }
501
    //pack deja attribué à un tabuledu ?
502
    else if($data['FK_tabuledu'] > 0) {
503
      //      make_conffiles($datapost['MAC0'],$pass,$code);
504
      if( strlen($mac0) == 12 && strlen($mac1) == 12) {
505
	//Petite vérification, si c'est le même tabuledu qu'on a réinstallé x fois on laisse faire
506
	$query2 = "SELECT * FROM glpi_computers WHERE os_license_number LIKE '" . $mac0 . "%' OR os_license_number LIKE '" . $mac1 . "%' ";
507
	$result2 = $DB->query($query2);
508
	$data2=$DB->fetch_assoc($result2);
509
	//Ce pack a été utilisé pour ce tabuledu ... ok
510
	if($data2['ID'] == $data['FK_tabuledu']) {
511
	  $nbu = $data['nbused'];
512
	  make_conffiles($datapost['MAC0'],$pass,$code);
513

  
514
	  $message .= "<p>Ce pack a déjà été utilisé $nbu fois pour ce tabuledu. 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";
515
	  $message .= "<h4>Rappel des informations concernant ce tabuledu: </h4>";
516
	  $message .= "<ul>
517
  <li>Nom: " . $data2['name'] . "</li>
518
  <li>Commentaires: " . $data2['comments'] . "</li>
519
</ul>\n";
520
	  $message .= "<p>Merci d'avoir enregistré ce tabuledu. 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>";
521

  
522
	  if(isset($datapost["MINIWEBADMIN"])) {
523
	    $message .= "<p>Vous pouvez maintenant passer à l'étape suivante: <a href=\"/maj/\">la 1ere mise à jour de votre tabuledu.</a></p>\n";
524
	    //le flag qui indique a miniwebadmin que le epack est enregistre
525
	    $commande .= "\n touch /tmp/epack.ok \n";
526
	  }
527
	  //On incremente le compteur qui permettra de detecter les tabuledu tres souvent reinstalles
528
	  $nbu = $data['nbused'] + 1;
529
	  $query3 = "UPDATE glpi_plugin_anet_epacks SET nbused='$nbu' WHERE code='$code' AND password='$pass'";
530
	  $result3 = $DB->query($query3);
531

  
532
	  //On update les liens etc. (si on a change les comptes utilisateurs par ex.)
533
	  //TODO
534
	  $query1 = "SELECT * FROM glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "'";
535
	  $result1 = $DB->query($query1);
536
	  if($DB->numrows($result1) > 0) {
537
	    //L'entité existe déjà ...
538
	    $data1 = $DB->fetch_assoc($result1);
539
	    $identityenduser = $data1['ID'];
540
	  }
541
	  else {
542
	    $debug .= "<p>Erreur : $query1</p>";
543
	  }
544
	  $debug .= "<li>Entity: $query1</li>\n";
545
	  add_user_and_update_link($datapost['IEMAIL'], $identityenduser,$datapost['INAME'],$datapost['ICITY'],"Installation");
546
	  add_user_and_update_link($datapost['ADM_EMAIL'], $identityenduser,$datapost['ADM_LASTNAME'],$datapost['ADM_FIRSTNAME'],"Directrice ou directeur");
547
	  add_user_and_update_link($datapost['PR_EMAIL'], $identityenduser,$datapost['PR_LASTNAME'],$datapost['PR_FIRSTNAME'],"Autre contact");
548
	  add_user_and_update_link($datapost['ATICE_EMAIL'], $identityenduser,$datapost['ATICE_LASTNAME'],$datapost['ATICE_FIRSTNAME'],"Animateur TICE");
549
	  
550
	  make_conffiles($datapost['MAC0'],$pass,$code);
551

  
552

  
553
	}
554
	//Sinon, c'est louche, on informe ryxeo et on avertis l'utilisateur
555
	else {
556
	  $message .= "<p>Attention, Ce pack a déjà été attribué à un tabuledu !</p>\n";
557
	  $message .= "<p>Les packs sont à usage unique, merci d'acheter un nouveau pack pour ce tabuledu ou <a href=\"mailto:contact@ryxeo.com\">contactez-nous</a> si vous pensez qu'il s'agit d'une erreur.</p>\n";
558

  
559
	  $mail_content = "
560
Bonjour,
561
le pack $pass :: $code vient d'être utilisé pour enregistrer un tabuledu alors que ce pack a déjà
562
été utilisé. Merci de vérifier s'il ne s'agit pas d'une tentative de réinstallation multiple ...
563

  
564
Informations brutes récoltées:
565

  
566
";
567
	  foreach ($datapost as $key => $value) {
568
	    $mail_content .= "$key -> $value\n";
569
	  }
570
	  
571
	  $mail_content .= "
572

  
573
--
574
abuledu.net est un service de RyXéo SARL, société éditrice d'AbulÉdu
575

  
576
";
577
	  ryxeo_mail("anet@ryxeo.com",$mail_content,"contact@ryxeo.com","Pack déjà activé plusieurs fois !");
578
	}
579
      }
580
    }
581
    //pack deja utilise ? si oui c'est qu'il a bien été activé
582
    else if($data['FK_activation'] > 0) {
583
      $notes = "Données collectées lors de l'enregistrement du tabuledu le " . date("Y-m-d") . "\n\n";
584
      foreach ($datapost as $key => $value) {
585
	$notes .= "$key = $value\n";
586
      }
587
      //On créé l'entité de l'école dans l'entité du client qui est elle même dans l'entité du revendeur
588
      $query1 = "SELECT * FROM glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "'";
589
      $result1 = $DB->query($query1);
590
      if($DB->numrows($result1) > 0) {
591
	//L'entité existe déjà ...
592
	$data1 = $DB->fetch_assoc($result1);
593
	$identityenduser = $data1['ID'];
594
      }
595
      else {
596
	//L'entité n'existe pas, on l'ajoute
597
	$query1 = "INSERT INTO glpi_entities VALUES('','" . addslashes($datapost['INAME']) . "'," . $data['FK_client'] . ",'" . $data['completename'] . " > " . addslashes($datapost['INAME']) . "','',5)";
598
	$result1 = $DB->query($query1);
599
	$send_mail = 1;
600
      }
601
      $query1 = "SELECT * from glpi_entities WHERE name='" . addslashes($datapost['INAME']) . "' AND parentID='" . $data['FK_client'] . "';";
602
      $result1 = $DB->query($query1);
603
      $data1 = $DB->fetch_assoc($result1);
604
      //Creation ok
605
      $identityenduser = $data1['ID'];
606
      if($DB->numrows($result1) > 0) {
607
	$query1 = "INSERT INTO glpi_entities_data VALUES('',$identityenduser,'" .
608
	  addslashes($datapost['IADDRESS0'] . " " . $datapost['IADDRESS1'] ) . "','" .
609
	  addslashes($datapost['IPOSTALCODE']) . "','" .
610
	  addslashes($datapost['ICITY']) . "','" .
611
	  "','" .
612
	  addslashes($datapost['ICOUNTRY']) . "','" .
613
	  "','" .
614
	  addslashes($datapost['ITEL']) . "','" .
615
	  "','" .
616
	  addslashes($datapost['IEMAIL']) . "','" .
617
	  "','" .
618
	  "','" .
619
	  "');";
620
	$result1 = $DB->query($query1);
621
	//print $query1;
622
	//print_r($data1);
623
	$message .= "<ul>\n";
624
	if($result1)
625
	  $message .= "<li>Création de l'école: <font color=\"green\">OK</font></li>\n";
626
	else {
627
	  $message .= "<li>Création de l'école: <font color=\"red\">ERROR</font></li>\n";
628
	}
629

  
630
      }
631
    
632
      //Il faut inserer le tabuledu dans le compte du client final et faire le toutim
633
      $query2 = "INSERT INTO glpi_computers(FK_entities,name,date_mod,os_license_number,comments,notes,state)
634
VALUES(
635
'" . $identityenduser . "',
636
'" . addslashes($datapost['INAME']) . "',
637
NOW(),
638
'" . $mac0 . ".dip.abuledu.net',
639
'" . addslashes($datapost['ICOMMENT']) . "',
640
'" . addslashes($notes) . "',
641
'1'
642
)";
643
      $result2 = $DB->query($query2);
644
      $send_mail = 1;
645

  
646
      $query2 = "SELECT * from glpi_computers WHERE name='" . addslashes($datapost['INAME']) . "' AND os_license_number='" . $mac0 . ".dip.abuledu.net';";
647
      //      print "select $query2";
648
      $result2 = $DB->query($query2);
649
      $data2 = $DB->fetch_assoc($result2);
650
      //      print_r($data2);
651
      //Creation ok
652
      $idserver = $data2['ID'];
653
      if($DB->numrows($result2) > 0) {
654
	$message .= "<li>Ajout du tabuledu sur AbulÉdu.net: <font color=\"green\">OK</font></li>\n";
655

  
656
	//On attribue le pack au tabuledu
657
	$nbu = $data['nbused'] + 1;
658
	$query3 = "UPDATE glpi_plugin_anet_epacks SET FK_serveur='" . $idserver  . "', FK_enduser='" . $identityenduser . "', nbused='$nbu' WHERE code='$code' AND password='$pass'";
659
	$result3 = $DB->query($query3);
660
	
661
	
662
	$query3 = "INSERT INTO glpi_computer_device(specificity,device_type,FK_device,FK_computers)
663
VALUES('" . $datapost['CPU'] . "','2','2','$idserver'),
664
('" . $datapost['RAM'] . "','3','2','$idserver'),
665
('" . $datapost['HDD0'] . "','4','4','$idserver'),";
666
	if(trim($datapost['HDD1']))
667
	  $query3 .= "('" . $datapost['HDD1'] . "','4','4','$idserver'),";
668
	$query3 .= "('" . $datapost['MAC0'] . "','5','2','$idserver'),
669
('" . $datapost['MAC1'] . "','5','2','$idserver');";
670
	$result3 = $DB->query($query3);
671
	$send_mail = 1;
672
	if($result3)
673
	  $message .= "<li>Ajout des pièces détachées du tabuledu: <font color=\"green\">OK</font></li>\n";
674
	else
675
	  $message .= "<li>Ajout des pièces détachées du tabuledu: <font color=\"red\">ERROR</font></li>\n";
676
	//Insertion des pièces détachées ok
677

  
678
	//Ajout des contacts liés à ce tabuledu ?
679
	add_user_and_update_link($datapost['IEMAIL'], $identityenduser,$datapost['INAME'],$datapost['ICITY'],"Installation");
680
	add_user_and_update_link($datapost['ADM_EMAIL'], $identityenduser,$datapost['ADM_LASTNAME'],$datapost['ADM_FIRSTNAME'],"Directrice ou directeur");
681
	add_user_and_update_link($datapost['PR_EMAIL'], $identityenduser,$datapost['PR_LASTNAME'],$datapost['PR_FIRSTNAME'],"Autre contact");
682
	add_user_and_update_link($datapost['ATICE_EMAIL'], $identityenduser,$datapost['ATICE_LASTNAME'],$datapost['ATICE_FIRSTNAME'],"Animateur TICE");
683

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

  
688
	//Mail d'information a ryxeo + pdf au rvendeur
689
	make_pdf($pass,$code,$datapost);
690
	send_mail_installation($pass,$code,$datapost);
691
	 
692
	if(isset($datapost["MINIWEBADMIN"])) {
693
	  $message .= "</ul>\n<p>Vous pouvez maintenant passer à l'étape suivante: <a href=\"/maj/\">la 1ere mise à jour de votre tabuledu.</a></p>\n";
694
	  //le flag qui indique a miniwebadmin que le epack est enregistre
695
	  $commande .= "\n touch /tmp/epack.ok \n";
696
	}
697
	else {
698
	  $message .= "<li><font color=\"green\">Bravo</font> votre tabuledu 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";
699
	  $message .= "</ul>\n";
700
	}
701
      }
702
      else
703
	$message .= "<li>Ajout du tabuledu sur anet: <font color=\"red\">ERROR</font></li>\n";
704
    }
705
    else if ($data['activation_date'] == "0000-00-00") {
706
      $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";
707
    }
708
    else {
709
      $message .= "<p><font color=\"red\">Erreur, ce pack a déjà été utilisé ou n'a pas encore été activé !!!</font></p>\n";
710
    }
711
  }
712
  else {
713
    $message .= "<p><font color=\"red\">Erreur de code ou de mot de passe epack !!!</font></p>\n";
714
  }
715
 }
716
 else {
717
   $message .= "<p><font color=\"red\">Erreur: code ou mot de passe epack invalide.</font></p>\n";
718
 }
719

  
720
$object = array();
721
if(trim($message) == "")
722
  $message .= "<p><font color=\"red\">Erreur non prévue, merci de contacter RyXéo sans tarder...</font></p>";
723
$object['message'] = "<h1>Enregistrement de votre tabuledu avec un ePack</h1>\n";
724
$object['message'] .= $message;
725
$object['command'] = $commande;
726

  
727
//On touche le fichier pour forcer un update de gnudip et des accreditations ... uniquement si epack valide
728
if($send_mail) {
729
  @touch("/tmp/update-anet");
730
  @chmod("/tmp/update-anet",0666);
731
}
732
print json_encode($object);
733

  
734
if($log_debug != "") {
735
  if($fp = fopen($log_file,"w")) {
736
    fwrite($fp, $debug);
737
    fclose($fp);
738
  }
739
}
740

  
741
//print_r($_SERVER);
742
?>
htdocs/epack/register.php
3 3

  
4 4
$commande = "";
5 5
$message = "";
6
$debug = "";
6 7
$send_mail = 0; //flag pour savoir s'il faut envoyer un mail (en bref a toute insertion ou update de base)
7 8

  
8 9
function make_pdf($pass,$code,$datapost) {
......
294 295

  
295 296
  $query = "SELECT * from glpi_users WHERE email='$usermail'";
296 297
  $result = $DB->query($query);
297
  //$message .= "<p>nb ; " . $DB->numrows($result) . " req : $query</p>";
298
  $debug .= "<p>nb ; " . $DB->numrows($result) . " req : $query</p>";
298 299
  if($DB->numrows($result)>0) {
299 300
    $data = $DB->fetch_assoc($result);
300 301
    $iduser = $data['ID'];
301 302
    //existe dejà on fait juste le lien s'il n'existe pas déjà
302 303
    $query2 = "SELECT * FROM glpi_users_profiles WHERE FK_users='$iduser' AND FK_entities='$identity'";
303
    //$message .= "$query2";
304
    //$debug .= "$query2";
304 305
    $result2 = $DB->query($query2);
305 306
    if($DB->numrows($result2)<=0) {
306 307
      //pour eviter qu'un utilisateur se retrouve dans l'entite racine ...
......
355 356
//print_r($_SESSION);
356 357
//recupration des variables de l'url
357 358
$g_http_request = $_SERVER['REQUEST_URI'];
358
//$message .= "<p>Du cote abuledu.net ...</p>";
359

  
359 360
if($_SESSION['epack_session'] > 1) {
360 361
  $pass    = strtoupper($_SESSION['epack_pass']);
361 362
  $code    = strtoupper($_SESSION['epack_code']);
......
369 370
  }
370 371
}
371 372
else {
373
  $debug .= "Pas de session\n";
372 374
  //Si on est sur un formulaire POST (on casse la limite de la taille de la requete GET)
373 375
  if(isset($_POST["pass"])) {
374
    //$message .= "Passage en POST";
376
    $debug .= "Passage en POST\n";
377

  
375 378
    $pass = $_POST["pass"];
376 379
    $code = strtoupper($_POST["code"]);
377 380
    $datapost = array();
378
    //$message .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>";
381

  
382
    $debug .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>\n";
383

  
379 384
    foreach($_POST as $key=>$value) {
380 385
      $datapost[$key]=$value;
381
      //$message .= "<p>" . $key . " -> " . $value . "</p>";
386
      $debug .= "<p>" . $key . " -> " . $value . "</p>\n";
382 387
    }
383 388
  }
384 389
  else {
......
387 392
    $code = strtoupper(addslashes($regs[2]));
388 393
    $keyvalue_list=explode("&",base64_decode($regs[3]));
389 394
    $datapost = array();
390
    //$message .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>";
395

  
396
    $debug .= "<p>Req::" . $_SERVER['REQUEST_URI'] . "</p>\n";
391 397
    foreach($keyvalue_list as $key=>$value) {
392 398
      // Explode each individual key/value into an array
393 399
      $keyvalue=explode("=",$value);
394 400
      // Make sure we have a "key=value" array
395 401
      if(count($keyvalue)==2) {
396 402
	$datapost[$keyvalue[0]]=$keyvalue[1];
397
	//$message .= "<p>" . $keyvalue[0] . " -> " . $keyvalue[1] . "</p>";
403
	$debug .= "<p>" . $keyvalue[0] . " -> " . $keyvalue[1] . "</p>\n";
398 404
      }
399 405
      else {
400
	//$message .= "<p>XXX:" . $value . "</p>";
406
	$debug .= "<p>XXX:" . $value . "</p>\n";
401 407
      }
402 408
    }
403 409
  }
......
408 414
    $code = addslashes(strtoupper($_POST['code']));
409 415
  }
410 416
}
417

  
411 418
$_SERVER['REQUEST_URI'] = "";
412 419
$_SERVER['HTTP_REFERER'] = "";
420

  
413 421
define('GLPI_ROOT', '..');
414 422
include (GLPI_ROOT . "/inc/includes.php");
415 423

  
......
433 441
  $commande .= "\n touch /tmp/epack.ok \n";
434 442
 }
435 443

  
436
if(trim($debug) != "" ) {
444
/*
445
  if(trim($debug) != "" ) {
437 446
  $message .= "<pre>
438
$debug
439
</pre>";
440
 }
447
  $debug
448
  </pre>";
449
  }
450
*/
451

  
452
$debug .= "<p>Du cote abuledu.net ... $g_http_request</p>\n7";
441 453

  
442 454
//On ne fait pas tout le bazaaar, on teste / valide la procedure uniquement
443 455
if(stripos($code, "-TESTS-")) {
......
468 480
LEFT JOIN glpi_entities AS g ON FK_client=g.ID
469 481
WHERE code='$code' AND password='$pass'";
470 482
  $result = $DB->query($query);
483
  //$message = "$query";
471 484
  $mac0 = trim(strtolower($datapost['MAC0']));
472 485
  $mac1 = trim(strtolower($datapost['MAC1']));
473 486
  //$data=$DB->fetch_assoc($result);
474 487
  //$nbresultat = $DB->numrows($result);
475
  //  print_r($data);
476
  //  exit;
488
  //print_r($data);
489
  //exit;
477 490
  if($DB->numrows($result)>0) {
478 491
    $data=$DB->fetch_assoc($result);
479 492

  
htdocs/mac/contract.php
1 1
<?php
2 2
/*
3 3
  gestion des contrats - affichage et rappel
4
  http://www.abuledu.net/mac/contract.php/view=toto/mac=08:D8:34:B8:90:CD
4 5
*/
5 6

  
6 7
$g_http_request = $_SERVER['REQUEST_URI'];
7
ereg(".*mac=(.*)",$_SERVER['REQUEST_URI'],$regs);
8
$mac = addslashes(strtoupper($regs[1]));
8
preg_match("/.*mac=(.*)/",$_SERVER['REQUEST_URI'],$regs);
9
$mac  = addslashes(strtoupper($regs[1]));
10

  
11
preg_match("/.*view=(.*)\/mac=/",$_SERVER['REQUEST_URI'],$regs);
12
$view = addslashes($regs[1]);
13

  
14
//print "on a $mac et $view";
15

  
9 16
//Ou du POST
10 17
if(trim($mac) == "") {
11 18
  $mac = addslashes(strtoupper($_POST['mac']));
12
 }
19
}
13 20

  
14 21
$_SERVER['REQUEST_URI'] = "";
15 22
$_SERVER['HTTP_REFERER'] = "";
......
17 24
include (GLPI_ROOT . "/inc/includes.php");
18 25

  
19 26
//On recupere l'id du serveur dont la macaddr correspond
20
$query = "SELECT ID FROM glpi_computers WHERE glpi_computers.os_license_number LIKE '" . $mac . ".%'";
27
$query = "SELECT FK_computers AS ID FROM glpi_computer_device WHERE specificity ='" . $mac . "'";
21 28
$result = $DB->query($query);
22 29
$data = $DB->fetch_assoc($result);
23 30
//print_r($data);
24 31

  
25 32
if($data['ID']) {
26 33
  $serverid=$data['ID'];
34
  
35
  //Quand on a le serverID il faut trouver l'entite dans laquelle il se trouve
36
  $queryEntity = "SELECT FK_entities AS EntityID FROM glpi_computers WHERE ID='$serverid'";
37
  $resultEntity = $DB->query($queryEntity);
38
  $dataEntity = $DB->fetch_assoc($resultEntity);
39
  $entityID = $dataEntity['EntityID'];
40
  
27 41
  //Et ensuite on cherche dans les contrats ce qui correspond
28 42
  // -> contrat non supprime
29 43
  // -> contrat correspondant a ce serveur
30 44
  // -> contrat de type 1 ()
31
  $query2 = "SELECT UNIX_TIMESTAMP(c.begin_date + INTERVAL c.duration MONTH) as endcontract,c.* FROM glpi_contract_device, glpi_contracts as c WHERE 
45
  $query2 = "SELECT UNIX_TIMESTAMP(c.begin_date + INTERVAL c.duration MONTH) as endcontract,c.* FROM glpi_contracts as c WHERE 
32 46
  c.deleted='0' AND
33
  glpi_contract_device.FK_device = '" . $serverid . "' AND
34
  glpi_contract_device.device_type = '1' AND
35
  c.ID=glpi_contract_device.FK_contract";
47
  c.FK_entities='$entityID'";
48

  
36 49
  //print $query2;
37 50
  $result2 = $DB->query($query2);
38 51
  $data2 = $DB->fetch_assoc($result2);
......
41 54
  //print mktime() . " -- ";
42 55
  $endc = $data2['endcontract'];
43 56
  if($endc > mktime()) {
44
    print $endc . ":" . "DIRECT:" . $data2['name'] . ":";
57
    if($view == "web") {
58
      header('Location: http://www.abuledu.net/mac/view/direct.php');
59
      exit;
60
    }
61
    else {
62
      print $endc . ":" . "DIRECT:" . $data2['name'] . ":";
63
    }
45 64
  }
46 65
  //Reconduction automatique ...
47 66
  else if($endc < mktime() && $data2['recursive']=='1') {
48
    print mktime(0,0,0, date("m",$endc)+$data2['periodicity'], date("d",$endc), date("Y",$endc)) . ":" . "DIRECT:" . $data2['name'] . ":" . "Renouvellement automatique";
67
    if($view == "web") {
68
      header('Location: http://www.abuledu.net/mac/view/direct.php');
69
      exit;
70
    }
71
    else {
72
      print mktime(0,0,0, date("m",$endc)+$data2['periodicity'], date("d",$endc), date("Y",$endc)) . ":" . "DIRECT:" . $data2['name'] . ":" . "Renouvellement automatique";
73
    }
49 74
  }
50 75
  else {
51 76
    //Le serveur a ete installe par un partenaire qui a un contrat global mais pas encore d'avenant pour ce serveur
......
61 86
    */
62 87
    $endc = $data3['endcontract'];
63 88
    if($endc > mktime()) {
64
      print $endc . ":PARTNER" . ":" . $data3['name'] . ":" . "Avenant pour ce serveur manquant";
89
      if($view == "web") {
90
	header('Location: http://www.abuledu.net/mac/view/partner.php');
91
	exit;
92
      }
93
      else {
94
	print $endc . ":PARTNER" . ":" . $data3['name'] . ":" . "Avenant pour ce serveur manquant";
95
      }
65 96
    }
66 97
    else{
67 98
      //Le serveur existe dans notre base mais c'est tout
68
      print "000:WAITING:000:";
99
      if($view == "web") {
100
	header('Location: http://www.abuledu.net/mac/view/waiting.php');
101
	exit;
102
      }
103
      else {
104
	print "000:WAITING:000:";
105
      }
69 106
    }
70 107
  }
71 108
 }
72 109
 else {
73
   print "000:FORBIDDEN:000:NOT";
110
   if($view == "web") {
111
     header('Location: http://www.abuledu.net/mac/view/forbidden.php');
112
     exit;
113
   }
114
   else {
115
     print "000:FORBIDDEN:000:NOT";
116
   }
74 117
 }
75 118

  
76 119
?>
scripts/net2dip.sendtohurlevent.php
119 119
//attention on a des serveurs pour lesquels on n'a pas de contrat encore ...
120 120
$query2 .= " AND e.FK_contract>'-1'";
121 121

  
122
//print $query2;
123
//print "\n";
124
//exit;
125

  
122 126
if ( DB::isError($result2 = $dbglpi->query($query2)) ) {
123 127
  die ("***\n$query2\n" . DB::errorMessage($result2) . "\n***\n\n");
124 128
 }

Formats disponibles : Unified diff

Redmine Appliance - Powered by TurnKey Linux