12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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) {
- }
|