Accept form to add player

O01eg
Oct 17, 2022, 12:01 PM
NY766BOQIWOQUA44QDD7YKQB5GK735ZUJ3YNXXVUUE2VQZP2YWPQC

Dependencies

  • [2] TEB4R7OU Add form to join game
  • [3] AEWYJHUD Start to show player list
  • [4] LTQCLSBU Split database usage in pages
  • [5] 6BDGQ4VM Show player names for registered players
  • [6] DNFB7TNI Add new pages and links to slow games and reset game password
  • [7] EVP2FSBH Split index page
  • [8] OJO4B4QO Add login form and empty handler
  • [9] WW3KRXX6 Add page for reset game password
  • [10] 6NYILMKI Add page for slow game
  • [11] WVHXYKCV Add postgresql pools
  • [12] HZDCKIXQ Use constants for templates
  • [*] BVCWJKEX Get auth info for slow game page
  • [*] 4MZ4VIR7 Initial commit
  • [*] FUCFD4UV Add log in and log out support

Change contents

  • edit in src/pages/slow_game.rs at line 1
    [3.625]
    [14.0]
    use actix_web::http::header;
  • replacement in src/pages/slow_game.rs at line 16
    [3.767][3.767:802](),[3.802][2.251:269]()
    #[derive(serde_derive::Serialize)]
    struct JoinData {
    [3.767]
    [2.269]
    #[derive(serde_derive::Deserialize, serde_derive::Serialize)]
    pub struct JoinData {
  • replacement in src/pages/slow_game.rs at line 155
    [2.728][2.728:781]()
    (gameuid.clone(), user.to_string()),
    [2.728]
    [2.781]
    (gameuid.clone(), user.to_lowercase()),
  • edit in src/pages/slow_game.rs at line 193
    [3.2901]
    [3.2901]
    }
    pub async fn post_join_game(
    request: HttpRequest,
    form: web::Form<JoinData>,
    data: web::Data<WebData<'_>>,
    ) -> HttpResponse {
    let cached_data = {
    let mut cache = data.cache_join_game.lock().await;
    cache.remove(&form.csrf)
    };
    let cached_data = if let Some(cd) = cached_data {
    cd
    } else {
    log::warn!("Unknown data for CSRF: {}", form.csrf);
    return HttpResponse::BadRequest().body("Incorrect");
    };
    let jar = request_to_jar(request);
    if jar
    .private(&data.cookies_key)
    .get("auth")
    .map_or(true, |x| x.value().to_lowercase() != cached_data.1)
    {
    log::warn!("Incorrect user");
    return HttpResponse::BadRequest().body("Incorrect");
    }
    HttpResponse::Found()
    .append_header((
    header::LOCATION,
    format!("slow-game-{}.html", cached_data.0),
    ))
    .finish()
  • replacement in src/main.rs at line 22
    [3.1187][3.2970:3003]()
    use pages::slow_game::slow_game;
    [3.1187]
    [3.2243]
    use pages::slow_game::{post_join_game, slow_game};
  • edit in src/main.rs at line 267
    [16.7235]
    [3.2328]
    .route("/join-game.do", web::post().to(post_join_game))