don't serve cached pages when anon cookie has prefs - closes #6722
This commit is contained in:
parent
d9f9480597
commit
254c7eba83
|
@ -16,12 +16,17 @@ final class PageCache(security: lila.security.SecurityApi, cacheApi: lila.memo.C
|
|||
}
|
||||
|
||||
def apply(compute: () => Fu[Result])(implicit ctx: Context): Fu[Result] =
|
||||
if (ctx.isAnon && langs(ctx.lang.language)) {
|
||||
val cacheKey = s"${HTTPRequest actionName ctx.req}(${ctx.lang.language})"
|
||||
cache.getFuture(cacheKey, _ => compute())
|
||||
} else
|
||||
if (ctx.isAnon && langs(ctx.lang.language) && defaultPrefs(ctx.req))
|
||||
cache.getFuture(cacheKey(ctx), _ => compute())
|
||||
else
|
||||
compute()
|
||||
|
||||
private def cacheKey(ctx: Context) =
|
||||
s"${HTTPRequest actionName ctx.req}(${ctx.lang.language})"
|
||||
|
||||
private def defaultPrefs(req: RequestHeader) =
|
||||
lila.pref.RequestPref.fromRequest(req) == lila.pref.Pref.default
|
||||
|
||||
private val langs =
|
||||
Set("en", "ru", "tr", "de", "es", "fr", "pt", "it", "pl", "ar", "fa", "id", "nl", "nb", "sv")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue