diff options
author | Kim Alvefur <zash@zash.se> | 2012-07-28 21:27:45 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2012-07-28 21:27:45 +0200 |
commit | a1c6c07c4426b65e5b40e0b5c903d78ae07e99d4 (patch) | |
tree | 75584250c0c2626c14c893388993e9d6ca0a7924 | |
parent | 780317603fa5d92f7123d26138dfc977b8280590 (diff) | |
download | prosody-a1c6c07c4426b65e5b40e0b5c903d78ae07e99d4.tar.gz prosody-a1c6c07c4426b65e5b40e0b5c903d78ae07e99d4.zip |
mod_storage_sql: Add method for listing stores
-rw-r--r-- | plugins/mod_storage_sql.lua | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index 8b05c822..211f4d5f 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -352,4 +352,22 @@ function driver:open(store, typ) return nil, "unsupported-store"; end +function driver:list_stores(username) -- Not to be confused with the list store type + local sql = (username == true + and "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`!=?" + or "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`=?"); + if username == true or not username then + username = ""; + end + local stmt, err = dosql(sql, host, username); + if not stmt then + return nil, err; + end + local stores = {}; + for row in stmt:rows() do + stores[#stores+1] = row[1]; + end + return stores; +end + module:add_item("data-driver", driver); |