From 9f9cd6bfc61d82ee0a3d31cee112be7975b8ca86 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Mar 2014 07:50:26 -0400 Subject: Work on admin --- modules/middleware/context.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'modules/middleware/context.go') diff --git a/modules/middleware/context.go b/modules/middleware/context.go index 6ac87de3..744cdfc1 100644 --- a/modules/middleware/context.go +++ b/modules/middleware/context.go @@ -14,6 +14,7 @@ import ( "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" + "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" ) @@ -61,24 +62,29 @@ func (ctx *Context) HasError() bool { return hasErr.(bool) } +// HTML calls render.HTML underlying but reduce one argument. +func (ctx *Context) HTML(status int, name string, htmlOpt ...HTMLOptions) { + ctx.Render.HTML(status, name, ctx.Data, htmlOpt...) +} + // RenderWithErr used for page has form validation but need to prompt error to users. func (ctx *Context) RenderWithErr(msg, tpl string, form auth.Form) { ctx.Data["HasError"] = true ctx.Data["ErrorMsg"] = msg auth.AssignForm(form, ctx.Data) - ctx.HTML(200, tpl, ctx.Data) + ctx.HTML(200, tpl) } // Handle handles and logs error by given status. func (ctx *Context) Handle(status int, title string, err error) { log.Error("%s: %v", title, err) if martini.Dev == martini.Prod { - ctx.HTML(500, "status/500", ctx.Data) + ctx.HTML(500, "status/500") return } ctx.Data["ErrorMsg"] = err - ctx.HTML(status, fmt.Sprintf("status/%d", status), ctx.Data) + ctx.HTML(status, fmt.Sprintf("status/%d", status)) } // InitContext initializes a classic context for a request. @@ -106,6 +112,10 @@ func InitContext() martini.Handler { ctx.Data["SignedUser"] = user ctx.Data["SignedUserId"] = user.Id ctx.Data["SignedUserName"] = user.LowerName + + if ctx.User.IsAdmin || ctx.User.LowerName == base.AdminName { + ctx.Data["IsAdmin"] = true + } } ctx.Data["PageStartTime"] = time.Now() -- cgit v1.2.3 From 4cf6cc63b0679aaf5fe8b74a2aaf0bd92b1f12d3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Mar 2014 08:02:14 -0400 Subject: Work on admin --- conf/app.ini | 4 ---- models/user.go | 8 +++++++- modules/base/conf.go | 2 -- modules/middleware/auth.go | 2 +- modules/middleware/context.go | 6 +----- routers/user/user.go | 2 +- 6 files changed, 10 insertions(+), 14 deletions(-) (limited to 'modules/middleware/context.go') diff --git a/conf/app.ini b/conf/app.ini index 21090ceb..658f7c01 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -27,10 +27,6 @@ PASSWD = ; For "postgres" only, either "disable", "require" or "verify-full" SSL_MODE = disable -[admin] -; Administor's name, which should be same as the user name you want to authorize -NAME = admin - [security] ; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!! SECRET_KEY = !#@FDEWREWR&*( diff --git a/models/user.go b/models/user.go index 8f74fd53..fd89af6b 100644 --- a/models/user.go +++ b/models/user.go @@ -137,7 +137,13 @@ func RegisterUser(user *User) (*User, error) { } return nil, err } - return user, nil + + if user.Id == 1 { + user.IsAdmin = true + user.IsActive = true + _, err = orm.Id(user.Id).UseBool().Update(user) + } + return user, err } // get user by erify code diff --git a/modules/base/conf.go b/modules/base/conf.go index c904c5b3..fdbf3ad3 100644 --- a/modules/base/conf.go +++ b/modules/base/conf.go @@ -32,7 +32,6 @@ var ( AppUrl string Domain string SecretKey string - AdminName string Cfg *goconfig.ConfigFile MailService *Mailer ) @@ -174,7 +173,6 @@ func init() { AppUrl = Cfg.MustValue("server", "ROOT_URL") Domain = Cfg.MustValue("server", "DOMAIN") SecretKey = Cfg.MustValue("security", "SECRET_KEY") - AdminName = strings.ToLower(Cfg.MustValue("admin", "NAME")) } func NewServices() { diff --git a/modules/middleware/auth.go b/modules/middleware/auth.go index b67f766b..44033abb 100644 --- a/modules/middleware/auth.go +++ b/modules/middleware/auth.go @@ -39,7 +39,7 @@ func SignOutRequire() martini.Handler { // AdminRequire requires user signed in as administor. func AdminRequire() martini.Handler { return func(ctx *Context) { - if ctx.User.LowerName != base.AdminName && !ctx.User.IsAdmin { + if !ctx.User.IsAdmin { ctx.Error(403) return } diff --git a/modules/middleware/context.go b/modules/middleware/context.go index 744cdfc1..cb3cbabc 100644 --- a/modules/middleware/context.go +++ b/modules/middleware/context.go @@ -14,7 +14,6 @@ import ( "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" ) @@ -112,10 +111,7 @@ func InitContext() martini.Handler { ctx.Data["SignedUser"] = user ctx.Data["SignedUserId"] = user.Id ctx.Data["SignedUserName"] = user.LowerName - - if ctx.User.IsAdmin || ctx.User.LowerName == base.AdminName { - ctx.Data["IsAdmin"] = true - } + ctx.Data["IsAdmin"] = ctx.User.IsAdmin } ctx.Data["PageStartTime"] = time.Now() diff --git a/routers/user/user.go b/routers/user/user.go index 2b759e41..be2c4d38 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -153,7 +153,7 @@ func SignUp(ctx *middleware.Context, form auth.RegisterForm) { log.Trace("%s User created: %s", ctx.Req.RequestURI, strings.ToLower(form.UserName)) // Send confirmation e-mail. - if base.Service.RegisterEmailConfirm { + if base.Service.RegisterEmailConfirm && u.Id > 1 { mailer.SendRegisterMail(ctx.Render, u) ctx.Data["IsSendRegisterMail"] = true ctx.Data["Email"] = u.Email -- cgit v1.2.3