Browse Source

config option: Require sign in to view repository

Unknown 11 years ago
parent
commit
5373a3093e
4 changed files with 7 additions and 2 deletions
  1. 2 0
      conf/app.ini
  2. 2 0
      modules/base/conf.go
  3. 1 1
      modules/middleware/auth.go
  4. 2 1
      web.go

+ 2 - 0
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

+ 2 - 0
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() {

+ 1 - 1
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 {

+ 2 - 1
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)