mirror of
https://github.com/mCaptcha/mCaptcha.git
synced 2026-02-11 10:05:41 +00:00
delete captcha
This commit is contained in:
@@ -18,7 +18,7 @@ use std::borrow::Cow;
|
||||
|
||||
use actix_identity::Identity;
|
||||
use actix_web::{web, HttpResponse, Responder};
|
||||
use libmcaptcha::master::messages::RenameBuilder;
|
||||
use libmcaptcha::master::messages::{RemoveCaptcha, RenameBuilder};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::get_random;
|
||||
@@ -205,6 +205,7 @@ async fn delete_mcaptcha(
|
||||
match rec {
|
||||
Ok(rec) => {
|
||||
if Config::verify(&rec.password, &payload.password)? {
|
||||
let payload = payload.into_inner();
|
||||
sqlx::query!(
|
||||
"DELETE FROM mcaptcha_levels
|
||||
WHERE config_id = (
|
||||
@@ -224,6 +225,12 @@ async fn delete_mcaptcha(
|
||||
)
|
||||
.execute(&data.db)
|
||||
.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())
|
||||
} else {
|
||||
Err(ServiceError::WrongPassword)
|
||||
|
||||
11
src/data.rs
11
src/data.rs
@@ -32,7 +32,7 @@ use libmcaptcha::{
|
||||
cache::messages::VerifyCaptchaResult,
|
||||
cache::Save,
|
||||
errors::CaptchaResult,
|
||||
master::messages::{AddSite, Rename},
|
||||
master::messages::{AddSite, RemoveCaptcha, Rename},
|
||||
master::{embedded::master::Master as EmbeddedMaster, Master as MasterTrait},
|
||||
pow::ConfigBuilder as PoWConfigBuilder,
|
||||
pow::PoWConfig,
|
||||
@@ -100,6 +100,15 @@ impl SystemGroup {
|
||||
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> {
|
||||
let pow = PoWConfigBuilder::default()
|
||||
.salt(SETTINGS.pow.salt.clone())
|
||||
|
||||
Reference in New Issue
Block a user