From 216683004e8bf3e7523236416be21b2123d32e8e Mon Sep 17 00:00:00 2001
From: Unknwon <joe2010xtmf@163.com>
Date: Fri, 6 Feb 2015 21:16:23 -0500
Subject: [PATCH] code fix for #908, and work for #884

---
 modules/middleware/context.go | 2 ++
 modules/setting/setting.go    | 2 +-
 routers/home.go               | 1 -
 templates/ng/base/header.tmpl | 2 ++
 4 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/modules/middleware/context.go b/modules/middleware/context.go
index fc7814401f..28be3a3025 100644
--- a/modules/middleware/context.go
+++ b/modules/middleware/context.go
@@ -192,6 +192,8 @@ func Contexter() macaron.Handler {
 		ctx.Data["CsrfToken"] = x.GetToken()
 		ctx.Data["CsrfTokenHtml"] = template.HTML(`<input type="hidden" name="_csrf" value="` + x.GetToken() + `">`)
 
+		ctx.Data["ShowRegistrationButton"] = setting.Service.ShowRegistrationButton
+
 		c.Map(ctx)
 	}
 }
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 4d407362c5..e79e6d6b96 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -325,7 +325,7 @@ func newService() {
 	Service.ActiveCodeLives = Cfg.Section("service").Key("ACTIVE_CODE_LIVE_MINUTES").MustInt(180)
 	Service.ResetPwdCodeLives = Cfg.Section("service").Key("RESET_PASSWD_CODE_LIVE_MINUTES").MustInt(180)
 	Service.DisableRegistration = Cfg.Section("service").Key("DISABLE_REGISTRATION").MustBool()
-	Service.ShowRegistrationButton = Cfg.Section("service").Key("SHOW_REGISTRATION_BUTTON").MustBool()
+	Service.ShowRegistrationButton = Cfg.Section("service").Key("SHOW_REGISTRATION_BUTTON").MustBool(!Service.DisableRegistration)
 	Service.RequireSignInView = Cfg.Section("service").Key("REQUIRE_SIGNIN_VIEW").MustBool()
 	Service.EnableCacheAvatar = Cfg.Section("service").Key("ENABLE_CACHE_AVATAR").MustBool()
 	Service.EnableReverseProxyAuth = Cfg.Section("service").Key("ENABLE_REVERSE_PROXY_AUTHENTICATION").MustBool()
diff --git a/routers/home.go b/routers/home.go
index 24fc77e12a..dd604ec7e3 100644
--- a/routers/home.go
+++ b/routers/home.go
@@ -41,7 +41,6 @@ func Home(ctx *middleware.Context) {
 		ctx.Data["OauthEnabled"] = true
 		ctx.Data["OauthService"] = setting.OauthService
 	}
-	ctx.Data["ShowRegistrationButton"] = setting.Service.ShowRegistrationButton
 
 	ctx.Data["PageIsHome"] = true
 	ctx.HTML(200, HOME)
diff --git a/templates/ng/base/header.tmpl b/templates/ng/base/header.tmpl
index aec4e2ef66..da9218368d 100644
--- a/templates/ng/base/header.tmpl
+++ b/templates/ng/base/header.tmpl
@@ -49,10 +49,12 @@
             <li class="right" id="header-nav-sign-in">
                 <a href="{{AppSubUrl}}/user/login" title="Sign In"><i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}</a>
             </li>
+            {{if .ShowRegistrationButton}}
             <li class="right">
                 <a href="{{AppSubUrl}}/user/sign_up" title="Account Settings"><i class="octicon octicon-person-add"></i> {{.i18n.Tr "register"}}</a>
             </li>
             {{end}}
+            {{end}}
         {{end}}
     </ul>
 </header>
\ No newline at end of file