diff --git a/sqlx-data.json b/sqlx-data.json index 69264e3c..66954e59 100644 --- a/sqlx-data.json +++ b/sqlx-data.json @@ -39,6 +39,19 @@ }, "query": "SELECT email, secret FROM mcaptcha_users WHERE name = ($1)" }, + "1e9fe69b23e4bfa7bb369455753100307e334e8dbaf02ff37cda08992fe95910": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + } + }, + "query": "UPDATE mcaptcha_users set name = $1\n WHERE name = $2" + }, "238569a64d7dbd252e3b27204f207e8a8548109717b89495ddf8f9a870c7c75d": { "describe": { "columns": [], @@ -115,26 +128,6 @@ }, "query": "SELECT duration FROM mcaptcha_config \n WHERE key = $1" }, - "41451ffdad4ebda63cd38b90ec5259b478157eaa395960c036548bc7629c8d34": { - "describe": { - "columns": [ - { - "name": "password", - "ordinal": 0, - "type_info": "Text" - } - ], - "nullable": [ - false - ], - "parameters": { - "Left": [ - "Text" - ] - } - }, - "query": "SELECT password FROM mcaptcha_users WHERE name = ($1)" - }, "4303f5c6ef98e0de9d8d3c2d781d3ffaa3dee5f7d27db831d327b26f03ba9d68": { "describe": { "columns": [ @@ -171,6 +164,26 @@ }, "query": "insert into mcaptcha_users \n (name , password, email, secret) values ($1, $2, $3, $4)" }, + "47fa50aecfb1499b0a18fa9299643017a1a8d69d4e9980032e0d8f745465d14f": { + "describe": { + "columns": [ + { + "name": "exists", + "ordinal": 0, + "type_info": "Bool" + } + ], + "nullable": [ + null + ], + "parameters": { + "Left": [ + "Text" + ] + } + }, + "query": "SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE email = $1)" + }, "4a5dfbc5aeb2bab290a09640cc25223d484fbc7549e5bc54f33bab8616725031": { "describe": { "columns": [ @@ -341,6 +354,20 @@ }, "query": "DELETE FROM mcaptcha_levels \n WHERE config_id = (\n SELECT config_id FROM mcaptcha_config where key = ($1) \n AND user_id = (\n SELECT ID from mcaptcha_users WHERE name = $2\n )\n )" }, + "81c779ed4bb59f8b94dea730cbda31f7733ef16d509a3ed607388b5ddef74638": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Varchar", + "Text", + "Varchar" + ] + } + }, + "query": "INSERT INTO mcaptcha_users \n (name , password, secret) VALUES ($1, $2, $3)" + }, "84484cb6892db29121816bc5bff5702b9e857e20aa14e79d080d78ae7593153b": { "describe": { "columns": [ @@ -476,6 +503,26 @@ }, "query": "SELECT name FROM mcaptcha_config \n WHERE key = $1 \n AND user_id = (\n SELECT user_id FROM mcaptcha_users WHERE NAME = $2)" }, + "ad23588ee4bcbb13e208460ce21e2fa9f1373893934b530b339fea10360b34a8": { + "describe": { + "columns": [ + { + "name": "exists", + "ordinal": 0, + "type_info": "Bool" + } + ], + "nullable": [ + null + ], + "parameters": { + "Left": [ + "Text" + ] + } + }, + "query": "SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE name = $1)" + }, "ada91fac02c7bba9b13deebccda6f6fc45773b5a6e786c37c27b4a71a5cd29f2": { "describe": { "columns": [ @@ -509,6 +556,45 @@ }, "query": "SELECT config_id, duration, name from mcaptcha_config WHERE\n key = $1 AND\n user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2) " }, + "b97d810814fbeb2df19f47bcfa381bc6fb7ac6832d040b377cf4fca2ca896cfb": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + } + }, + "query": "UPDATE mcaptcha_users set email = $1\n WHERE name = $2" + }, + "bdf2e2781bfa2e9c81c18ef8df7230809d3b20274685a35b1c544804f2a58241": { + "describe": { + "columns": [ + { + "name": "name", + "ordinal": 0, + "type_info": "Varchar" + }, + { + "name": "password", + "ordinal": 1, + "type_info": "Text" + } + ], + "nullable": [ + false, + false + ], + "parameters": { + "Left": [ + "Text" + ] + } + }, + "query": "SELECT name, password FROM mcaptcha_users WHERE email = ($1)" + }, "c2e167e56242de7e0a835e25004b15ca8340545fa0ca7ac8f3293157d2d03d98": { "describe": { "columns": [ @@ -665,6 +751,19 @@ }, "query": "SELECT secret FROM mcaptcha_users WHERE name = ($1)" }, + "e9ed973dfd2bfef36d5a4724aef4993328e1d8d3ca397fe6d5408a780efc775a": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Text", + "Text" + ] + } + }, + "query": "UPDATE mcaptcha_users set password = $1\n WHERE name = $2" + }, "f330cb94c53d33495df94aacec7e4e91d8a920742b89a63d1c59a8ea8937c5c8": { "describe": { "columns": [], @@ -679,5 +778,31 @@ } }, "query": "INSERT INTO mcaptcha_levels (\n difficulty_factor, \n visitor_threshold,\n config_id) VALUES (\n $1, $2, (\n SELECT config_id FROM mcaptcha_config WHERE\n key = ($3) AND user_id = (\n SELECT ID FROM mcaptcha_users WHERE name = $4\n )));" + }, + "f3dee60b85be2ae861b6695286e387529dabf3d11202fb2eeb7e75a7bb3bd0a4": { + "describe": { + "columns": [ + { + "name": "name", + "ordinal": 0, + "type_info": "Varchar" + }, + { + "name": "password", + "ordinal": 1, + "type_info": "Text" + } + ], + "nullable": [ + false, + false + ], + "parameters": { + "Left": [ + "Text" + ] + } + }, + "query": "SELECT name, password FROM mcaptcha_users WHERE name = ($1)" } } \ No newline at end of file diff --git a/src/api/v1/account/delete.rs b/src/api/v1/account/delete.rs index 7213b03f..629383a3 100644 --- a/src/api/v1/account/delete.rs +++ b/src/api/v1/account/delete.rs @@ -35,7 +35,10 @@ pub async fn delete_account( let username = id.identity().unwrap(); - let hash = data.dblib.get_password(&db_core::Login::Username(&username)).await?; + let hash = data + .dblib + .get_password(&db_core::Login::Username(&username)) + .await?; if Config::verify(&hash.hash, &payload.password)? { runners::delete_user(&username, &data).await?; diff --git a/src/api/v1/account/secret.rs b/src/api/v1/account/secret.rs index 781bbeaa..08584a51 100644 --- a/src/api/v1/account/secret.rs +++ b/src/api/v1/account/secret.rs @@ -18,32 +18,20 @@ use std::borrow::Cow; use actix_identity::Identity; use actix_web::{HttpResponse, Responder}; +use db_core::prelude::*; use serde::{Deserialize, Serialize}; use crate::api::v1::mcaptcha::get_random; use crate::errors::*; use crate::AppData; -#[derive(Clone, Debug, Deserialize, Serialize)] -pub struct Secret { - pub secret: String, -} - #[my_codegen::get( path = "crate::V1_API_ROUTES.account.get_secret", wrap = "crate::api::v1::get_middleware()" )] async fn get_secret(id: Identity, data: AppData) -> ServiceResult { let username = id.identity().unwrap(); - - let secret = sqlx::query_as!( - Secret, - r#"SELECT secret FROM mcaptcha_users WHERE name = ($1)"#, - &username, - ) - .fetch_one(&data.db) - .await?; - + let secret = data.dblib.get_secret(&username).await?; Ok(HttpResponse::Ok().json(secret)) }