mirror of
https://github.com/mCaptcha/mCaptcha.git
synced 2026-02-12 18:45:41 +00:00
Deploying to gh-pages from @ 2b10aa5d40 🚀
This commit is contained in:
@@ -106,7 +106,7 @@
|
||||
<span class="ident">id</span>: <span class="ident">Identity</span>,
|
||||
<span class="ident">payload</span>: <span class="ident">web::Json</span><span class="op"><</span><span class="ident">Password</span><span class="op">></span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">use</span> <span class="ident">argon2_creds::Config</span>;
|
||||
<span class="kw">use</span> <span class="ident">sqlx::Error::RowNotFound</span>;
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
.<span class="kw">await</span>;
|
||||
|
||||
<span class="kw">match</span> <span class="ident">rec</span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">s</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">s</span>) => {
|
||||
<span class="kw">if</span> <span class="ident">Config::verify</span>(<span class="kw-2">&</span><span class="ident">s</span>.<span class="ident">password</span>, <span class="kw-2">&</span><span class="ident">payload</span>.<span class="ident">password</span>)<span class="question-mark">?</span> {
|
||||
<span class="ident">runners::delete_user</span>(<span class="kw-2">&</span><span class="ident">username</span>, <span class="kw-2">&</span><span class="ident">data</span>).<span class="kw">await</span><span class="question-mark">?</span>;
|
||||
<span class="ident">id</span>.<span class="ident">forget</span>();
|
||||
@@ -130,8 +130,8 @@
|
||||
<span class="prelude-val">Err</span>(<span class="ident">ServiceError::WrongPassword</span>)
|
||||
}
|
||||
}
|
||||
<span class="prelude-val">Err</span>(<span class="ident">RowNotFound</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::AccountNotFound</span>),
|
||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::InternalServerError</span>),
|
||||
<span class="prelude-val">Err</span>(<span class="ident">RowNotFound</span>) => <span class="prelude-val">Err</span>(<span class="ident">ServiceError::AccountNotFound</span>),
|
||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => <span class="prelude-val">Err</span>(<span class="ident">ServiceError::InternalServerError</span>),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">delete_user</span>(<span class="ident">name</span>: <span class="kw-2">&</span><span class="ident">str</span>, <span class="ident">data</span>: <span class="kw-2">&</span><span class="ident">AppData</span>) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span>()<span class="op">></span> {
|
||||
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">delete_user</span>(<span class="ident">name</span>: <span class="kw-2">&</span><span class="ident">str</span>, <span class="ident">data</span>: <span class="kw-2">&</span><span class="ident">AppData</span>) -> <span class="ident">ServiceResult</span><span class="op"><</span>()<span class="op">></span> {
|
||||
<span class="macro">sqlx::query!</span>(<span class="string">"DELETE FROM mcaptcha_users WHERE name = ($1)"</span>, <span class="ident">name</span>,)
|
||||
.<span class="ident">execute</span>(<span class="kw-2">&</span><span class="ident">data</span>.<span class="ident">db</span>)
|
||||
.<span class="kw">await</span><span class="question-mark">?</span>;
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">email_exists</span>(
|
||||
<span class="ident">payload</span>: <span class="ident">web::Json</span><span class="op"><</span><span class="ident">AccountCheckPayload</span><span class="op">></span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="macro">sqlx::query!</span>(
|
||||
<span class="string">"SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE email = $1)"</span>,
|
||||
<span class="kw-2">&</span><span class="ident">payload</span>.<span class="ident">val</span>,
|
||||
@@ -155,7 +155,7 @@
|
||||
<span class="ident">id</span>: <span class="ident">Identity</span>,
|
||||
<span class="ident">payload</span>: <span class="ident">web::Json</span><span class="op"><</span><span class="ident">Email</span><span class="op">></span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">username</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>().<span class="ident">unwrap</span>();
|
||||
|
||||
<span class="ident">data</span>.<span class="ident">creds</span>.<span class="ident">email</span>(<span class="kw-2">&</span><span class="ident">payload</span>.<span class="ident">email</span>)<span class="question-mark">?</span>;
|
||||
@@ -170,7 +170,7 @@
|
||||
.<span class="kw">await</span>;
|
||||
<span class="kw">if</span> <span class="ident">res</span>.<span class="ident">is_err</span>() {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">sqlx::Error::Database</span>(<span class="ident">err</span>)) <span class="op">=</span> <span class="ident">res</span> {
|
||||
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">=</span><span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">Cow::from</span>(<span class="string">"23505"</span>))
|
||||
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">==</span> <span class="prelude-val">Some</span>(<span class="ident">Cow::from</span>(<span class="string">"23505"</span>))
|
||||
<span class="op">&&</span> <span class="ident">err</span>.<span class="ident">message</span>().<span class="ident">contains</span>(<span class="string">"mcaptcha_users_email_key"</span>)
|
||||
{
|
||||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::EmailTaken</span>);
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">Account</span> {
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-</span><span class="op">></span> <span class="ident">Account</span> {
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="kw">fn</span> <span class="ident">new</span>() -> <span class="ident">Account</span> {
|
||||
<span class="kw">let</span> <span class="ident">get_secret</span> <span class="op">=</span> <span class="string">"/api/v1/account/secret/get"</span>;
|
||||
<span class="kw">let</span> <span class="ident">update_secret</span> <span class="op">=</span> <span class="string">"/api/v1/account/secret/update"</span>;
|
||||
<span class="kw">let</span> <span class="ident">delete</span> <span class="op">=</span> <span class="string">"/api/v1/account/delete"</span>;
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">From</span><span class="op"><</span><span class="ident">ChangePasswordReqest</span><span class="op">></span> <span class="kw">for</span> <span class="ident">UpdatePassword</span> {
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">s</span>: <span class="ident">ChangePasswordReqest</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">s</span>: <span class="ident">ChangePasswordReqest</span>) -> <span class="self">Self</span> {
|
||||
<span class="ident">UpdatePassword</span> {
|
||||
<span class="ident">new_password</span>: <span class="ident">s</span>.<span class="ident">new_password</span>,
|
||||
<span class="ident">confirm_new_password</span>: <span class="ident">s</span>.<span class="ident">confirm_new_password</span>,
|
||||
@@ -255,7 +255,7 @@
|
||||
<span class="ident">user</span>: <span class="kw-2">&</span><span class="ident">str</span>,
|
||||
<span class="ident">update</span>: <span class="ident">UpdatePassword</span>,
|
||||
<span class="ident">data</span>: <span class="kw-2">&</span><span class="ident">Data</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span>()<span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span>()<span class="op">></span> {
|
||||
<span class="kw">if</span> <span class="ident">update</span>.<span class="ident">new_password</span> <span class="op">!</span><span class="op">=</span> <span class="ident">update</span>.<span class="ident">confirm_new_password</span> {
|
||||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::PasswordsDontMatch</span>);
|
||||
}
|
||||
@@ -282,7 +282,7 @@
|
||||
<span class="ident">id</span>: <span class="ident">Identity</span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
<span class="ident">payload</span>: <span class="ident">web::Json</span><span class="op"><</span><span class="ident">ChangePasswordReqest</span><span class="op">></span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">if</span> <span class="ident">payload</span>.<span class="ident">new_password</span> <span class="op">!</span><span class="op">=</span> <span class="ident">payload</span>.<span class="ident">confirm_new_password</span> {
|
||||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::PasswordsDontMatch</span>);
|
||||
}
|
||||
@@ -298,7 +298,7 @@
|
||||
.<span class="kw">await</span>;
|
||||
|
||||
<span class="kw">match</span> <span class="ident">rec</span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">s</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">s</span>) => {
|
||||
<span class="kw">if</span> <span class="ident">Config::verify</span>(<span class="kw-2">&</span><span class="ident">s</span>.<span class="ident">password</span>, <span class="kw-2">&</span><span class="ident">payload</span>.<span class="ident">password</span>)<span class="question-mark">?</span> {
|
||||
<span class="kw">let</span> <span class="ident">update</span>: <span class="ident">UpdatePassword</span> <span class="op">=</span> <span class="ident">payload</span>.<span class="ident">into_inner</span>().<span class="ident">into</span>();
|
||||
<span class="ident">update_password_runner</span>(<span class="kw-2">&</span><span class="ident">username</span>, <span class="ident">update</span>, <span class="kw-2">&</span><span class="ident">data</span>).<span class="kw">await</span><span class="question-mark">?</span>;
|
||||
@@ -307,8 +307,8 @@
|
||||
<span class="prelude-val">Err</span>(<span class="ident">ServiceError::WrongPassword</span>)
|
||||
}
|
||||
}
|
||||
<span class="prelude-val">Err</span>(<span class="ident">RowNotFound</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::AccountNotFound</span>),
|
||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::InternalServerError</span>),
|
||||
<span class="prelude-val">Err</span>(<span class="ident">RowNotFound</span>) => <span class="prelude-val">Err</span>(<span class="ident">ServiceError::AccountNotFound</span>),
|
||||
<span class="prelude-val">Err</span>(<span class="kw">_</span>) => <span class="prelude-val">Err</span>(<span class="ident">ServiceError::InternalServerError</span>),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
<span class="ident">path</span> <span class="op">=</span> <span class="string">"crate::V1_API_ROUTES.account.get_secret"</span>,
|
||||
<span class="ident">wrap</span> <span class="op">=</span> <span class="string">"crate::CheckLogin"</span>
|
||||
)]</span>
|
||||
<span class="kw">async</span> <span class="kw">fn</span> <span class="ident">get_secret</span>(<span class="ident">id</span>: <span class="ident">Identity</span>, <span class="ident">data</span>: <span class="ident">AppData</span>) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">async</span> <span class="kw">fn</span> <span class="ident">get_secret</span>(<span class="ident">id</span>: <span class="ident">Identity</span>, <span class="ident">data</span>: <span class="ident">AppData</span>) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">username</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>().<span class="ident">unwrap</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="ident">secret</span> <span class="op">=</span> <span class="macro">sqlx::query_as!</span>(
|
||||
@@ -144,7 +144,7 @@
|
||||
<span class="kw">async</span> <span class="kw">fn</span> <span class="ident">update_user_secret</span>(
|
||||
<span class="ident">id</span>: <span class="ident">Identity</span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">username</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>().<span class="ident">unwrap</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">secret</span>;
|
||||
@@ -162,7 +162,7 @@
|
||||
<span class="kw">if</span> <span class="ident">res</span>.<span class="ident">is_ok</span>() {
|
||||
<span class="kw">break</span>;
|
||||
} <span class="kw">else</span> <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">sqlx::Error::Database</span>(<span class="ident">err</span>)) <span class="op">=</span> <span class="ident">res</span> {
|
||||
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">=</span><span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">Cow::from</span>(<span class="string">"23505"</span>))
|
||||
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">==</span> <span class="prelude-val">Some</span>(<span class="ident">Cow::from</span>(<span class="string">"23505"</span>))
|
||||
<span class="op">&&</span> <span class="ident">err</span>.<span class="ident">message</span>().<span class="ident">contains</span>(<span class="string">"mcaptcha_users_secret_key"</span>)
|
||||
{
|
||||
<span class="kw">continue</span>;
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
<span class="kw">async</span> <span class="kw">fn</span> <span class="ident">username_exists</span>(
|
||||
<span class="ident">payload</span>: <span class="ident">web::Json</span><span class="op"><</span><span class="ident">AccountCheckPayload</span><span class="op">></span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">resp</span> <span class="op">=</span> <span class="ident">runners::username_exists</span>(<span class="kw-2">&</span><span class="ident">payload</span>, <span class="kw-2">&</span><span class="ident">data</span>).<span class="kw">await</span><span class="question-mark">?</span>;
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse::Ok</span>().<span class="ident">json</span>(<span class="ident">resp</span>))
|
||||
}
|
||||
@@ -149,7 +149,7 @@
|
||||
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">username_exists</span>(
|
||||
<span class="ident">payload</span>: <span class="kw-2">&</span><span class="ident">AccountCheckPayload</span>,
|
||||
<span class="ident">data</span>: <span class="kw-2">&</span><span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="ident">AccountCheckResp</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="ident">AccountCheckResp</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="macro">sqlx::query!</span>(
|
||||
<span class="string">"SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE name = $1)"</span>,
|
||||
<span class="kw-2">&</span><span class="ident">payload</span>.<span class="ident">val</span>,
|
||||
@@ -183,7 +183,7 @@
|
||||
<span class="ident">id</span>: <span class="ident">Identity</span>,
|
||||
<span class="ident">payload</span>: <span class="ident">web::Json</span><span class="op"><</span><span class="ident">Username</span><span class="op">></span>,
|
||||
<span class="ident">data</span>: <span class="ident">AppData</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
) -> <span class="ident">ServiceResult</span><span class="op"><</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">username</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>().<span class="ident">unwrap</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="ident">processed_uname</span> <span class="op">=</span> <span class="ident">data</span>.<span class="ident">creds</span>.<span class="ident">username</span>(<span class="kw-2">&</span><span class="ident">payload</span>.<span class="ident">username</span>)<span class="question-mark">?</span>;
|
||||
@@ -199,7 +199,7 @@
|
||||
|
||||
<span class="kw">if</span> <span class="ident">res</span>.<span class="ident">is_err</span>() {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">sqlx::Error::Database</span>(<span class="ident">err</span>)) <span class="op">=</span> <span class="ident">res</span> {
|
||||
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">=</span><span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">Cow::from</span>(<span class="string">"23505"</span>))
|
||||
<span class="kw">if</span> <span class="ident">err</span>.<span class="ident">code</span>() <span class="op">==</span> <span class="prelude-val">Some</span>(<span class="ident">Cow::from</span>(<span class="string">"23505"</span>))
|
||||
<span class="op">&&</span> <span class="ident">err</span>.<span class="ident">message</span>().<span class="ident">contains</span>(<span class="string">"mcaptcha_users_name_key"</span>)
|
||||
{
|
||||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ServiceError::UsernameTaken</span>);
|
||||
|
||||
Reference in New Issue
Block a user