## Acknowledgments
- Logo is inspired by [martini](https://github.com/martini-contrib).
-- Mail Service is based on [WeTalk](https://github.com/beego/wetalk).
-- System Monitor Status is based on [GoBlog](https://github.com/fuxiaohei/goblog).
+- Mail Service, modules design is inspired by [WeTalk](https://github.com/beego/wetalk).
+- System Monitor Status is inspired by [GoBlog](https://github.com/fuxiaohei/goblog).
## Contributors
PATH = data/pictures
[log]
-; Either "console", "file", "conn" or "smtp", default is "console"
+; Either "console", "file", "conn", "smtp" or "database", default is "console"
MODE = console
; Buffer length of channel, keep it as it is if you don't know what it is.
BUFFER_LEN = 10000
USER =
PASSWD =
; Receivers, can be one or more, e.g. ["1@example.com","2@example.com"]
-RECEIVERS =
\ No newline at end of file
+RECEIVERS =
+
+; For "database" mode only
+[log.database]
+LEVEL =
+Driver =
+CONN =
\ No newline at end of file
Cfg.MustValue(modeSec, "HOST", "127.0.0.1:25"),
Cfg.MustValue(modeSec, "RECEIVERS", "[]"),
Cfg.MustValue(modeSec, "SUBJECT", "Diagnostic message from serve"))
+ case "database":
+ LogConfig = fmt.Sprintf(`{"level":%s,"driver":%s,"conn":%s}`, level,
+ Cfg.MustValue(modeSec, "Driver"),
+ Cfg.MustValue(modeSec, "CONN"))
}
log.NewLogger(Cfg.MustInt64("log", "BUFFER_LEN", 10000), LogMode, LogConfig)
package middleware
import (
+ "net/url"
+
"github.com/codegangsta/martini"
"github.com/gogits/gogs/modules/base"
if options.SignInRequire {
if !ctx.IsSigned {
+ ctx.SetCookie("redirect_to", "/"+url.QueryEscape(ctx.Req.RequestURI))
ctx.Redirect("/user/login")
return
} else if !ctx.User.IsActive && base.Service.RegisterEmailConfirm {
log.Trace("%s User deleted by admin(%s): %s", ctx.Req.RequestURI,
ctx.User.LowerName, ctx.User.LowerName)
- ctx.Redirect("/admin/users", 302)
+ ctx.Redirect("/admin/users")
}
form.IssueName, form.Labels, form.Content, false)
if err == nil {
log.Trace("%s Issue created: %d", form.RepoId, issue.Id)
- ctx.Redirect(fmt.Sprintf("/%s/%s/issues/%d", params["username"], params["reponame"], issue.Index), 302)
+ ctx.Redirect(fmt.Sprintf("/%s/%s/issues/%d", params["username"], params["reponame"], issue.Index))
return
}
ctx.Handle(200, "issue.CreateIssue", err)
form.Language, form.License, form.Visibility == "private", form.InitReadme == "on")
if err == nil {
log.Trace("%s Repository created: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, form.RepoName)
- ctx.Redirect("/"+ctx.User.Name+"/"+form.RepoName, 302)
+ ctx.Redirect("/" + ctx.User.Name + "/" + form.RepoName)
return
} else if err == models.ErrRepoAlreadyExist {
ctx.RenderWithErr("Repository name has already been used", "repo/create", &form)
}
log.Trace("%s Repository deleted: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.LowerName)
- ctx.Redirect("/", 302)
+ ctx.Redirect("/")
}
func Branches(ctx *middleware.Context, params martini.Params) {
treename := params["_1"]
if len(treename) > 0 && treename[len(treename)-1] == '/' {
- ctx.Redirect("/"+ctx.Repo.Owner.LowerName+"/"+
- ctx.Repo.Repository.Name+"/src/"+params["branchname"]+"/"+treename[:len(treename)-1], 302)
+ ctx.Redirect("/" + ctx.Repo.Owner.LowerName + "/" +
+ ctx.Repo.Repository.Name + "/src/" + params["branchname"] + "/" + treename[:len(treename)-1])
return
}
import (
"fmt"
+ "net/url"
"strings"
"github.com/codegangsta/martini"
isSucceed = true
ctx.Session.Set("userId", user.Id)
ctx.Session.Set("userName", user.Name)
- ctx.Redirect("/")
+ redirectTo, _ := url.QueryUnescape(ctx.GetCookie("redirect_to"))
+ if len(redirectTo) > 0 {
+ ctx.SetCookie("redirect_to", "", -1)
+ ctx.Redirect(redirectTo)
+ } else {
+ ctx.Redirect("/")
+ }
return
}
ctx.Session.Set("userId", user.Id)
ctx.Session.Set("userName", user.Name)
- ctx.Redirect("/")
+ redirectTo, _ := url.QueryUnescape(ctx.GetCookie("redirect_to"))
+ if len(redirectTo) > 0 {
+ ctx.SetCookie("redirect_to", "", -1)
+ ctx.Redirect(redirectTo)
+ } else {
+ ctx.Redirect("/")
+ }
}
func SignOut(ctx *middleware.Context) {
ctx.Session.Delete("userId")
ctx.Session.Delete("userName")
+ ctx.SetCookie(base.CookieUserName, "", -1)
+ ctx.SetCookie(base.CookieRememberName, "", -1)
ctx.Redirect("/")
}
ctx.Session.Set("userId", user.Id)
ctx.Session.Set("userName", user.Name)
- ctx.Redirect("/", 302)
+ ctx.Redirect("/")
return
}