1
0
Fork 0
mirror of https://github.com/Alamantus/Lexiconga.git synced 2025-05-22 18:11:18 +02:00

Change return values for Dictionary class methods

This commit is contained in:
Robbie Antenesse 2018-01-04 23:02:06 -07:00
parent d6724fb0df
commit 40362ad7c9
2 changed files with 30 additions and 24 deletions

View file

@ -21,14 +21,7 @@ class Dictionary {
$insert_linguistics = $this->db->execute($insert_linguistics_query); $insert_linguistics = $this->db->execute($insert_linguistics_query);
if ($insert_linguistics === true) { if ($insert_linguistics === true) {
if ($this->changeCurrentDictionary($user, $new_dictionary_id)) { return $this->changeCurrent($user, $new_dictionary_id);
$user_data = array(
'id' => $user,
'isMember' => $this->hasMembership($user),
'dictionary' => $new_dictionary_id,
);
return $this->token->encode($user_data);
}
} }
} }
@ -39,7 +32,7 @@ class Dictionary {
$update_query = 'UPDATE users SET current_dictionary=? WHERE id=?'; $update_query = 'UPDATE users SET current_dictionary=? WHERE id=?';
$update = $this->db->query($update_query, array($dictionary, $user)); $update = $this->db->query($update_query, array($dictionary, $user));
if ($update->rowCount() > 0) { if ($update->rowCount() > 0) {
return true; return $dictionary;
} }
return false; return false;
} }

View file

@ -23,12 +23,7 @@ class User {
} }
} }
} else if (password_verify($password, $user['password'])) { } else if (password_verify($password, $user['password'])) {
$user_data = array( return $this->generateUserToken($user['id'], $user['current_dictionary']);
'id' => $user['id'],
'isMember' => $this->hasMembership($user['id']),
'dictionary' => $user['current_dictionary'],
);
return $this->token->encode($user_data);
} }
} }
return false; return false;
@ -48,10 +43,10 @@ class User {
if ($insert_user === true) { if ($insert_user === true) {
$new_user_id = $this->db->lastInsertId(); $new_user_id = $this->db->lastInsertId();
$token = $this->dictionary->create($new_user_id); $new_dictionary = $this->dictionary->create($new_user_id);
if ($token !== false) { if ($new_dictionary !== false) {
return $token; return $this->generateUserToken($new_user_id, $new_dictionary);
} }
} }
@ -62,16 +57,25 @@ class User {
$user_data = $this->token->decode($token); $user_data = $this->token->decode($token);
if ($user_data !== false) { if ($user_data !== false) {
$id = $user_data->id; $id = $user_data->id;
return $this->dictionary->create($id); $new_dictionary = $this->dictionary->create($id);
if ($new_dictionary !== false) {
return $this->generateUserToken($id, $new_dictionary);
}
} }
return false; return false;
} }
public function changeCurrentDictionary ($user, $dictionary) { public function changeCurrentDictionary ($token, $dictionary_hash) {
$update_query = 'UPDATE users SET current_dictionary=? WHERE id=?'; $user_data = $this->token->decode($token);
$update = $this->db->query($update_query, array($dictionary, $user)); if ($user_data !== false) {
if ($update->rowCount() > 0) { $id = $user_data->id;
return true; $dictionary_id = $this->token->unhash($dictionary_hash);
if ($dictionary_id !== false) {
$changed_dictionary = $this->dictionary->changeCurrent($id, $dictionary_id);
if ($changed_dictionary !== false) {
return $this->generateUserToken($id, $changed_dictionary);
}
}
} }
return false; return false;
} }
@ -85,6 +89,15 @@ class User {
return false; return false;
} }
private function generateUserToken ($user_id, $dictionary_id) {
$user_data = array(
'id' => intval($user_id),
'isMember' => $this->hasMembership($user_id),
'dictionary' => intval($dictionary_id),
);
return $this->token->encode($user_data);
}
private function hasMembership ($id) { private function hasMembership ($id) {
$current_membership = "SELECT * FROM memberships WHERE user=$id AND start_date>=CURRENT_TIMESTAMP AND CURRENT_TIMESTAMP<expire_date"; $current_membership = "SELECT * FROM memberships WHERE user=$id AND start_date>=CURRENT_TIMESTAMP AND CURRENT_TIMESTAMP<expire_date";
return $this->db->query($current_membership)->rowCount() > 0; return $this->db->query($current_membership)->rowCount() > 0;