Filter Android member views and update desktop file fixtures for versioned rows
This commit is contained in:
1 parent
eb9aca7fe8
commit
235bef7f7e
3 files changed
+22
-14
No files matched your search
@@ -369,7 +369,7 @@ static void bridge_get_node_name(sqlite3* db, uint64_t node_id, const char* chan
|
||||
if (!channel_id || !channel_id[0]) return;
|
||||
char peers_tbl[80], sql[256];
|
||||
peers_table_name(channel_id, peers_tbl, sizeof(peers_tbl));
|
||||
snprintf(sql, sizeof(sql), "SELECT userinfo FROM \"%s\" WHERE node_id=?", peers_tbl);
|
||||
snprintf(sql, sizeof(sql), "SELECT userinfo FROM \"%s\" WHERE node_id=? AND record_state=0", peers_tbl);
|
||||
if (sqlite3_prepare_v2(db, sql, -1, &st, NULL) != SQLITE_OK) return;
|
||||
sqlite3_bind_int64(st, 1, (sqlite3_int64)node_id);
|
||||
if (sqlite3_step(st) == SQLITE_ROW) {
|
||||
@@ -466,7 +466,7 @@ char* utun_bridge_get_channels_json(void) {
|
||||
snprintf(preview, sizeof(preview), "%s: %s", author_name, body);
|
||||
} else if (last_rc != SQLITE_DONE) goto failed;
|
||||
sqlite3_finalize(last); last = NULL;
|
||||
snprintf(sql, sizeof(sql), "SELECT node_id FROM \"%s\" WHERE admitted=1", peers_table);
|
||||
snprintf(sql, sizeof(sql), "SELECT node_id FROM \"%s\" WHERE record_state=0 AND admitted=1", peers_table);
|
||||
if (sqlite3_prepare_v2(db, sql, -1, &peers, NULL) != SQLITE_OK) goto failed;
|
||||
int online = 0, peer_rc;
|
||||
while ((peer_rc = sqlite3_step(peers)) == SQLITE_ROW) {
|
||||
@@ -766,7 +766,7 @@ char* utun_bridge_get_channel_members_json(const char* channel_id) {
|
||||
"COALESCE(p.node_type,0),COALESCE(p.node_RTT,0),COALESCE(p.storage,0),COALESCE(p.userinfo,''),"
|
||||
"p.source,length(p.adm_tags_sig),COALESCE(p.deleted,0),p.radio_muted"
|
||||
" FROM \"%s\" p LEFT JOIN nodes n ON p.node_id=n.node_id"
|
||||
" WHERE p.admitted=1 OR p.source!=0 OR p.deleted!=0 ORDER BY p.node_id ASC", peers_tbl);
|
||||
" WHERE p.record_state=0 AND (p.admitted=1 OR p.source!=0 OR p.deleted!=0) ORDER BY p.node_id ASC", peers_tbl);
|
||||
struct strbuf out = strbuf_new();
|
||||
sqlite3_stmt* st = NULL;
|
||||
int rc = sqlite3_prepare_v2(db, sql, -1, &st, NULL);
|
||||
@@ -868,8 +868,8 @@ char* utun_bridge_get_member_detail_json(const char* channel_id, uint64_t node_i
|
||||
char sql[512];
|
||||
snprintf(sql, sizeof(sql),
|
||||
"SELECT p.signed_by, length(p.signature), p.source, COALESCE(NULLIF(i.local_nick,''),n.name,'')"
|
||||
" FROM \"%s\" p LEFT JOIN \"%s\" i ON i.node_id=p.signed_by"
|
||||
" LEFT JOIN nodes n ON n.node_id=p.signed_by WHERE p.node_id=?", peers_tbl, peers_tbl);
|
||||
" FROM \"%s\" p LEFT JOIN \"%s\" i ON i.node_id=p.signed_by AND i.record_state=0"
|
||||
" LEFT JOIN nodes n ON n.node_id=p.signed_by WHERE p.node_id=? AND p.record_state=0", peers_tbl, peers_tbl);
|
||||
int rc = sqlite3_prepare_v2(db, sql, -1, &st, NULL);
|
||||
if (rc == SQLITE_OK) rc = sqlite3_bind_int64(st, 1, (sqlite3_int64)node_id);
|
||||
if (rc == SQLITE_OK) rc = sqlite3_step(st);
|
||||
@@ -966,7 +966,7 @@ void utun_bridge_set_member_nick(const char* channel_id, uint64_t node_id, const
|
||||
|
||||
char peers_tbl[80]; peers_table_name(channel_id, peers_tbl, sizeof(peers_tbl));
|
||||
char sql[256];
|
||||
snprintf(sql, sizeof(sql), "UPDATE \"%s\" SET local_nick=? WHERE node_id=?", peers_tbl);
|
||||
snprintf(sql, sizeof(sql), "UPDATE \"%s\" SET local_nick=? WHERE node_id=? AND record_state=0", peers_tbl);
|
||||
|
||||
sqlite3_stmt* st = NULL;
|
||||
int rc = sqlite3_prepare_v2(db, sql, -1, &st, NULL);
|
||||
|
||||
@@ -132,7 +132,8 @@ private slots:
|
||||
QCOMPARE(sqlite3_exec(sql, "CREATE TABLE accounts(node_id INTEGER,display_name TEXT);"
|
||||
"INSERT INTO accounts VALUES(22,'Me'),(33,'Server');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);",
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;",
|
||||
nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
DbManager db; db.setDb(sql); db.setMyNodeId(22);
|
||||
{
|
||||
@@ -370,7 +371,8 @@ private slots:
|
||||
"INSERT INTO accounts VALUES(11,'Other'),(22,'Me'),(33,'Server');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(11,'{}',NULL,0,0),(22,'{}',NULL,0,0),"
|
||||
"(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
"(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
DbManager db; db.setDb(sql); db.setMyNodeId(22);
|
||||
{
|
||||
MemberFileBrowser browser(&db); browser.setChannel("42", 22); browser.show(); browser.activateWindow();
|
||||
@@ -451,7 +453,8 @@ private slots:
|
||||
"INSERT INTO accounts VALUES(11,'Other'),(22,'Me'),(33,'Server');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(11,'{}',NULL,0,0),(22,'{}',NULL,0,0),"
|
||||
"(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
"(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
DbManager db; db.setDb(sql); db.setMyNodeId(22); QString exported;
|
||||
{
|
||||
MemberFileBrowser browser(&db); browser.setChannel("42", 11); browser.show();
|
||||
@@ -536,7 +539,8 @@ private slots:
|
||||
"INSERT INTO accounts VALUES(11,'Other'),(22,'Me'),(33,'Server');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(11,'{}',NULL,0,0),(22,'{}',NULL,0,0),"
|
||||
"(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
"(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
DbManager db; db.setDb(sql); db.setMyNodeId(22);
|
||||
QTemporaryDir dir; QVERIFY(dir.isValid()); QString path = dir.filePath("dropped.txt");
|
||||
{ QFile file(path); QVERIFY(file.open(QIODevice::WriteOnly)); QCOMPARE(file.write("test"), 4LL); }
|
||||
@@ -623,7 +627,8 @@ private slots:
|
||||
QCOMPARE(sqlite3_exec(sql, "CREATE TABLE accounts(node_id INTEGER,display_name TEXT);"
|
||||
"INSERT INTO accounts VALUES(22,'Me'),(33,'Server');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);",
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;",
|
||||
nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
DbManager db; db.setDb(sql); db.setMyNodeId(22);
|
||||
QTemporaryDir dir; QVERIFY(dir.isValid()); QStringList paths;
|
||||
@@ -684,7 +689,8 @@ private slots:
|
||||
"INSERT INTO accounts VALUES(11,'Author'),(22,'Reader'),(33,'Server');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,storage INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(11,0,'{}',NULL,0,0),(22,0,'{}',NULL,0,0),"
|
||||
"(33,0,'{\"storage\":\"yes\"}',zeroblob(64),0,0);", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
"(33,0,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;", nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
DbManager db; db.setDb(sql); db.setMyNodeId(22);
|
||||
{
|
||||
MemberFileBrowser browser(&db); browser.setChannel("42", 11);
|
||||
|
||||
@@ -243,7 +243,8 @@ private slots:
|
||||
QCOMPARE(sqlite3_exec(sql, "CREATE TABLE accounts(node_id INTEGER,display_name TEXT);"
|
||||
"INSERT INTO accounts VALUES(22,'Me'),(33,'Storage');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);",
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;",
|
||||
nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
db.setDb(sql); db.setMyNodeId(22);
|
||||
MemberFileBrowser browser(&db); activeBrowser = &browser;
|
||||
@@ -292,7 +293,8 @@ private slots:
|
||||
QCOMPARE(sqlite3_exec(sql, "CREATE TABLE accounts(node_id INTEGER,display_name TEXT);"
|
||||
"INSERT INTO accounts VALUES(22,'Me'),(33,'Storage');"
|
||||
"CREATE TABLE peers_42(node_id INTEGER,adm_tags TEXT,adm_tags_sig BLOB,deleted INTEGER,source INTEGER);"
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);",
|
||||
"INSERT INTO peers_42 VALUES(22,'{}',NULL,0,0),(33,'{\"storage\":\"yes\"}',zeroblob(64),0,0);"
|
||||
"ALTER TABLE peers_42 ADD COLUMN record_state INTEGER NOT NULL DEFAULT 0;",
|
||||
nullptr, nullptr, nullptr), SQLITE_OK);
|
||||
db.setDb(sql); db.setMyNodeId(22);
|
||||
MemberFileBrowser browser(&db); activeBrowser = &browser; browser.setChannel("42", 22);
|
||||
|
||||
Reference in new issue
Block a user