diff options
Diffstat (limited to 'storage')
| -rw-r--r-- | storage/storage.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/storage/storage.go b/storage/storage.go index a32c4a0..6455876 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -169,6 +169,31 @@ func (db *Database) GetChannelUsers(channel string) (users []string, err error) return users, nil } +func (db *Database) GetUserChannels(user string, count, offset int) (channels []string, err error) { + rows, err := db.Query("SELECT channel FROM permissions WHERE user = ? AND write = 1;", user) + defer func() { + if rows == nil { + return + } + if err := rows.Close(); err != nil { + log.Println("cannot close database row:", err) + } + }() + if err != nil { + return channels, err + } + + for rows.Next() { + var channel string + if err := rows.Scan(&channel); err != nil { + return channels, err + } + channels = append(channels, channel) + } + + return channels, nil +} + func itob(v int) bool { if v == 1 { return true |
