mirror of
https://github.com/mCaptcha/mCaptcha.git
synced 2025-11-28 16:13:17 +00:00
delete captcha
This commit is contained in:
parent
f7c9217667
commit
00768cce34
10
Cargo.lock
generated
10
Cargo.lock
generated
@ -965,9 +965,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastrand"
|
name = "fastrand"
|
||||||
version = "1.4.1"
|
version = "1.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb"
|
checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"instant",
|
"instant",
|
||||||
]
|
]
|
||||||
@ -1457,7 +1457,7 @@ checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "libmcaptcha"
|
name = "libmcaptcha"
|
||||||
version = "0.1.4"
|
version = "0.1.4"
|
||||||
source = "git+https://github.com/mCaptcha/libmcaptcha?branch=master#22f1a4ccc0a29b5f0fe8437cea1bdc08dc9f4c9b"
|
source = "git+https://github.com/mCaptcha/libmcaptcha?branch=master#6eac51de1035c20954752642b4fbdbf6ae3bec6d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix",
|
"actix",
|
||||||
"derive_builder",
|
"derive_builder",
|
||||||
@ -3057,9 +3057,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio"
|
name = "tokio"
|
||||||
version = "1.8.1"
|
version = "1.8.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "98c8b05dc14c75ea83d63dd391100353789f5f24b8b3866542a5e85c8be8e985"
|
checksum = "c2602b8af3767c285202012822834005f596c811042315fa7e9f5b12b2a43207"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"bytes",
|
"bytes",
|
||||||
|
|||||||
@ -18,7 +18,7 @@ use std::borrow::Cow;
|
|||||||
|
|
||||||
use actix_identity::Identity;
|
use actix_identity::Identity;
|
||||||
use actix_web::{web, HttpResponse, Responder};
|
use actix_web::{web, HttpResponse, Responder};
|
||||||
use libmcaptcha::master::messages::RenameBuilder;
|
use libmcaptcha::master::messages::{RemoveCaptcha, RenameBuilder};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use super::get_random;
|
use super::get_random;
|
||||||
@ -205,6 +205,7 @@ async fn delete_mcaptcha(
|
|||||||
match rec {
|
match rec {
|
||||||
Ok(rec) => {
|
Ok(rec) => {
|
||||||
if Config::verify(&rec.password, &payload.password)? {
|
if Config::verify(&rec.password, &payload.password)? {
|
||||||
|
let payload = payload.into_inner();
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
"DELETE FROM mcaptcha_levels
|
"DELETE FROM mcaptcha_levels
|
||||||
WHERE config_id = (
|
WHERE config_id = (
|
||||||
@ -224,6 +225,12 @@ async fn delete_mcaptcha(
|
|||||||
)
|
)
|
||||||
.execute(&data.db)
|
.execute(&data.db)
|
||||||
.await?;
|
.await?;
|
||||||
|
if let Err(err) = data.captcha.remove(RemoveCaptcha(payload.key)).await {
|
||||||
|
log::error!(
|
||||||
|
"Error while trying to remove captcha from cache {}",
|
||||||
|
err
|
||||||
|
);
|
||||||
|
}
|
||||||
Ok(HttpResponse::Ok())
|
Ok(HttpResponse::Ok())
|
||||||
} else {
|
} else {
|
||||||
Err(ServiceError::WrongPassword)
|
Err(ServiceError::WrongPassword)
|
||||||
|
|||||||
11
src/data.rs
11
src/data.rs
@ -32,7 +32,7 @@ use libmcaptcha::{
|
|||||||
cache::messages::VerifyCaptchaResult,
|
cache::messages::VerifyCaptchaResult,
|
||||||
cache::Save,
|
cache::Save,
|
||||||
errors::CaptchaResult,
|
errors::CaptchaResult,
|
||||||
master::messages::{AddSite, Rename},
|
master::messages::{AddSite, RemoveCaptcha, Rename},
|
||||||
master::{embedded::master::Master as EmbeddedMaster, Master as MasterTrait},
|
master::{embedded::master::Master as EmbeddedMaster, Master as MasterTrait},
|
||||||
pow::ConfigBuilder as PoWConfigBuilder,
|
pow::ConfigBuilder as PoWConfigBuilder,
|
||||||
pow::PoWConfig,
|
pow::PoWConfig,
|
||||||
@ -100,6 +100,15 @@ impl SystemGroup {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// utility function to remove captcha
|
||||||
|
pub async fn remove(&self, msg: RemoveCaptcha) -> CaptchaResult<()> {
|
||||||
|
match self {
|
||||||
|
Self::Embedded(val) => val.master.send(msg).await?,
|
||||||
|
Self::Redis(val) => val.master.send(msg).await?,
|
||||||
|
};
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn new_system<A: Save, B: MasterTrait>(m: Addr<B>, c: Addr<A>) -> System<A, B> {
|
fn new_system<A: Save, B: MasterTrait>(m: Addr<B>, c: Addr<A>) -> System<A, B> {
|
||||||
let pow = PoWConfigBuilder::default()
|
let pow = PoWConfigBuilder::default()
|
||||||
.salt(SETTINGS.pow.salt.clone())
|
.salt(SETTINGS.pow.salt.clone())
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user