1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2025-01-08 10:51:09 +00:00

Fix static assets not served on wikis with no auth

This commit is contained in:
Umar Getagazov 2022-08-21 16:25:47 +03:00
parent 945cdc934c
commit 4831e4c7af
3 changed files with 28 additions and 22 deletions

View File

@ -3,19 +3,18 @@ package auth
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/bouncepaw/mycorrhiza/viewutil"
"io" "io"
"log" "log"
"mime" "mime"
"net/http" "net/http"
"strings" "strings"
"github.com/bouncepaw/mycorrhiza/viewutil"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/bouncepaw/mycorrhiza/cfg" "github.com/bouncepaw/mycorrhiza/cfg"
"github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/l18n"
"github.com/bouncepaw/mycorrhiza/misc"
"github.com/bouncepaw/mycorrhiza/static"
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "github.com/bouncepaw/mycorrhiza/util"
) )
@ -35,13 +34,6 @@ func InitAuth(r *mux.Router) {
} }
r.HandleFunc("/login", handlerLogin) r.HandleFunc("/login", handlerLogin)
r.HandleFunc("/logout", handlerLogout) r.HandleFunc("/logout", handlerLogout)
r.HandleFunc("/static/style.css", misc.HandlerStyle)
r.HandleFunc("/robots.txt", misc.HandlerRobotsTxt)
r.PathPrefix("/static/").
Handler(http.StripPrefix("/static/", http.FileServer(http.FS(static.FS))))
r.HandleFunc("/favicon.ico", func(w http.ResponseWriter, rq *http.Request) {
http.Redirect(w, rq, "/static/favicon.ico", http.StatusSeeOther)
})
} }
func handlerUserList(w http.ResponseWriter, rq *http.Request) { func handlerUserList(w http.ResponseWriter, rq *http.Request) {

View File

@ -2,6 +2,15 @@
package misc package misc
import ( import (
"io"
"log"
"math/rand"
"mime"
"net/http"
"path/filepath"
"github.com/gorilla/mux"
"github.com/bouncepaw/mycorrhiza/backlinks" "github.com/bouncepaw/mycorrhiza/backlinks"
"github.com/bouncepaw/mycorrhiza/cfg" "github.com/bouncepaw/mycorrhiza/cfg"
"github.com/bouncepaw/mycorrhiza/files" "github.com/bouncepaw/mycorrhiza/files"
@ -12,15 +21,18 @@ import (
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "github.com/bouncepaw/mycorrhiza/util"
"github.com/bouncepaw/mycorrhiza/viewutil" "github.com/bouncepaw/mycorrhiza/viewutil"
"github.com/gorilla/mux"
"io"
"log"
"math/rand"
"mime"
"net/http"
"path/filepath"
) )
func InitAssetHandlers(rtr *mux.Router) {
rtr.HandleFunc("/static/style.css", handlerStyle)
rtr.HandleFunc("/robots.txt", handlerRobotsTxt)
rtr.PathPrefix("/static/").
Handler(http.StripPrefix("/static/", http.FileServer(http.FS(static.FS))))
rtr.HandleFunc("/favicon.ico", func(w http.ResponseWriter, rq *http.Request) {
http.Redirect(w, rq, "/static/favicon.ico", http.StatusSeeOther)
})
}
func InitHandlers(rtr *mux.Router) { func InitHandlers(rtr *mux.Router) {
rtr.HandleFunc("/list", handlerList) rtr.HandleFunc("/list", handlerList)
rtr.HandleFunc("/reindex", handlerReindex) rtr.HandleFunc("/reindex", handlerReindex)
@ -127,7 +139,7 @@ func handlerAbout(w http.ResponseWriter, rq *http.Request) {
var stylesheets = []string{"default.css", "custom.css"} var stylesheets = []string{"default.css", "custom.css"}
func HandlerStyle(w http.ResponseWriter, rq *http.Request) { func handlerStyle(w http.ResponseWriter, rq *http.Request) {
w.Header().Set("Content-Type", mime.TypeByExtension(".css")) w.Header().Set("Content-Type", mime.TypeByExtension(".css"))
for _, name := range stylesheets { for _, name := range stylesheets {
file, err := static.FS.Open(name) file, err := static.FS.Open(name)
@ -142,7 +154,7 @@ func HandlerStyle(w http.ResponseWriter, rq *http.Request) {
} }
} }
func HandlerRobotsTxt(w http.ResponseWriter, rq *http.Request) { func handlerRobotsTxt(w http.ResponseWriter, rq *http.Request) {
w.Header().Set("Content-Type", "text/plain; charset=utf-8") w.Header().Set("Content-Type", "text/plain; charset=utf-8")
file, err := static.FS.Open("robots.txt") file, err := static.FS.Open("robots.txt")

View File

@ -2,6 +2,10 @@
package web package web
import ( import (
"io"
"net/http"
"net/url"
"github.com/bouncepaw/mycorrhiza/admin" "github.com/bouncepaw/mycorrhiza/admin"
"github.com/bouncepaw/mycorrhiza/auth" "github.com/bouncepaw/mycorrhiza/auth"
"github.com/bouncepaw/mycorrhiza/backlinks" "github.com/bouncepaw/mycorrhiza/backlinks"
@ -11,9 +15,6 @@ import (
"github.com/bouncepaw/mycorrhiza/hypview" "github.com/bouncepaw/mycorrhiza/hypview"
"github.com/bouncepaw/mycorrhiza/interwiki" "github.com/bouncepaw/mycorrhiza/interwiki"
"github.com/bouncepaw/mycorrhiza/misc" "github.com/bouncepaw/mycorrhiza/misc"
"io"
"net/http"
"net/url"
"github.com/gorilla/mux" "github.com/gorilla/mux"
@ -37,6 +38,7 @@ func Handler() http.Handler {
router.StrictSlash(true) router.StrictSlash(true)
// Public routes. They're always accessible regardless of the user status. // Public routes. They're always accessible regardless of the user status.
misc.InitAssetHandlers(router)
auth.InitAuth(router) auth.InitAuth(router)
// Wiki routes. They may be locked or restricted. // Wiki routes. They may be locked or restricted.