summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/app.ini1
-rw-r--r--gogs.go2
-rw-r--r--modules/auth/auth.go20
-rw-r--r--modules/setting/setting.go19
-rw-r--r--templates/.VERSION2
5 files changed, 32 insertions, 12 deletions
diff --git a/conf/app.ini b/conf/app.ini
index 0fec297bc5..4043cbb631 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -77,6 +77,7 @@ ENABLE_CACHE_AVATAR = false
ENABLE_NOTIFY_MAIL = false
; More detail: https://github.com/gogits/gogs/issues/165
ENABLE_REVERSE_PROXY_AUTHENTICATION = false
+ENABLE_REVERSE_PROXY_AUTO_REGISTERATION = false
[webhook]
; Cron task interval in minutes
diff --git a/gogs.go b/gogs.go
index ec8fa48695..5097309e44 100644
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
-const APP_VER = "0.5.8.1130 Beta"
+const APP_VER = "0.5.8.1205 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/modules/auth/auth.go b/modules/auth/auth.go
index 302620dbc8..5b7276b48a 100644
--- a/modules/auth/auth.go
+++ b/modules/auth/auth.go
@@ -60,6 +60,7 @@ func SignedInId(req *http.Request, sess session.Store) int64 {
}
// SignedInUser returns the user object of signed user.
+// It returns a bool value to indicate whether user uses basic auth or not.
func SignedInUser(req *http.Request, sess session.Store) (*models.User, bool) {
if !models.HasEngine {
return nil, false
@@ -75,8 +76,25 @@ func SignedInUser(req *http.Request, sess session.Store) (*models.User, bool) {
if err != nil {
if err != models.ErrUserNotExist {
log.Error(4, "GetUserByName: %v", err)
+ return nil, false
+ }
+
+ // Check if enabled auto-registeration.
+ if setting.Service.EnableReverseProxyAutoRegister {
+ u := &models.User{
+ Name: webAuthUser,
+ Email: webAuthUser + "@gogs.io",
+ Passwd: webAuthUser,
+ IsActive: true,
+ }
+ if err = models.CreateUser(u); err != nil {
+ // FIXME: should I create a system notice?
+ log.Error(4, "CreateUser: %v", err)
+ return nil, false
+ } else {
+ return u, false
+ }
}
- return nil, false
}
return u, false
}
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 476fc6affa..b1efc9c7a8 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -300,15 +300,15 @@ func NewConfigContext() {
}
var Service struct {
- RegisterEmailConfirm bool
- DisableRegistration bool
- RequireSignInView bool
- EnableCacheAvatar bool
- EnableNotifyMail bool
- EnableReverseProxyAuth bool
- LdapAuth bool
- ActiveCodeLives int
- ResetPwdCodeLives int
+ RegisterEmailConfirm bool
+ DisableRegistration bool
+ RequireSignInView bool
+ EnableCacheAvatar bool
+ EnableNotifyMail bool
+ EnableReverseProxyAuth bool
+ EnableReverseProxyAutoRegister bool
+ ActiveCodeLives int
+ ResetPwdCodeLives int
}
func newService() {
@@ -318,6 +318,7 @@ func newService() {
Service.RequireSignInView = Cfg.MustBool("service", "REQUIRE_SIGNIN_VIEW")
Service.EnableCacheAvatar = Cfg.MustBool("service", "ENABLE_CACHE_AVATAR")
Service.EnableReverseProxyAuth = Cfg.MustBool("service", "ENABLE_REVERSE_PROXY_AUTHENTICATION")
+ Service.EnableReverseProxyAutoRegister = Cfg.MustBool("service", "ENABLE_REVERSE_PROXY_AUTO_REGISTERATION")
}
var logLevels = map[string]string{
diff --git a/templates/.VERSION b/templates/.VERSION
index 27cf20dd2f..9808b62971 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.5.8.1130 Beta \ No newline at end of file
+0.5.8.1205 Beta \ No newline at end of file