# HG changeset patch # User Kim Alvefur # Date 1343503665 -7200 # Node ID 874cab7b4b3edcb8fd6f3daa17f0291dcbde18a9 # Parent 2dbb3bf74090bc4644f50a5bd9e135bcc115d0a8 mod_storage_sql: Add method for listing stores diff -r 2dbb3bf74090 -r 874cab7b4b3e plugins/mod_storage_sql.lua --- a/plugins/mod_storage_sql.lua Sat Jul 28 21:26:33 2012 +0200 +++ b/plugins/mod_storage_sql.lua Sat Jul 28 21:27:45 2012 +0200 @@ -352,4 +352,22 @@ 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);