revisiondaosqlite: Don't ignore page visibility setting

This commit is contained in:
Albert S. 2018-11-04 20:08:39 +01:00
부모 791de88324
커밋 e863b5261b

파일 보기

@ -51,11 +51,15 @@ std::vector<Revision> RevisionDaoSqlite::getAllRevisions(QueryOption &options)
try
{
SqliteQueryOption queryOption{options};
std::string queryOptionSql = queryOption.setPrependWhere(true).setOrderByColumn("id").build();
auto query = *db << "SELECT author, comment, content, strftime('%s',creationtime), (SELECT name FROM page "
"WHERE page.id = page ), revisionid FROM revision " +
queryOptionSql;
std::string queryOptionSql = queryOption.setPrependWhere(true)
.setVisibleColumnName("page.visible")
.setOrderByColumn("revisionid")
.build();
auto query =
*db
<< "SELECT (SELECT username FROM user WHERE id = author), comment, content, strftime('%s',creationtime), "
"page.name, revisionid FROM revision INNER JOIN page ON revision.page = page.id " +
queryOptionSql;
query >> [&](std::string author, std::string comment, std::string content, time_t creationtime,
std::string page, unsigned int revisionid) {
Revision r;
@ -86,11 +90,13 @@ std::vector<Revision> RevisionDaoSqlite::getAllRevisionsForPage(std::string page
try
{
SqliteQueryOption queryOption{option};
std::string queryOptionSql = queryOption.setPrependWhere(false).setOrderByColumn("id").build();
std::string queryOptionSql = queryOption.setPrependWhere(false)
.setVisibleColumnName("page.visible")
.setOrderByColumn("revisionid")
.build();
auto query = *db << "SELECT (SELECT username FROM user WHERE id = author), comment, content, "
"strftime('%s',creationtime), (SELECT name FROM page WHERE page.id = page ), revisionid "
"FROM revision WHERE page = (SELECT id FROM page WHERE name = ?) " +
"strftime('%s',creationtime), page.name, revisionid FROM revision INNER JOIN page ON "
"revision.page = page.id WHERE page.name = ? AND " +
queryOptionSql
<< pagename;