* @param string $name
* @param mixed $id
*/
- function __construct(string $name = NULL, $id = NULL)
+ function __construct(string $name = NULL, int $id = NULL)
{
$conn = sqlnew();
}
}
- function password_verify(string $input)
+ /**
+ * Verify a user's password
+ * @param string $input
+ * @return bool
+ */
+ function password_verify(string $input) : bool
{
if (password_verify($input, $this->passhash))
return true;
return false;
}
+
+ /**
+ * Add user meta data
+ * @param string $key
+ * @param string $value
+ * @return bool
+ */
+ function add_meta(string $key, string $value)
+ {
+ if (!$key || !$value)
+ return false;
+
+ $meta = [
+ "id" => $this->id,
+ "key" => $key,
+ "value" => $value
+ ];
+
+ $conn = sqlnew();
+
+ /* check if it exists first, update it if it does */
+ $query = "SELECT * FROM " . SQL_PREFIX . "user_meta WHERE user_id = :id AND meta_key = :key";
+ $stmt = $conn->prepare($query);
+ $stmt->execute(["id" => $this->id, "key" => $key]);
+ if ($stmt->rowCount()) // it exists, update instead of insert
+ {
+ $query = "UPDATE " . SQL_PREFIX . "user_meta SET meta_value = :value WHERE user_id = :id AND meta_key = :key";
+ $stmt = $conn->prepare($query);
+ $stmt->execute($meta);
+ if ($stmt->rowCount())
+ return true;
+ return false;
+ }
+
+ else
+ {
+ $query = "INSERT INTO " . SQL_PREFIX . "user_meta (user_id, meta_key, meta_value) VALUES (:id, :key, :value)";
+ $stmt = $conn->prepare($query);
+ $stmt->execute($meta);
+ if ($stmt->rowCount())
+ return true;
+ return false;
+ }
+ }
+
+ /**
+ * Delete user meta data by key
+ * @param string $key
+ * @return bool
+ */
+ function delete_meta(string $key)
+ {
+ if (!$key )
+ return false;
+
+ $meta = [
+ "id" => $this->id,
+ "key" => $key,
+ ];
+
+ $conn = sqlnew();
+ $query = "DELETE FROM " . SQL_PREFIX . "user_meta WHERE user_id = :id AND meta_key = :key";
+ $stmt = $conn->prepare($query);
+ $stmt->execute($meta);
+ if ($stmt->rowCount())
+ return true;
+ return false;
+
+ }
}
}
$info[] = "Unknown error";
return 0;
-}
\ No newline at end of file
+}
+