redis storage for captcha mech

This commit is contained in:
realaravinth
2021-06-11 19:31:03 +05:30
parent 17ae532162
commit f5624947b9
29 changed files with 604 additions and 210 deletions

View File

@@ -16,13 +16,13 @@
*/
use actix_identity::Identity;
use actix_web::{web, HttpResponse, Responder};
use actix_web::{HttpResponse, Responder};
use sailfish::TemplateOnce;
pub mod sitekey;
use crate::errors::PageResult;
use crate::Data;
use crate::AppData;
use sitekey::list::{get_list_sitekeys, SiteKeys};
#[derive(TemplateOnce, Clone)]
@@ -40,7 +40,7 @@ impl IndexPage {
const PAGE: &str = "Dashboard";
#[my_codegen::get(path = "crate::PAGES.panel.home", wrap = "crate::CheckLogin")]
async fn panel(data: web::Data<Data>, id: Identity) -> PageResult<impl Responder> {
async fn panel(data: AppData, id: Identity) -> PageResult<impl Responder> {
let sitekeys = get_list_sitekeys(&data, &id).await?;
let body = IndexPage::new(sitekeys).render_once().unwrap();
Ok(HttpResponse::Ok()

View File

@@ -16,12 +16,12 @@
*/
use actix_identity::Identity;
use actix_web::{web, HttpResponse, Responder};
use actix_web::{HttpResponse, Responder};
use sailfish::TemplateOnce;
use crate::api::v1::mcaptcha::mcaptcha::MCaptchaDetails;
use crate::errors::*;
use crate::Data;
use crate::AppData;
#[derive(TemplateOnce, Clone)]
#[template(path = "panel/sitekey/list/index.html")]
@@ -39,10 +39,7 @@ impl IndexPage {
/// render a list of all sitekeys that a user has
#[my_codegen::get(path = "crate::PAGES.panel.sitekey.list", wrap = "crate::CheckLogin")]
pub async fn list_sitekeys(
data: web::Data<Data>,
id: Identity,
) -> PageResult<impl Responder> {
pub async fn list_sitekeys(data: AppData, id: Identity) -> PageResult<impl Responder> {
let res = get_list_sitekeys(&data, &id).await?;
let body = IndexPage::new(res).render_once().unwrap();
Ok(HttpResponse::Ok()
@@ -51,7 +48,7 @@ pub async fn list_sitekeys(
}
/// utility function to get a list of all sitekeys that a user owns
pub async fn get_list_sitekeys(data: &Data, id: &Identity) -> PageResult<SiteKeys> {
pub async fn get_list_sitekeys(data: &AppData, id: &Identity) -> PageResult<SiteKeys> {
let username = id.identity().unwrap();
let res = sqlx::query_as!(
MCaptchaDetails,

View File

@@ -22,7 +22,7 @@ use sailfish::TemplateOnce;
use crate::errors::*;
use crate::stats::fetch::Stats;
use crate::Data;
use crate::AppData;
const PAGE: &str = "SiteKeys";
@@ -62,7 +62,7 @@ impl IndexPage {
#[my_codegen::get(path = "crate::PAGES.panel.sitekey.view", wrap = "crate::CheckLogin")]
pub async fn view_sitekey(
path: web::Path<String>,
data: web::Data<Data>,
data: AppData,
id: Identity,
) -> PageResult<impl Responder> {
let username = id.identity().unwrap();
@@ -91,7 +91,7 @@ pub async fn view_sitekey(
.fetch_all(&data.db)
.err_into();
let (stats, levels) = try_join!(Stats::new(&key, &data.db), levels_fut)?;
let (_stats, levels) = try_join!(Stats::new(&key, &data.db), levels_fut)?;
let body = IndexPage::new(config, levels, key).render_once().unwrap();
Ok(HttpResponse::Ok()