Software / code / prosody
Comparison
plugins/mod_storage_sql.lua @ 5035:874cab7b4b3e
mod_storage_sql: Add method for listing stores
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 28 Jul 2012 21:27:45 +0200 |
| parent | 5034:2dbb3bf74090 |
| child | 5040:685403a6fee1 |
comparison
equal
deleted
inserted
replaced
| 5034:2dbb3bf74090 | 5035:874cab7b4b3e |
|---|---|
| 350 return setmetatable({ store = store }, keyval_store); | 350 return setmetatable({ store = store }, keyval_store); |
| 351 end | 351 end |
| 352 return nil, "unsupported-store"; | 352 return nil, "unsupported-store"; |
| 353 end | 353 end |
| 354 | 354 |
| 355 function driver:list_stores(username) -- Not to be confused with the list store type | |
| 356 local sql = (username == true | |
| 357 and "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`!=?" | |
| 358 or "SELECT DISTINCT `store` FROM `prosody` WHERE `host`=? AND `user`=?"); | |
| 359 if username == true or not username then | |
| 360 username = ""; | |
| 361 end | |
| 362 local stmt, err = dosql(sql, host, username); | |
| 363 if not stmt then | |
| 364 return nil, err; | |
| 365 end | |
| 366 local stores = {}; | |
| 367 for row in stmt:rows() do | |
| 368 stores[#stores+1] = row[1]; | |
| 369 end | |
| 370 return stores; | |
| 371 end | |
| 372 | |
| 355 module:add_item("data-driver", driver); | 373 module:add_item("data-driver", driver); |