})
}
-// Cache is the interface that operates the cache data.
-type Cache interface {
- // Put puts value into cache with key and expire time.
- Put(key string, val interface{}, timeout int64) error
- // Get gets cached value by given key.
- Get(key string) interface{}
- // Delete deletes cached value by given key.
- Delete(key string) error
- // Incr increases cached int-type value by given key as a counter.
- Incr(key string) error
- // Decr decreases cached int-type value by given key as a counter.
- Decr(key string) error
- // IsExist returns true if cached value exists.
- IsExist(key string) bool
- // Flush deletes all cached data.
- Flush() error
-}
-
// NewContext start cache service
func NewContext() error {
var err error
}
// GetCache returns the currently configured cache
-func GetCache() Cache {
+func GetCache() mc.Cache {
return conn
}
import (
"sync"
+ "code.gitea.io/gitea/modules/cache"
"code.gitea.io/gitea/modules/setting"
"gitea.com/go-chi/captcha"
cpt = captcha.NewCaptcha(captcha.Options{
SubURL: setting.AppSubURL,
})
+ cpt.Store = cache.GetCache()
})
return cpt
}
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth/sso"
"code.gitea.io/gitea/modules/base"
+ mc "code.gitea.io/gitea/modules/cache"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/middlewares"
"code.gitea.io/gitea/modules/setting"
// Contexter initializes a classic context for a request.
func Contexter() func(next http.Handler) http.Handler {
- rnd := templates.HTMLRenderer()
-
- var c cache.Cache
- var err error
- if setting.CacheService.Enabled {
- c, err = cache.NewCacher(cache.Options{
- Adapter: setting.CacheService.Adapter,
- AdapterConfig: setting.CacheService.Conn,
- Interval: setting.CacheService.Interval,
- })
- if err != nil {
- panic(err)
- }
- }
-
+ var rnd = templates.HTMLRenderer()
var csrfOpts = getCsrfOpts()
- //var flashEncryptionKey, _ = NewSecret()
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) {
var link = setting.AppSubURL + strings.TrimSuffix(req.URL.EscapedPath(), "/")
var ctx = Context{
Resp: NewResponse(resp),
- Cache: c,
+ Cache: mc.GetCache(),
Locale: locale,
Link: link,
Render: rnd,
}
ctx.Resp.Before(func(resp ResponseWriter) {
if flash := f.Encode(); len(flash) > 0 {
- if err == nil {
- middlewares.SetCookie(resp, "macaron_flash", flash, 0,
- setting.SessionConfig.CookiePath,
- middlewares.Domain(setting.SessionConfig.Domain),
- middlewares.HTTPOnly(true),
- middlewares.Secure(setting.SessionConfig.Secure),
- //middlewares.SameSite(opt.SameSite), FIXME: we need a samesite config
- )
- return
- }
+ middlewares.SetCookie(resp, "macaron_flash", flash, 0,
+ setting.SessionConfig.CookiePath,
+ middlewares.Domain(setting.SessionConfig.Domain),
+ middlewares.HTTPOnly(true),
+ middlewares.Secure(setting.SessionConfig.Secure),
+ //middlewares.SameSite(opt.SameSite), FIXME: we need a samesite config
+ )
+ return
}
ctx.SetCookie("macaron_flash", "", -1,
if CacheService.Enabled {
log.Info("Cache Service Enabled")
+ } else {
+ log.Warn("Cache Service Disabled so that captcha disabled too")
+ // captcha depends on cache service
+ Service.EnableCaptcha = false
}
sec = Cfg.Section("cache.last_commit")
mailer.InitMailRender(templates.Mailer())
- r.Use(captcha.Captchaer(context.GetImageCaptcha()))
+ if setting.Service.EnableCaptcha {
+ r.Use(captcha.Captchaer(context.GetImageCaptcha()))
+ }
// Removed: toolbox.Toolboxer middleware will provide debug informations which seems unnecessary
r.Use(context.Contexter())
// Removed: SetAutoHead allow a get request redirect to head if get method is not exist
ctx.Data["Title"] = ctx.Tr("link_account")
ctx.Data["LinkAccountMode"] = true
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha && setting.Service.RequireExternalRegistrationCaptcha
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaURL"] = setting.Service.RecaptchaURL
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["LinkAccountModeSignIn"] = true
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha && setting.Service.RequireExternalRegistrationCaptcha
ctx.Data["RecaptchaURL"] = setting.Service.RecaptchaURL
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["DisableRegistration"] = setting.Service.DisableRegistration
ctx.Data["LinkAccountModeRegister"] = true
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha && setting.Service.RequireExternalRegistrationCaptcha
ctx.Data["RecaptchaURL"] = setting.Service.RecaptchaURL
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["DisableRegistration"] = setting.Service.DisableRegistration
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha
ctx.Data["RecaptchaURL"] = setting.Service.RecaptchaURL
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["HcaptchaSitekey"] = setting.Service.HcaptchaSitekey
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha
ctx.Data["RecaptchaURL"] = setting.Service.RecaptchaURL
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["HcaptchaSitekey"] = setting.Service.HcaptchaSitekey
ctx.Data["PageIsOpenIDRegister"] = true
ctx.Data["EnableOpenIDSignUp"] = setting.Service.EnableOpenIDSignUp
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["HcaptchaSitekey"] = setting.Service.HcaptchaSitekey
ctx.Data["EnableOpenIDSignUp"] = setting.Service.EnableOpenIDSignUp
ctx.Data["EnableCaptcha"] = setting.Service.EnableCaptcha
ctx.Data["RecaptchaURL"] = setting.Service.RecaptchaURL
+ ctx.Data["Captcha"] = context.GetImageCaptcha()
ctx.Data["CaptchaType"] = setting.Service.CaptchaType
ctx.Data["RecaptchaSitekey"] = setting.Service.RecaptchaSitekey
ctx.Data["HcaptchaSitekey"] = setting.Service.HcaptchaSitekey
{{if and .EnableCaptcha (eq .CaptchaType "image")}}
<div class="inline field">
<label></label>
- {{.Captcha.CreateHtml}}
+ {{.Captcha.CreateHTML}}
</div>
<div class="required inline field {{if .Err_Captcha}}error{{end}}">
<label for="captcha">{{.i18n.Tr "captcha"}}</label>
{{if and .EnableCaptcha (eq .CaptchaType "image")}}
<div class="inline field">
<label></label>
- {{.Captcha.CreateHtml}}
+ {{.Captcha.CreateHTML}}
</div>
<div class="required inline field {{if .Err_Captcha}}error{{end}}">
<label for="captcha">{{.i18n.Tr "captcha"}}</label>