summaryrefslogtreecommitdiffstats
path: root/src/database
diff options
context:
space:
mode:
Diffstat (limited to 'src/database')
-rw-r--r--src/database/database.vala11
-rw-r--r--src/database/db-interface.vala3
2 files changed, 13 insertions, 1 deletions
diff --git a/src/database/database.vala b/src/database/database.vala
index 8d1bb84..52c5dd2 100644
--- a/src/database/database.vala
+++ b/src/database/database.vala
@@ -122,6 +122,7 @@ public class DataBase : Object {
queries["total_sales"] = "SELECT SUM(price) FROM invoice WHERE user >= 0 AND timestamp >= ?";
queries["total_profit"] = "SELECT SUM(price - (SELECT price FROM purchaseprices WHERE product = productid)) FROM invoice WHERE user >= 0 AND timestamp >= ?";
queries["user_get_ids"] = "SELECT id FROM users WHERE id > 0";
+ queries["system_user_get_ids"] = "SELECT id FROM users WHERE id <= 0";
queries["user_replace"] = "INSERT OR REPLACE INTO users ('id', 'email', 'firstname', 'lastname', 'gender', 'street', 'plz', 'city', 'pgp', 'hidden', 'disabled', 'joined_at', 'sound_theme') VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (select sound_theme from users where id = ?))";
queries["user_auth_create"] = "INSERT OR IGNORE INTO authentication (user) VALUES (?)";
queries["user_disable"] = "UPDATE users SET disabled = ? WHERE id = ?";
@@ -874,6 +875,16 @@ public class DataBase : Object {
return result;
}
+ public int[] get_system_member_ids() throws DBusError, IOError, DatabaseError {
+ int[] result = {};
+
+ statements["system_user_get_ids"].reset();
+ while(statements["system_user_get_ids"].step() == Sqlite.ROW)
+ result += statements["system_user_get_ids"].column_int(0);
+
+ return result;
+ }
+
public void user_disable(int user, bool value) throws DBusError, IOError, DatabaseError {
int rc;
diff --git a/src/database/db-interface.vala b/src/database/db-interface.vala
index 63a0148..f2d3e87 100644
--- a/src/database/db-interface.vala
+++ b/src/database/db-interface.vala
@@ -45,7 +45,8 @@ public interface Database : Object {
public abstract int64 get_first_purchase(int user) throws DBusError, IOError;
public abstract int64 get_last_purchase(int user) throws DBusError, IOError;
public abstract StatsInfo get_stats_info() throws DBusError, IOError;
- public abstract int[] get_member_ids() throws DBusError, IOError;
+ public abstract int[] get_member_ids() throws DBusError, IOError, DatabaseError;
+ public abstract int[] get_system_member_ids() throws DBusError, IOError, DatabaseError;
public abstract void user_disable(int user, bool value) throws DBusError, IOError, DatabaseError;
public abstract void user_replace(UserInfo u) throws DBusError, IOError, DatabaseError;
public abstract bool user_is_disabled(int user) throws DBusError, IOError, DatabaseError;