package dirserv import ( "net/http" "imuslab.com/arozos/mod/database" "imuslab.com/arozos/mod/fileservers" "imuslab.com/arozos/mod/user" ) /* dirserv.go This module help serve the virtual file system in apache like directory listing interface Suitable for legacy web browser */ type Option struct { Sysdb *database.Database } type Manager struct { enabled bool option *Option } //Create a new web directory server func NewDirectoryServer(option *Option) *Manager { //Create a table to store which user enabled dirlisting on their own root option.Sysdb.NewTable("dirserv") defaultEnable := false if option.Sysdb.KeyExists("dirserv", "enabled") { option.Sysdb.Read("dirserv", "enabled", &defaultEnable) } return &Manager{ enabled: defaultEnable, option: option, } } func (m *Manager) DirServerEnabled() bool { return m.enabled } func (m *Manager) Toggle(enabled bool) error { m.enabled = !m.enabled return nil } func (m *Manager) ListEndpoints(userinfo *user.User) []*fileservers.Endpoint { results := []*fileservers.Endpoint{} return results } /* Router request handler */ func (m *Manager) ServerWebFileRequest(w http.ResponseWriter, r *http.Request) { }