Add and remove cookies

O01eg
Sep 16, 2022, 2:55 PM
KDYHFAE3GPCISJYGND4OIPAHUJNPRPEERNJIEY7WSEUCR6IE7TJAC

Dependencies

  • [2] ET46DDPX Add cookies key to page data
  • [3] LWCZDLBI Add buttons to accept and remove cookies
  • [4] S6MX4MFO Add handlers for accepting and removing cookies
  • [5] HDHALX3U Add Cookies Policy page
  • [6] 2MPJPGRY Populate cookies jar
  • [*] EVP2FSBH Split index page
  • [*] WVHXYKCV Add postgresql pools
  • [*] 4MZ4VIR7 Initial commit
  • [*] BKHQHXZQ Manage secure key for cookies
  • [*] ZRU62WXD Send email with change game password link
  • [*] BCXEUKX6 Add config, static files and web server
  • [*] Z3SYSC25 Add SMTP configuration

Change contents

  • edit in src/pages/mod.rs at line 44
    [2.45]
    [9.559]
    pub set_cookie_domain: bool,
  • replacement in src/pages/cookies_policy.rs at line 13
    [5.935][5.58:156]()
    pub async fn cookies_policy(request: HttpRequest, data: web::Data<WebData<'_>>) -> HttpResponse {
    [5.935]
    [5.156]
    fn request_to_jar(request: HttpRequest) -> cookie::CookieJar {
  • edit in src/pages/cookies_policy.rs at line 25
    [5.470]
    [5.470]
    jar
    }
  • edit in src/pages/cookies_policy.rs at line 28
    [5.471]
    [3.395]
    pub async fn cookies_policy(request: HttpRequest, data: web::Data<WebData<'_>>) -> HttpResponse {
    let jar = request_to_jar(request);
  • replacement in src/pages/cookies_policy.rs at line 48
    [4.31][4.31:110]()
    pub async fn post_accept_cookies() -> HttpResponse {
    HttpResponse::Found()
    [4.31]
    [4.110]
    pub async fn post_accept_cookies(
    request: HttpRequest,
    data: web::Data<WebData<'_>>,
    ) -> HttpResponse {
    let mut jar = request_to_jar(request);
    let mut builder = cookie::Cookie::build("i_accept_cookie", "yes")
    .path("/")
    .secure(true)
    .http_only(true)
    .same_site(cookie::SameSite::Strict)
    .max_age(cookie::time::Duration::weeks(4));
    if data.set_cookie_domain {
    builder = builder.domain(data.base_domain.to_string());
    }
    jar.private_mut(&data.cookies_key).add(builder.finish());
    let mut response = HttpResponse::Found()
  • replacement in src/pages/cookies_policy.rs at line 65
    [4.176][4.176:194]()
    .finish()
    [4.176]
    [4.194]
    .finish();
    if let Some(c) = jar.get("i_accept_cookie") {
    if let Err(e) = response.add_cookie(c) {
    log::error!("Cann't set cookie {}", e);
    }
    }
    response
  • replacement in src/pages/cookies_policy.rs at line 74
    [4.197][4.197:276]()
    pub async fn post_remove_cookies() -> HttpResponse {
    HttpResponse::Found()
    [4.197]
    [4.276]
    pub async fn post_remove_cookies(data: web::Data<WebData<'_>>) -> HttpResponse {
    let mut response = HttpResponse::Found()
  • replacement in src/pages/cookies_policy.rs at line 77
    [4.342][4.342:360]()
    .finish()
    [4.342]
    [4.360]
    .finish();
    let mut builder = cookie::Cookie::build("i_accept_cookie", "").path("/");
    if data.set_cookie_domain {
    builder = builder.domain(data.base_domain.to_string());
    }
    if let Err(e) = response.add_removal_cookie(&builder.finish()) {
    log::error!("Cann't set cookie {}", e);
    }
    let mut builder = cookie::Cookie::build("auth", "").path("/");
    if data.set_cookie_domain {
    builder = builder.domain(data.base_domain.to_string());
    }
    if let Err(e) = response.add_removal_cookie(&builder.finish()) {
    log::error!("Cann't set cookie {}", e);
    }
    response
  • edit in src/main.rs at line 55
    [11.28]
    [12.1084]
    set_cookie_domain,
  • edit in src/main.rs at line 211
    [2.128]
    [9.1899]
    set_cookie_domain,
  • edit in src/config.rs at line 37
    [11.1465]
    [14.460]
    #[serde(default)]
    pub set_cookie_domain: bool,