From fa0a389dc47c3e2b6203157f5c377a6478da25ec Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 5 Aug 2014 19:40:01 -0400 Subject: Fix bare repo bug --- models/repo.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'models') diff --git a/models/repo.go b/models/repo.go index a68757af..c2398fe7 100644 --- a/models/repo.go +++ b/models/repo.go @@ -446,7 +446,9 @@ func initRepository(f string, u *User, repo *Repository, initReadme bool, repoLa } if len(fileName) == 0 { - return nil + repo.IsBare = true + repo.DefaultBranch = "master" + return UpdateRepository(repo) } // Apply changes and commit. @@ -479,10 +481,6 @@ func CreateRepository(u *User, name, desc, lang, license string, private, mirror LowerName: strings.ToLower(name), Description: desc, IsPrivate: private, - IsBare: lang == "" && license == "" && !initReadme, - } - if !repo.IsBare { - repo.DefaultBranch = "master" } if _, err = sess.Insert(repo); err != nil { @@ -550,11 +548,11 @@ func CreateRepository(u *User, name, desc, lang, license string, private, mirror if u.IsOrganization() { ous, err := GetOrgUsersByOrgId(u.Id) if err != nil { - log.Error(4, "repo.CreateRepository(GetOrgUsersByOrgId): %v", err) + log.Error(4, "GetOrgUsersByOrgId: %v", err) } else { for _, ou := range ous { if err = WatchRepo(ou.Uid, repo.Id, true); err != nil { - log.Error(4, "repo.CreateRepository(WatchRepo): %v", err) + log.Error(4, "WatchRepo: %v", err) } } } -- cgit v1.2.3 From a8e05fdf1b45578ad260aca3d239beb8be6197bf Mon Sep 17 00:00:00 2001 From: Unknwon Date: Wed, 6 Aug 2014 17:21:24 -0400 Subject: Use toolbox --- .gitignore | 1 + cmd/web.go | 19 ++++++++++++++----- gogs.go | 2 +- models/models.go | 4 ++++ routers/dev/debug.go | 18 ------------------ routers/user/home.go | 17 ++++++++++++----- templates/.VERSION | 2 +- 7 files changed, 33 insertions(+), 30 deletions(-) delete mode 100644 routers/dev/debug.go (limited to 'models') diff --git a/.gitignore b/.gitignore index c24f364b..e8b5ee1f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ _testmain.go *.exe *.exe~ /gogs +profile/ __pycache__ *.pem output* diff --git a/cmd/web.go b/cmd/web.go index 995aeb04..8d39ce64 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -19,7 +19,9 @@ import ( "github.com/macaron-contrib/csrf" "github.com/macaron-contrib/i18n" "github.com/macaron-contrib/session" + "github.com/macaron-contrib/toolbox" + "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" "github.com/gogits/gogs/modules/auth/apiv1" "github.com/gogits/gogs/modules/avatar" @@ -62,20 +64,20 @@ func newMacaron() *macaron.Macaron { m := macaron.New() m.Use(macaron.Logger()) m.Use(macaron.Recovery()) - if setting.EnableGzip { - m.Use(macaron.Gzip()) - } m.Use(macaron.Static("public", macaron.StaticOptions{ SkipLogging: !setting.DisableRouterLog, }, )) + if setting.EnableGzip { + m.Use(macaron.Gzip()) + } m.Use(macaron.Renderer(macaron.RenderOptions{ Directory: path.Join(setting.StaticRootPath, "templates"), Funcs: []template.FuncMap{base.TemplateFuncs}, IndentJSON: macaron.Env != macaron.PROD, })) - m.Use(i18n.I18n(i18n.LocaleOptions{ + m.Use(i18n.I18n(i18n.Options{ Langs: setting.Langs, Names: setting.Names, Redirect: true, @@ -95,6 +97,14 @@ func newMacaron() *macaron.Macaron { SetCookie: true, })) m.Use(middleware.Contexter()) + m.Use(toolbox.Toolboxer(m, toolbox.Options{ + HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{ + &toolbox.HealthCheckFuncDesc{ + Desc: "Database connection", + Func: models.Ping, + }, + }, + })) return m } @@ -208,7 +218,6 @@ func runWeb(*cli.Context) { if macaron.Env == macaron.DEV { m.Get("/template/*", dev.TemplatePreview) - dev.RegisterDebugRoutes(m) } reqTrueOwner := middleware.RequireTrueOwner() diff --git a/gogs.go b/gogs.go index c395276b..b08dbd5a 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.4.7.0805 Alpha" +const APP_VER = "0.4.7.0806 Alpha" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/models.go b/models/models.go index 31509ed3..af9529f4 100644 --- a/models/models.go +++ b/models/models.go @@ -165,6 +165,10 @@ func GetStatistic() (stats Statistic) { return } +func Ping() error { + return x.Ping() +} + // DumpDatabase dumps all data from database to file system. func DumpDatabase(filePath string) error { return x.DumpAllToFile(filePath) diff --git a/routers/dev/debug.go b/routers/dev/debug.go deleted file mode 100644 index 7d737d88..00000000 --- a/routers/dev/debug.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2014 The Gogs Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package dev - -import ( - "net/http/pprof" - - "github.com/Unknwon/macaron" -) - -func RegisterDebugRoutes(r *macaron.Macaron) { - r.Any("/debug/pprof/cmdline", pprof.Cmdline) - r.Any("/debug/pprof/profile", pprof.Profile) - r.Any("/debug/pprof/symbol", pprof.Symbol) - r.Any("/debug/pprof/*", pprof.Index) -} diff --git a/routers/user/home.go b/routers/user/home.go index 706c16d9..177fa38b 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -119,12 +119,19 @@ func Profile(ctx *middleware.Context) { ctx.Data["Title"] = "Profile" ctx.Data["PageIsUserProfile"] = true - u, err := models.GetUserByName(ctx.Params(":username")) + uname := ctx.Params(":username") + // Special handle for FireFox requests favicon.ico. + if uname == "favicon.ico" { + ctx.Redirect("/img/favicon.png") + return + } + + u, err := models.GetUserByName(uname) if err != nil { if err == models.ErrUserNotExist { - ctx.Handle(404, "user.Profile(GetUserByName)", err) + ctx.Handle(404, "GetUserByName", err) } else { - ctx.Handle(500, "user.Profile(GetUserByName)", err) + ctx.Handle(500, "GetUserByName", err) } return } @@ -146,13 +153,13 @@ func Profile(ctx *middleware.Context) { case "activity": ctx.Data["Feeds"], err = models.GetFeeds(u.Id, 0, true) if err != nil { - ctx.Handle(500, "user.Profile(GetFeeds)", err) + ctx.Handle(500, "GetFeeds", err) return } default: ctx.Data["Repos"], err = models.GetRepositories(u.Id, ctx.IsSigned && ctx.User.Id == u.Id) if err != nil { - ctx.Handle(500, "user.Profile(GetRepositories)", err) + ctx.Handle(500, "GetRepositories", err) return } } diff --git a/templates/.VERSION b/templates/.VERSION index 833e3a16..04e73b67 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.4.7.0805 Alpha \ No newline at end of file +0.4.7.0806 Alpha \ No newline at end of file -- cgit v1.2.3 From be7ce72ebe6cddd49a2ffffaa3f136af9f2c72f2 Mon Sep 17 00:00:00 2001 From: Sebastian Jackel Date: Thu, 7 Aug 2014 10:00:57 +0200 Subject: Make sure, .ssh directory and authorized_keys file are kept at correct permissions --- models/publickey.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'models') diff --git a/models/publickey.go b/models/publickey.go index baf38177..6e0494ef 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -69,7 +69,7 @@ func init() { // Determine and create .ssh path. SshPath = filepath.Join(homeDir(), ".ssh") - if err = os.MkdirAll(SshPath, os.ModePerm); err != nil { + if err = os.MkdirAll(SshPath, 0700); err != nil { log.Fatal(4, "fail to create SshPath(%s): %v\n", SshPath, err) } } @@ -155,6 +155,15 @@ func saveAuthorizedKeyFile(key *PublicKey) error { if err != nil { return err } + finfo, err := f.Stat() + if err != nil { + return err + } + if finfo.Mode().Perm() > 0600 { + log.Error("authorized_keys file has unusual permission flags: " + finfo.Mode().Perm() + " - setting to -rw-r--r--") + f.Chmod(0600) + } + defer f.Close() _, err = f.WriteString(key.GetAuthorizedString()) -- cgit v1.2.3 From 51abaf788c416bf48ba9e109344c5cbd41a1ef49 Mon Sep 17 00:00:00 2001 From: Sebastian Jackel Date: Thu, 7 Aug 2014 10:34:37 +0200 Subject: Corrected log message --- models/publickey.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'models') diff --git a/models/publickey.go b/models/publickey.go index 6e0494ef..a03d282c 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -160,7 +160,7 @@ func saveAuthorizedKeyFile(key *PublicKey) error { return err } if finfo.Mode().Perm() > 0600 { - log.Error("authorized_keys file has unusual permission flags: " + finfo.Mode().Perm() + " - setting to -rw-r--r--") + log.Error(3, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) f.Chmod(0600) } -- cgit v1.2.3 From 0bfbefc38a6cfdace6ede1d0c485e400898672d2 Mon Sep 17 00:00:00 2001 From: Sebastian Jackel Date: Thu, 7 Aug 2014 11:06:42 +0200 Subject: Moved defer f.Close() up so there is no chance of returning without closing and handled an error on f.Chmod --- models/publickey.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'models') diff --git a/models/publickey.go b/models/publickey.go index a03d282c..83a3e1b8 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -155,17 +155,19 @@ func saveAuthorizedKeyFile(key *PublicKey) error { if err != nil { return err } + defer f.Close() finfo, err := f.Stat() if err != nil { return err } if finfo.Mode().Perm() > 0600 { log.Error(3, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) - f.Chmod(0600) + err = f.Chmod(0600) + if err != nil { + return err + } } - defer f.Close() - _, err = f.WriteString(key.GetAuthorizedString()) return err } -- cgit v1.2.3 From 9d5c0c80a4984acc1a42da8360a712e4f5f615a0 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Thu, 7 Aug 2014 06:45:29 -0400 Subject: Mirror fix on #352 --- models/publickey.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'models') diff --git a/models/publickey.go b/models/publickey.go index 83a3e1b8..f9880c74 100644 --- a/models/publickey.go +++ b/models/publickey.go @@ -161,9 +161,8 @@ func saveAuthorizedKeyFile(key *PublicKey) error { return err } if finfo.Mode().Perm() > 0600 { - log.Error(3, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) - err = f.Chmod(0600) - if err != nil { + log.Error(4, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String()) + if err = f.Chmod(0600); err != nil { return err } } -- cgit v1.2.3