Browse Source

Support changing default landing path

This adds a new `landing` value in the [app] section of config.ini.
If non-empty, unauthenticated users on multi-user instances will be
redirected to the path given there.

This closes T574
pull/102/head
Matt Baer 5 years ago
parent
commit
584fe4fb93
2 changed files with 14 additions and 0 deletions
  1. +5
    -0
      app.go
  2. +9
    -0
      config/config.go

+ 5
- 0
app.go View File

@@ -31,6 +31,7 @@ import (
"github.com/gorilla/sessions"
"github.com/manifoldco/promptui"
"github.com/writeas/go-strip-markdown"
"github.com/writeas/impart"
"github.com/writeas/web-core/auth"
"github.com/writeas/web-core/converter"
"github.com/writeas/web-core/log"
@@ -90,6 +91,10 @@ func handleViewHome(app *App, w http.ResponseWriter, r *http.Request) error {
return handleViewPad(app, w, r)
}

if land := app.cfg.App.LandingPath(); land != "/" {
return impart.HTTPError{http.StatusFound, land}
}

p := struct {
page.StaticPage
Flashes []template.HTML


+ 9
- 0
config/config.go View File

@@ -13,6 +13,7 @@ package config

import (
"gopkg.in/ini.v1"
"strings"
)

const (
@@ -64,6 +65,7 @@ type (
Theme string `ini:"theme"`
JSDisabled bool `ini:"disable_js"`
WebFonts bool `ini:"webfonts"`
Landing string `ini:"landing"`

// Users
SingleUser bool `ini:"single_user"`
@@ -134,6 +136,13 @@ func (cfg *Config) IsSecureStandalone() bool {
return cfg.Server.Port == 443 && cfg.Server.TLSCertPath != "" && cfg.Server.TLSKeyPath != ""
}

func (ac *AppCfg) LandingPath() string {
if !strings.HasPrefix(ac.Landing, "/") {
return "/" + ac.Landing
}
return ac.Landing
}

// Load reads the given configuration file, then parses and returns it as a Config.
func Load(fname string) (*Config, error) {
if fname == "" {


Loading…
Cancel
Save