gitea
Зеркало из https://github.com/go-gitea/gitea
1// Copyright 2023 The Gitea Authors. All rights reserved.
2// SPDX-License-Identifier: MIT
3
4package context
5
6import (
7"net/http"
8"strings"
9
10"code.gitea.io/gitea/modules/setting"
11"code.gitea.io/gitea/modules/web/middleware"
12)
13
14const CookieNameFlash = "gitea_flash"
15
16func removeSessionCookieHeader(w http.ResponseWriter) {
17cookies := w.Header()["Set-Cookie"]
18w.Header().Del("Set-Cookie")
19for _, cookie := range cookies {
20if strings.HasPrefix(cookie, setting.SessionConfig.CookieName+"=") {
21continue
22}
23w.Header().Add("Set-Cookie", cookie)
24}
25}
26
27// SetSiteCookie convenience function to set most cookies consistently
28// CSRF and a few others are the exception here
29func (ctx *Context) SetSiteCookie(name, value string, maxAge int) {
30middleware.SetSiteCookie(ctx.Resp, name, value, maxAge)
31}
32
33// DeleteSiteCookie convenience function to delete most cookies consistently
34// CSRF and a few others are the exception here
35func (ctx *Context) DeleteSiteCookie(name string) {
36middleware.SetSiteCookie(ctx.Resp, name, "", -1)
37}
38
39// GetSiteCookie returns given cookie value from request header.
40func (ctx *Context) GetSiteCookie(name string) string {
41return middleware.GetSiteCookie(ctx.Req, name)
42}
43