Subversion Repository Public Repository

Nextrek

Diff Revisions 727 vs 728 for /Android/SmartCharging/endPoints/edit_locale.php

Diff revisions: vs.
  @@ -27,7 +27,10 @@
27 27 $local = new Local();
28 28 $local_repo;
29 29
30 - if (!array_key_exists("email", $params) || $params["email"] === "" || !filter_var($params["email"], FILTER_VALIDATE_EMAIL)) {
30 + $user_id;
31 + $is_admin = false;
32 +
33 + if (array_key_exists("email", $params) && $params["email"] !== "" && !filter_var($params["email"], FILTER_VALIDATE_EMAIL)) {
31 34 $risposta = createErrorMessage(-1, "Parametro \"email\" non valido");
32 35 echo json_encode($risposta);
33 36 die();
  @@ -38,15 +41,37 @@
38 41 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
39 42 //echo "Connesso con successo al DB";
40 43
41 - if (!array_key_exists("token", $params) || !UserRepository::checkToken($params["token"], $conn)) {
42 - $risposta = createErrorMessage(-1, "Token non valido");
44 + if (!array_key_exists("token", $params) || $params["token"] === "") {
45 + $risposta = createErrorMessage(-1, "Parametro \"token\" non valido");
43 46 //$risposta["return"] = -1;
44 47 echo json_encode($risposta);
45 48 die();
46 49 }
50 +
51 + $user_id = UserRepository::getUserByToken($params["token"], $conn);
52 +
53 + if ($user_id == -1) {
54 + $is_admin = UserRepository::checkAdminByToken($params["token"], $conn);
55 + if (!$is_admin) { //controlla che l'utente sia amministratore
56 + $risposta = createErrorMessage(-1, "Token non valido");
57 + //$risposta["return"] = -1;
58 + echo json_encode($risposta);
59 + die();
60 + }
61 + }
47 62
48 63 $local_repo = new LocalRepository($conn);
49 64
65 + if (!$is_admin) { //nel caso non sia ammministratore --> effettua controllo sull'utente
66 + $oldLocal = $local_repo->getFullLocalInfo($params["local_id"]);
67 + if ($oldLocal->id_utente_owner != $user_id) { //l'utente non gestisce il locale
68 + $risposta = createErrorMessage(-1, "Token non valido");
69 + //$risposta["return"] = -1;
70 + echo json_encode($risposta);
71 + die();
72 + }
73 + }
74 +
50 75 $local->id = $params["local_id"];
51 76 $local->nomelocale = array_key_exists("nomelocale", $params) ? $params["nomelocale"] : null;
52 77 $local->descrizione = array_key_exists("descrizione", $params) ? $params["descrizione"] : null;