diff --git a/conf/app.ini b/conf/app.ini index d38cd1f05..d4fdc0dcf 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -42,6 +42,8 @@ RESET_PASSWD_CODE_LIVE_MINUTES = 180 REGISTER_EMAIL_CONFIRM = false ; Does not allow register and admin create account only DISENABLE_REGISTERATION = false +; User must sign in to view anything. +REQUIRE_SIGNIN_VIEW = false [mailer] ENABLED = false diff --git a/modules/base/conf.go b/modules/base/conf.go index 42d50da4f..3050b915f 100644 --- a/modules/base/conf.go +++ b/modules/base/conf.go @@ -41,6 +41,7 @@ var ( var Service struct { RegisterEmailConfirm bool DisenableRegisteration bool + RequireSignInView bool ActiveCodeLives int ResetPwdCodeLives int } @@ -70,6 +71,7 @@ func newService() { Service.ActiveCodeLives = Cfg.MustInt("service", "ACTIVE_CODE_LIVE_MINUTES", 180) Service.ResetPwdCodeLives = Cfg.MustInt("service", "RESET_PASSWD_CODE_LIVE_MINUTES", 180) Service.DisenableRegisteration = Cfg.MustBool("service", "DISENABLE_REGISTERATION", false) + Service.RequireSignInView = Cfg.MustBool("service", "REQUIRE_SIGNIN_VIEW", false) } func newLogService() { diff --git a/modules/middleware/auth.go b/modules/middleware/auth.go index 44033abb8..f211de32b 100644 --- a/modules/middleware/auth.go +++ b/modules/middleware/auth.go @@ -15,7 +15,7 @@ func SignInRequire(redirect bool) martini.Handler { return func(ctx *Context) { if !ctx.IsSigned { if redirect { - ctx.Redirect("/") + ctx.Redirect("/user/login") } return } else if !ctx.User.IsActive && base.Service.RegisterEmailConfirm { diff --git a/web.go b/web.go index 648cb9d79..6fe838aa7 100644 --- a/web.go +++ b/web.go @@ -87,7 +87,8 @@ func runWeb(*cli.Context) { m.Use(middleware.InitContext()) - reqSignIn, ignSignIn := middleware.SignInRequire(true), middleware.SignInRequire(false) + reqSignIn := middleware.SignInRequire(true) + ignSignIn := middleware.SignInRequire(base.Service.RequireSignInView) reqSignOut := middleware.SignOutRequire() // Routers. m.Get("/", ignSignIn, routers.Home)