X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=inc%2Fpoche%2FDatabase.class.php;h=141d798757001f280dc28e9612a0eb1f708f741c;hb=8af31ae0f789f890517da0dbb13faa615638449b;hp=d1044a6e8539c1a6fba81d253653ccb2900f7d86;hpb=5ce397847230c70c513ac4fbc3bfbb31498b443f;p=github%2Fwallabag%2Fwallabag.git diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php index d1044a6e..141d7987 100755 --- a/inc/poche/Database.class.php +++ b/inc/poche/Database.class.php @@ -33,6 +33,8 @@ class Database { $db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB; $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD); break; + default: + die(STORAGE . ' is not a recognised database system !'); } $this->handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); @@ -229,12 +231,49 @@ class Database { return FALSE; } } + + public function listUsers($username=null) { + $sql = 'SELECT count(*) FROM users'.( $username ? ' WHERE username=?' : ''); + $query = $this->executeQuery($sql, ( $username ? array($username) : array())); + list($count) = $query->fetch(); + return $count; + } + + public function getUserPassword($userID) { + $sql = "SELECT * FROM users WHERE id=?"; + $query = $this->executeQuery($sql, array($userID)); + $password = $query->fetchAll(); + return isset($password[0]['password']) ? $password[0]['password'] : null; + } + + public function deleteUserConfig($userID) { + $sql_action = 'DELETE from users_config WHERE user_id=?'; + $params_action = array($userID); + $query = $this->executeQuery($sql_action, $params_action); + return $query; + } + + public function deleteTagsEntriesAndEntries($userID) { + $entries = $this->retrieveAll($userID); + foreach($entries as $entryid) { + $tags = $this->retrieveTagsByEntry($entryid); + foreach($tags as $tag) { + $this->removeTagForEntry($entryid,$tags); + } + $this->deleteById($entryid,$userID); + } + } + + public function deleteUser($userID) { + $sql_action = 'DELETE from users WHERE id=?'; + $params_action = array($userID); + $query = $this->executeQuery($sql_action, $params_action); + } public function updateContentAndTitle($id, $title, $body, $user_id) { $sql_action = 'UPDATE entries SET content = ?, title = ? WHERE id=? AND user_id=?'; $params_action = array($body, $title, $id, $user_id); $query = $this->executeQuery($sql_action, $params_action); - return $query; } @@ -245,7 +284,7 @@ class Database { $sql_limit = "LIMIT ".$limit." OFFSET 0"; } - $sql = "SELECT * FROM entries WHERE (content = '' OR content IS NULL) AND user_id=? ORDER BY id " . $sql_limit; + $sql = "SELECT * FROM entries WHERE (content = '' OR content IS NULL) AND title LIKE 'Untitled - Import%' AND user_id=? ORDER BY id " . $sql_limit; $query = $this->executeQuery($sql, array($user_id)); $entries = $query->fetchAll(); @@ -253,7 +292,7 @@ class Database { } public function retrieveUnfetchedEntriesCount($user_id) { - $sql = "SELECT count(*) FROM entries WHERE (content = '' OR content IS NULL) AND user_id=?"; + $sql = "SELECT count(*) FROM entries WHERE (content = '' OR content IS NULL) AND title LIKE 'Untitled - Import%' AND user_id=?"; $query = $this->executeQuery($sql, array($user_id)); list($count) = $query->fetch();