Skip to content

Commit 7059834

Browse files
committed
refactor to use Db
1 parent 3e792bc commit 7059834

File tree

1 file changed

+35
-40
lines changed

1 file changed

+35
-40
lines changed

lib/User.php

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,9 @@
22
namespace Pdsinterop\PhpSolid;
33

44
use Pdsinterop\PhpSolid\PasswordValidator;
5-
5+
use Pdsinterop\PhpSolid\Db;
6+
67
class User {
7-
private static $pdo;
8-
private static function connect() {
9-
if (!isset(self::$pdo)) {
10-
self::$pdo = new \PDO("sqlite:" . DBPATH);
11-
}
12-
}
13-
148
private static function generateTokenCode() {
159
$digits = 6;
1610
$code = random_int(0,1000000);
@@ -42,8 +36,8 @@ public static function saveVerifyToken($tokenType, $tokenData) {
4236
break;
4337
}
4438

45-
self::connect();
46-
$query = self::$pdo->prepare(
39+
Db::connect();
40+
$query = Db::$pdo->prepare(
4741
'INSERT INTO verify VALUES(:code, :data)'
4842
);
4943
$query->execute([
@@ -54,8 +48,8 @@ public static function saveVerifyToken($tokenType, $tokenData) {
5448
}
5549

5650
public static function getVerifyToken($code) {
57-
self::connect();
58-
$query = self::$pdo->prepare(
51+
Db::connect();
52+
$query = Db::$pdo->prepare(
5953
'SELECT data FROM verify WHERE code=:code'
6054
);
6155
$query->execute([
@@ -84,21 +78,22 @@ public static function validatePasswordStrength($password) {
8478
$entropy = PasswordValidator::getEntropy($password, BANNED_PASSWORDS);
8579
$minimumEntropy = MINIMUM_PASSWORD_ENTROPY;
8680
if ($entropy < $minimumEntropy) {
81+
error_log("Entered pasword does not satisfy minimum entropy");
8782
return false;
8883
}
8984
return true;
9085
}
9186

9287
public static function createUser($newUser) {
93-
self::connect();
88+
Db::connect();
9489
if (!self::validatePasswordStrength($newUser['password'])) {
9590
return false;
9691
}
9792
$generatedUserId = md5(random_bytes(32));
9893
while (self::userIdExists($generatedUserId)) {
9994
$generatedUserId = md5(random_bytes(32));
10095
}
101-
$query = self::$pdo->prepare(
96+
$query = Db::$pdo->prepare(
10297
'INSERT INTO users VALUES (:userId, :email, :passwordHash, :data)'
10398
);
10499

@@ -126,8 +121,8 @@ public static function setUserPassword($email, $newPassword) {
126121
if (!self::validatePasswordStrength($newPassword)) {
127122
return false;
128123
}
129-
self::connect();
130-
$query = self::$pdo->prepare(
124+
Db::connect();
125+
$query = Db::$pdo->prepare(
131126
'UPDATE users SET password=:passwordHash WHERE email=:email'
132127
);
133128
$queryParams = [];
@@ -139,8 +134,8 @@ public static function setUserPassword($email, $newPassword) {
139134
}
140135

141136
public static function allowClientForUser($clientId, $userId) {
142-
self::connect();
143-
$query = self::$pdo->prepare(
137+
Db::connect();
138+
$query = Db::$pdo->prepare(
144139
'INSERT OR REPLACE INTO allowedClients VALUES(:userId, :clientId)'
145140
);
146141
$query->execute([
@@ -151,8 +146,8 @@ public static function allowClientForUser($clientId, $userId) {
151146
}
152147

153148
public static function getAllowedClients($userId) {
154-
self::connect();
155-
$query = self::$pdo->prepare(
149+
Db::connect();
150+
$query = Db::$pdo->prepare(
156151
'SELECT clientId FROM allowedClients WHERE userId=:userId'
157152
);
158153
$query->execute([
@@ -166,8 +161,8 @@ public static function getAllowedClients($userId) {
166161
}
167162

168163
public static function getStorage($userId) {
169-
self::connect();
170-
$query = self::$pdo->prepare(
164+
Db::connect();
165+
$query = Db::$pdo->prepare(
171166
'SELECT storageUrl FROM userStorage WHERE userId=:userId'
172167
);
173168
$query->execute([
@@ -181,8 +176,8 @@ public static function getStorage($userId) {
181176
}
182177

183178
public static function setStorage($userId, $storageUrl) {
184-
self::connect();
185-
$query = self::$pdo->prepare(
179+
Db::connect();
180+
$query = Db::$pdo->prepare(
186181
'INSERT OR REPLACE INTO storage VALUES(:userId, :storageUrl)'
187182
);
188183
$query->execute([
@@ -192,8 +187,8 @@ public static function setStorage($userId, $storageUrl) {
192187
}
193188

194189
public static function getUser($email) {
195-
self::connect();
196-
$query = self::$pdo->prepare(
190+
Db::connect();
191+
$query = Db::$pdo->prepare(
197192
'SELECT user_id, data FROM users WHERE email=:email'
198193
);
199194
$query->execute([
@@ -217,8 +212,8 @@ public static function getUser($email) {
217212
}
218213

219214
public static function getUserById($userId) {
220-
self::connect();
221-
$query = self::$pdo->prepare(
215+
Db::connect();
216+
$query = Db::$pdo->prepare(
222217
'SELECT user_id, data FROM users WHERE user_id=:userId'
223218
);
224219
$query->execute([
@@ -242,8 +237,8 @@ public static function getUserById($userId) {
242237
}
243238

244239
public static function checkPassword($email, $password) {
245-
self::connect();
246-
$query = self::$pdo->prepare(
240+
Db::connect();
241+
$query = Db::$pdo->prepare(
247242
'SELECT password FROM users WHERE email=:email'
248243
);
249244
$query->execute([
@@ -271,8 +266,8 @@ public static function getLoggedInUser() {
271266
}
272267

273268
public static function userIdExists($userId) {
274-
self::connect();
275-
$query = self::$pdo->prepare(
269+
Db::connect();
270+
$query = Db::$pdo->prepare(
276271
'SELECT user_id FROM users WHERE user_id=:userId'
277272
);
278273
$query->execute([
@@ -286,8 +281,8 @@ public static function userIdExists($userId) {
286281
}
287282

288283
public static function userEmailExists($email) {
289-
self::connect();
290-
$query = self::$pdo->prepare(
284+
Db::connect();
285+
$query = Db::$pdo->prepare(
291286
'SELECT user_id FROM users WHERE email=:email'
292287
);
293288
$query->execute([
@@ -301,8 +296,8 @@ public static function userEmailExists($email) {
301296
}
302297

303298
private static function deleteUser($email) {
304-
self::connect();
305-
$query = self::$pdo->prepare(
299+
Db::connect();
300+
$query = Db::$pdo->prepare(
306301
'DELETE FROM users WHERE email=:email'
307302
);
308303
$query->execute([
@@ -316,8 +311,8 @@ private static function deleteAllowedClients($email) {
316311
return;
317312
}
318313

319-
self::connect();
320-
$query = self::$pdo->prepare(
314+
Db::connect();
315+
$query = Db::$pdo->prepare(
321316
'DELETE FROM allowedClients WHERE userId=:userId'
322317
);
323318
$query->execute([
@@ -335,10 +330,10 @@ public static function deleteAccount($email) {
335330
}
336331

337332
public static function cleanupTokens() {
338-
self::connect();
333+
Db::connect();
339334

340335
$now = new \DateTime();
341-
$query = self::$pdo->prepare(
336+
$query = Db::$pdo->prepare(
342337
'DELETE FROM verify WHERE json_extract(data, \'$.expires\') < :now'
343338
);
344339
$query->execute([

0 commit comments

Comments
 (0)