Added disable user sign up feature

This commit is contained in:
Torkel Ödegaard
2015-01-29 15:46:54 +01:00
parent d95c5e6674
commit 04d03f73b3
9 changed files with 21 additions and 6 deletions

View File

@@ -59,7 +59,7 @@ login_remember_days = 7
cookie_username = grafana_user cookie_username = grafana_user
cookie_remember_name = grafana_remember cookie_remember_name = grafana_remember
; disable user signup / registration ; disable user signup / registration
; disable_user_signup = false, not implemented yet disable_user_signup = false
[account.single] [account.single]
; Enable this feature to auto assign new users to a single account, suitable for NON multi tenant setups ; Enable this feature to auto assign new users to a single account, suitable for NON multi tenant setups

Submodule grafana updated: 3b5c813be7...740709da04

View File

@@ -18,7 +18,7 @@ func Register(r *macaron.Macaron) {
// not logged in views // not logged in views
r.Get("/", reqSignedIn, Index) r.Get("/", reqSignedIn, Index)
r.Post("/logout", LogoutPost) r.Get("/logout", Logout)
r.Post("/login", bind(dtos.LoginCommand{}), LoginPost) r.Post("/login", bind(dtos.LoginCommand{}), LoginPost)
r.Get("/login/:name", OAuthLogin) r.Get("/login/:name", OAuthLogin)
r.Get("/login", LoginView) r.Get("/login", LoginView)

View File

@@ -25,6 +25,7 @@ func LoginView(c *middleware.Context) {
settings := c.Data["Settings"].(map[string]interface{}) settings := c.Data["Settings"].(map[string]interface{})
settings["googleAuthEnabled"] = setting.OAuthService.Google settings["googleAuthEnabled"] = setting.OAuthService.Google
settings["githubAuthEnabled"] = setting.OAuthService.GitHub settings["githubAuthEnabled"] = setting.OAuthService.GitHub
settings["disableUserSignUp"] = setting.DisableUserSignUp
// Check auto-login. // Check auto-login.
uname := c.GetCookie(setting.CookieUserName) uname := c.GetCookie(setting.CookieUserName)
@@ -122,9 +123,9 @@ func loginUserWithUser(user *m.User, c *middleware.Context) {
c.Session.Set(middleware.SESS_KEY_USERID, user.Id) c.Session.Set(middleware.SESS_KEY_USERID, user.Id)
} }
func LogoutPost(c *middleware.Context) { func Logout(c *middleware.Context) {
c.SetCookie(setting.CookieUserName, "", -1, setting.AppSubUrl+"/") c.SetCookie(setting.CookieUserName, "", -1, setting.AppSubUrl+"/")
c.SetCookie(setting.CookieRememberName, "", -1, setting.AppSubUrl+"/") c.SetCookie(setting.CookieRememberName, "", -1, setting.AppSubUrl+"/")
c.Session.Destory(c.Context) c.Session.Destory(c.Context)
c.JsonOK("logged out") c.Redirect(setting.AppSubUrl + "/login")
} }

View File

@@ -56,6 +56,11 @@ func OAuthLogin(ctx *middleware.Context) {
// create account if missing // create account if missing
if err == m.ErrUserNotFound { if err == m.ErrUserNotFound {
if setting.DisableUserSignUp {
ctx.Redirect(setting.AppSubUrl + "/login")
return
}
cmd := m.CreateUserCommand{ cmd := m.CreateUserCommand{
Login: userInfo.Email, Login: userInfo.Email,
Email: userInfo.Email, Email: userInfo.Email,

View File

@@ -4,10 +4,15 @@ import (
"github.com/torkelo/grafana-pro/pkg/bus" "github.com/torkelo/grafana-pro/pkg/bus"
"github.com/torkelo/grafana-pro/pkg/middleware" "github.com/torkelo/grafana-pro/pkg/middleware"
m "github.com/torkelo/grafana-pro/pkg/models" m "github.com/torkelo/grafana-pro/pkg/models"
"github.com/torkelo/grafana-pro/pkg/setting"
) )
// POST /api/user/signup // POST /api/user/signup
func SignUp(c *middleware.Context, cmd m.CreateUserCommand) { func SignUp(c *middleware.Context, cmd m.CreateUserCommand) {
if setting.DisableUserSignUp {
c.JsonApiErr(401, "User signup is disabled", nil)
return
}
cmd.Login = cmd.Email cmd.Login = cmd.Email

View File

@@ -36,6 +36,8 @@ var CmdWeb = cli.Command{
} }
func newMacaron() *macaron.Macaron { func newMacaron() *macaron.Macaron {
macaron.Env = setting.Env
m := macaron.New() m := macaron.New()
m.Use(middleware.Logger()) m.Use(middleware.Logger())
m.Use(macaron.Recovery()) m.Use(macaron.Recovery())

View File

@@ -83,7 +83,7 @@ func GetContextHandler() macaron.Handler {
func (ctx *Context) Handle(status int, title string, err error) { func (ctx *Context) Handle(status int, title string, err error) {
if err != nil { if err != nil {
log.Error(4, "%s: %v", title, err) log.Error(4, "%s: %v", title, err)
if macaron.Env != macaron.PROD { if setting.Env != setting.PROD {
ctx.Data["ErrorMsg"] = err ctx.Data["ErrorMsg"] = err
} }
} }

View File

@@ -63,6 +63,7 @@ var (
LogInRememberDays int LogInRememberDays int
CookieUserName string CookieUserName string
CookieRememberName string CookieRememberName string
DisableUserSignUp bool
// single account // single account
SingleAccountMode bool SingleAccountMode bool
@@ -196,6 +197,7 @@ func NewConfigContext() {
LogInRememberDays = security.Key("login_remember_days").MustInt() LogInRememberDays = security.Key("login_remember_days").MustInt()
CookieUserName = security.Key("cookie_username").String() CookieUserName = security.Key("cookie_username").String()
CookieRememberName = security.Key("cookie_remember_name").String() CookieRememberName = security.Key("cookie_remember_name").String()
DisableUserSignUp = security.Key("disable_user_signup").MustBool(false)
// admin // admin
AdminUser = security.Key("admin_user").String() AdminUser = security.Key("admin_user").String()