Unknwon 10 years ago
parent
commit
069486d169
5 changed files with 32 additions and 12 deletions
  1. 1 0
      conf/app.ini
  2. 1 1
      gogs.go
  3. 19 1
      modules/auth/auth.go
  4. 10 9
      modules/setting/setting.go
  5. 1 1
      templates/.VERSION

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

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

+ 19 - 1
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
 			}

+ 10 - 9
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{

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.5.8.1130 Beta
+0.5.8.1205 Beta