From 70c3515d2ef8ab90ec0e21b81d930a8e9ecfbf14 Mon Sep 17 00:00:00 2001 From: Kyattsukuro Date: Fri, 5 Sep 2025 14:49:30 +0200 Subject: [PATCH] addet templates --- Cargo.lock | 278 +++++++++++++++++++-- Cargo.toml | 7 +- db.sqlite | Bin 0 -> 24576 bytes migrations/2025-07-17-160443_init/down.sql | 2 +- migrations/2025-07-17-160443_init/up.sql | 1 + src/api/consent.rs | 12 + src/api/mod.rs | 4 +- src/api/request.rs | 3 +- src/api/templates/404.html.j2 | 0 src/api/templates/_consent_form.html.j2 | 17 ++ src/api/templates/_consent_noinput.html.j2 | 5 + src/api/templates/_message.html.j2 | 22 ++ src/api/templates/base.html.j2 | 15 ++ src/api/templates/consent.html.j2 | 22 ++ src/orm/handler.rs | 5 + src/orm/schema.rs | 1 + src/orm/structures.rs | 1 + 17 files changed, 376 insertions(+), 19 deletions(-) create mode 100644 db.sqlite create mode 100644 src/api/consent.rs create mode 100644 src/api/templates/404.html.j2 create mode 100644 src/api/templates/_consent_form.html.j2 create mode 100644 src/api/templates/_consent_noinput.html.j2 create mode 100644 src/api/templates/_message.html.j2 create mode 100644 src/api/templates/base.html.j2 create mode 100644 src/api/templates/consent.html.j2 diff --git a/Cargo.lock b/Cargo.lock index 2ca2c08..f2fbc75 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -231,6 +231,7 @@ dependencies = [ "log", "reqwest", "rocket", + "rocket_dyn_templates", "serde", "toml", "url", @@ -292,6 +293,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72" +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.9.1" @@ -544,6 +551,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "crunchy" version = "0.2.4" @@ -713,7 +735,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b035a542cf7abf01f2e3c4d5a7acbaebfefe120ae4efc7bde3df98186e4b8af7" dependencies = [ - "bitflags", + "bitflags 2.9.1", "proc-macro2", "proc-macro2-diagnostics", "quote", @@ -929,6 +951,18 @@ dependencies = [ "version_check", ] +[[package]] +name = "filetime" +version = "0.2.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.60.2", +] + [[package]] name = "flate2" version = "1.1.2" @@ -981,6 +1015,15 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + [[package]] name = "futures" version = "0.3.31" @@ -1190,6 +1233,20 @@ dependencies = [ "tracing", ] +[[package]] +name = "handlebars" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "hashbrown" version = "0.15.4" @@ -1571,6 +1628,26 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + [[package]] name = "inout" version = "0.1.4" @@ -1615,7 +1692,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" dependencies = [ - "bitflags", + "bitflags 2.9.1", "cfg-if", "libc", ] @@ -1669,6 +1746,26 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kqueue" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1690,6 +1787,17 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libredox" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +dependencies = [ + "bitflags 2.9.1", + "libc", + "redox_syscall", +] + [[package]] name = "libsqlite3-sys" version = "0.35.0" @@ -1779,6 +1887,18 @@ dependencies = [ "adler2", ] +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + [[package]] name = "mio" version = "1.0.4" @@ -1832,12 +1952,40 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", ] +[[package]] +name = "normpath" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.9.1", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio 0.8.11", + "walkdir", + "windows-sys 0.48.0", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -1955,7 +2103,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags", + "bitflags 2.9.1", "cfg-if", "foreign-types", "libc", @@ -2135,6 +2283,50 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pest" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +dependencies = [ + "memchr", + "thiserror 2.0.12", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +dependencies = [ + "pest", + "sha2", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -2316,11 +2508,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] @@ -2505,6 +2697,19 @@ dependencies = [ "version_check", ] +[[package]] +name = "rocket_dyn_templates" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04bfc006e547e4f72b760ab861f5943b688aed8a82c4977b5500c98f5d17dbfa" +dependencies = [ + "handlebars", + "normpath", + "notify", + "rocket", + "walkdir", +] + [[package]] name = "rocket_http" version = "0.5.1" @@ -2561,7 +2766,7 @@ checksum = "c4816b748109d26daa30e72d231a3a6e42f9e2fffe6c08cbfed63113db0ce884" dependencies = [ "aes", "aes-gcm", - "bitflags", + "bitflags 2.9.1", "block-padding", "byteorder", "bytes", @@ -2636,7 +2841,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bb94393cafad0530145b8f626d8687f1ee1dedb93d7ba7740d6ae81868b13b5" dependencies = [ - "bitflags", + "bitflags 2.9.1", "bytes", "chrono", "flurry", @@ -2680,7 +2885,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", @@ -2741,6 +2946,15 @@ dependencies = [ "cipher", ] +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "schannel" version = "0.1.27" @@ -2793,7 +3007,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags", + "bitflags 2.9.1", "core-foundation", "core-foundation-sys", "libc", @@ -3071,7 +3285,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags", + "bitflags 2.9.1", "core-foundation", "system-configuration-sys", ] @@ -3208,7 +3422,7 @@ dependencies = [ "bytes", "io-uring", "libc", - "mio", + "mio 1.0.4", "pin-project-lite", "signal-hook-registry", "slab", @@ -3334,7 +3548,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags", + "bitflags 2.9.1", "bytes", "futures-util", "http 1.3.1", @@ -3440,6 +3654,12 @@ dependencies = [ "serde", ] +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + [[package]] name = "uncased" version = "0.9.10" @@ -3519,6 +3739,16 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -3640,6 +3870,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +dependencies = [ + "windows-sys 0.60.2", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -3789,6 +4028,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -4016,7 +4264,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2090296..0c22cc2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ name = "auto-decrypt" version = "0.1.0" edition = "2024" +template_dir = "src/api/templates" [dependencies] async-trait = "0.1.88" @@ -15,4 +16,8 @@ diesel = { version = "2.2.0", features = ["sqlite", "returning_clauses_for_sqlit rocket = "0.5.1" url = "2" custom_error = "1.9.2" -enum_dispatch = "0.3.13" \ No newline at end of file +enum_dispatch = "0.3.13" + +[dependencies.rocket_dyn_templates] +version = "0.1.0" +features = ["minijinja"] \ No newline at end of file diff --git a/db.sqlite b/db.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..f48a18b17ef0c73c09f943b341e344cd759bea12 GIT binary patch literal 24576 zcmeI&!E(|-7zgmAw4i83Ph9ulp-fu~rP#3^Y}%%kF@zd|Q%*Z6*+OO@X_HXfqwV-4 zzKqYH&!A_IegPT{m2o=bMdrVg47+^0o8g8Ra4TltL??y4{71SSLxB`+^2`%7GF^n1p*L&00bZa0SG_< z0ucDO0#~_oCcnHaUpGVRxF?Q9r(^j6_eIugziX(9sWMa9(Ns1OWJ_5_#j#mc zH`N2xV24JvrWh^uMr|>rY1XScjjyS?xiakOi?e|ULLNGO!FH+#G>kR%M)g2f_n2Nc zncmd2QP)8D=T2L2*P^bbdPK2Ayc>q6bk4z`7sf}QGL`GmN+z0OG_&>IrOAcOk1vPs zW($Y&=?J7X^a##+wDRFWbgFJ!Of(k~9uvW(=ww%DWZ^o!kjbyD$sb=1=REbjbH^6H zlyAL}PRx5Nd}ryu@!cU4)*$Tiz6iUX{l`p*i&KXZ!D*d1kj%$mH@tsJy@`i0b{XBVTdMsMo--|wO7HOAr zUnJU4AOHafKmY;|fB*y_009U<00I#B?*yL8sX}?ZxLzr4mNrYziyIrm)@t#^YO%sf z>s#gWR;84s>ymTdCE8FR009U<00Izz00bZa0SG_<0uY!9fhVcL{p42y(eMBCr+*X( zKmY;|fB*y_009U<00Izz00d@O0PFu5PA)DD0uX=z1Rwwb2tWV=5P$##ATSod`X9Ff Z1Rwwb2tWV=5P$##AOHafKw$O-egadvWTOB8 literal 0 HcmV?d00001 diff --git a/migrations/2025-07-17-160443_init/down.sql b/migrations/2025-07-17-160443_init/down.sql index 40e8ec7..98e7d63 100644 --- a/migrations/2025-07-17-160443_init/down.sql +++ b/migrations/2025-07-17-160443_init/down.sql @@ -1,3 +1,3 @@ -- This file should undo anything in `up.sql` DROP TABLE IF EXISTS providers_records; -DROP TABLE IF EXISTS providers_records; \ No newline at end of file +DROP TABLE IF EXISTS beggars_records; \ No newline at end of file diff --git a/migrations/2025-07-17-160443_init/up.sql b/migrations/2025-07-17-160443_init/up.sql index 6a9bf8c..f306c35 100644 --- a/migrations/2025-07-17-160443_init/up.sql +++ b/migrations/2025-07-17-160443_init/up.sql @@ -5,6 +5,7 @@ CREATE TABLE providers_records ( request_time BIGINT UNSIGNED NOT NULL, auth_methode TEXT NOT NULL, expires_at BIGINT UNSIGNED, + has_notifyed BOOLEAN DEFAULT FALSE NOT NULL, state TEXT NOT NULL, awnsered_at BIGINT UNSIGNED, awnsered_by TEXT diff --git a/src/api/consent.rs b/src/api/consent.rs new file mode 100644 index 0000000..96e1fbb --- /dev/null +++ b/src/api/consent.rs @@ -0,0 +1,12 @@ +use rocket_dyn_templates::{Template, context}; +use crate::orm::DbConn; +use rocket::State; + + +#[get("/", rank = 1)] +pub(crate) fn consent(consent_id: i32, db_conn: &State) -> Template { + + Template::render("index", context! { + service: db_conn.get_record(consent_id) + }) +} \ No newline at end of file diff --git a/src/api/mod.rs b/src/api/mod.rs index 3a07dff..0fe965a 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -1,5 +1,6 @@ mod guards; mod request; +mod consent; use crate::app_config::CONFIG; use crate::orm::DbConn; @@ -63,8 +64,9 @@ pub(crate) async fn start_api() -> () { let _ = rocket::build() .manage(DbConn::establish_connection(&CONFIG.wait().db_file)) .mount("/", routes![index]) - .register("/", catchers![default]) .mount("/request", routes![request::request_handler]) + .mount("/consent", routes![request::consent]) + .register("/", catchers![default]) .configure(rocket_config) .launch() .await; diff --git a/src/api/request.rs b/src/api/request.rs index c13644d..821f1d3 100644 --- a/src/api/request.rs +++ b/src/api/request.rs @@ -60,8 +60,9 @@ pub(super) async fn request_handler(guard: Result, HttpRe db_conn.add_provider_record(&ProviderRecord { service_name: guard.name.to_string(), - expires_at: expires_at, // Convert to sql timestamp + add used auth methode to record in db + expires_at: expires_at, auth_methode: auth_methode, + has_notifyed: false, state: record_state, awnsered_by: None, }); diff --git a/src/api/templates/404.html.j2 b/src/api/templates/404.html.j2 new file mode 100644 index 0000000..e69de29 diff --git a/src/api/templates/_consent_form.html.j2 b/src/api/templates/_consent_form.html.j2 new file mode 100644 index 0000000..a9911bf --- /dev/null +++ b/src/api/templates/_consent_form.html.j2 @@ -0,0 +1,17 @@ + +{% if service.auth_methode == "Password" %} +

A passkey is required to decrypt the service.

+
+ + Reject + Accept +
+{% elif service.auth_methode == "Confirmation" %} +
+ Reject + Accept +
+{% else %} +

This request dose not require any type of consent. +Or the consent methode is not implemented for WebUi.

+{% endif %} \ No newline at end of file diff --git a/src/api/templates/_consent_noinput.html.j2 b/src/api/templates/_consent_noinput.html.j2 new file mode 100644 index 0000000..c862297 --- /dev/null +++ b/src/api/templates/_consent_noinput.html.j2 @@ -0,0 +1,5 @@ + +
+

The Request has allready been processed and {{ service.state }}

+

At: {{service.awnsered_at}}; By: {{service.awnsered_by}}

+
\ No newline at end of file diff --git a/src/api/templates/_message.html.j2 b/src/api/templates/_message.html.j2 new file mode 100644 index 0000000..f44b32a --- /dev/null +++ b/src/api/templates/_message.html.j2 @@ -0,0 +1,22 @@ +{% set colors = { + "warn": "bg-yellow-50 border-yellow-300 text-yellow-800", + "danger": "bg-red-50 border-red-300 text-red-800", + "success":"bg-green-50 border-green-300 text-green-800" +} %} + +{% set icon = { + "warn": "⚠️", + "danger": "❌", + "success":"✅" +} %} + +
+ {{ icon.get(type, icon['warn']) }} + {{ message }} +
+ +{# Usage: +{% include "_status_banner.j2" with context %} +{# Pass your own vars if needed #} +{% include "_status_banner.j2" with type="danger" message="An error occurred!" %} +#} diff --git a/src/api/templates/base.html.j2 b/src/api/templates/base.html.j2 new file mode 100644 index 0000000..8e9f857 --- /dev/null +++ b/src/api/templates/base.html.j2 @@ -0,0 +1,15 @@ + + + + + + {% block title %}{% endblock %} + {% block styles %} + + {% endblock %} + + + {% block content %} + {% endblock %} + + diff --git a/src/api/templates/consent.html.j2 b/src/api/templates/consent.html.j2 new file mode 100644 index 0000000..968b5bb --- /dev/null +++ b/src/api/templates/consent.html.j2 @@ -0,0 +1,22 @@ +{% extends "base.html" %} +{% set _inputStates = ["Pending"] %} + +

Consent {{service.name}}

+

Request Information:

+
    +
  • Service name: {{service.name}}
  • +
  • Requested at: {{service.reqest_time}}
  • +
  • Auth methode: {{service.expires_at}}
  • +
  • Service State: {{service.state}}
  • +
+ + +{% if message %} +{% include "message.html.j2" with message %} +{% endif %} + +{% if service.state not in _inputStates %} + {% include "_consent_form.html.j2" %} +{% else %} + {% include "_consent_noinput.html.j2" %} +{% endif %} \ No newline at end of file diff --git a/src/orm/handler.rs b/src/orm/handler.rs index f7d8e21..0f79e2c 100644 --- a/src/orm/handler.rs +++ b/src/orm/handler.rs @@ -31,4 +31,9 @@ impl DbConn { .execute(conn) .expect("Error saving new beggars record"); } + + pub(crate) fn get_record(&self, id: i32) -> Option { + let conn = &mut *self.0.lock().unwrap(); + record_states.find(id).get_result::(conn) + } } \ No newline at end of file diff --git a/src/orm/schema.rs b/src/orm/schema.rs index 037acf3..01b0331 100644 --- a/src/orm/schema.rs +++ b/src/orm/schema.rs @@ -18,6 +18,7 @@ diesel::table! { request_time -> BigInt, auth_methode -> Text, expires_at -> Nullable, + has_notifyed -> Bool, state -> Text, awnsered_at -> Nullable, awnsered_by -> Nullable, diff --git a/src/orm/structures.rs b/src/orm/structures.rs index 94ab599..a297e97 100644 --- a/src/orm/structures.rs +++ b/src/orm/structures.rs @@ -20,6 +20,7 @@ pub(crate) struct ProviderRecord{ pub(crate) service_name: String, pub(crate) expires_at: Option, // Unix timestamp pub(crate) auth_methode: AuthMethod, + pub(crate) has_notifyed: bool, pub(crate) state: RecordStates, pub(crate) awnsered_by: Option, }