Subversion Repository Public Repository

Nextrek

Diff Revisions 423 vs 461 for /Android/SmartCharging/endPoints/nightly/repositories/UserRepository.php

Diff revisions: vs.
  @@ -1,6 +1,16 @@
1 1 <?php
2 2 require_once('UserRepositoryInterface.php');
3 3 require_once(dirname(__FILE__)."/../constants.php");
4 + define('FACEBOOK_SDK_V4_SRC_DIR', dirname(__FILE__).'/../fb_SDK/src/Facebook/');
5 + require_once(dirname(__FILE__)."/../fb_SDK/autoload.php");
6 + use Facebook\FacebookSession;
7 + use Facebook\FacebookRedirectLoginHelper;
8 + use Facebook\FacebookRequest;
9 + use Facebook\FacebookResponse;
10 + use Facebook\FacebookSDKException;
11 + use Facebook\FacebookRequestException;
12 + use Facebook\FacebookAuthorizationException;
13 + use Facebook\GraphObject;
4 14
5 15 class UserRepository implements UserRepositoryInterface {
6 16 protected $db;
  @@ -109,6 +119,93 @@
109 119 }
110 120 }
111 121
122 + public function logoutUser($user_id) {
123 + $status = array();
124 + try {
125 + $queryToken = "UPDATE utente
126 + SET token = NULL
127 + WHERE id=".$user_id;
128 +
129 + $status["return"] = 0;
130 + return $status;
131 + } catch (PDOException $e) {
132 + echo $e->getMessage();
133 + $status["return"] = 1;
134 + return $status;
135 + }
136 + }
137 +
138 + public function facebookLogin($fb_user, $user_email, $fb_token) {
139 + $status = array();
140 +
141 + FacebookSession::setDefaultApplication(
142 + '1444964019146825', //$appId
143 + '1596f53e44c38ff927a9491ec6bff882' //$appSecret
144 + );
145 +
146 + try {
147 + $session = new FacebookSession($fb_token);
148 + $session->validate();
149 +
150 + if (!isset($session)) {
151 + $status["return"] = 1;
152 + $status["id"] = -1;
153 + $status["token"] = "";
154 + return $status;
155 + }
156 +
157 + //richiesta alla facebook graph, richiedendo id_utente, nome ed email
158 + $request = new FacebookRequest($session, 'GET', '/me?fields=id,name,email');
159 + $response = $request->execute();
160 + $graphObject = $response->getGraphObject();
161 +
162 + if ($obj->user_id != $graphObject->getProperty('id')) { //Il token ricevuto non coincide con quello di FB
163 + $status["return"] = 1;
164 + $status["id"] = -1;
165 + $status["token"] = "";
166 + return $status;
167 + }
168 +
169 + $u_name = $graphObject->getProperty('name');
170 + $u_email = $graphObject->getProperty('email');
171 +
172 + $sql = "SELECT id FROM utente WHERE email='".$user_email."'";
173 +
174 + $result = $this->db->query($sql);
175 + $row = ($result->rowCount()>0) ? $result->fetch() : null;
176 +
177 + if (!is_null($row)) { //utente già esistente
178 +
179 + $sql = "UPDATE utente
180 + SET nominativo='".$u_name."', email='".$u_email."', token='".$fb_token."'
181 + WHERE id=".$row["id"];
182 +
183 + $this->db->exec($sql);
184 + $status["id"] = $row["id"];
185 +
186 + } else { //creazione nuova utenza
187 +
188 + $sql = "INSERT INTO users (nominativo,email,token)
189 + VALUES ('".$u_name."','".$u_email."','".$fb_token."')";
190 +
191 + $this->db->exec($query);
192 + $status["id"] = $this->db->lastInsertId();
193 +
194 + }
195 +
196 + $status["return"] = 0;
197 + $status["token"] = $fb_token;
198 + return $status;
199 +
200 + } catch (Exception $e) {
201 + echo $e->getMessage();
202 + $status["return"] = 1;
203 + $status["id"] = -1;
204 + $status["token"] = "";
205 + return $status;
206 + }
207 + }
208 +
112 209 //true se username è disponibile, false altrimenti
113 210 protected function checkUserName($user) {
114 211 $query = "SELECT count(*) from utente WHERE username='".$user->username."'";
  @@ -172,6 +269,41 @@
172 269 return $status;
173 270 }
174 271 }
272 +
273 + public function editUser($user) { //$user è l'oggetto Utente
274 + $status = array();
275 +
276 + try {
277 +
278 + $setString = "";
279 +
280 + if (isset($user->nominativo) && !is_null($user->nominativo)) {
281 + $setString = ($setString == "") : "nominativo='".$user->nominativo."'" : $setString.",nominativo='".$user->nominativo."'";
282 + }
283 +
284 + if (isset($user->cell) && !is_null($user->cell)) {
285 + $setString = ($setString == "") : "cell='".$user->cell."'" : $setString.",cell='".$user->cell."'";
286 + }
287 +
288 + if (isset($user->email) && !is_null($user->email)) {
289 + $setString = ($setString == "") : "email='".$user->email."'" : $setString.",email='".$user->email."'";
290 + }
291 +
292 + $query = "UPDATE utente
293 + SET ".$setString."
294 + WHERE id=".$user->id;
295 +
296 + //echo "<br/>".$query."<br/>";
297 +
298 + $this->db->exec($query);
299 + $status["return"] = 0;
300 +
301 + } catch (PDOException $e) {
302 + echo $e->getMessage();
303 + $status["return"] = 1;
304 + return $status;
305 + }
306 + }
175 307
176 308 }
177 309