Deploying to gh-pages from @ 52ab947e3b 🚀

This commit is contained in:
realaravinth
2021-04-10 16:04:11 +00:00
parent 16fe9919bd
commit 333bc0dd09
34 changed files with 318 additions and 69 deletions

View File

@@ -245,6 +245,16 @@
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -265,7 +275,7 @@
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::<span class="ident">Cow</span>;
<span class="kw">use</span> <span class="ident">actix_identity</span>::<span class="ident">Identity</span>;
<span class="kw">use</span> <span class="ident">actix_web</span>::{<span class="ident">post</span>, <span class="ident">web</span>, <span class="ident">HttpResponse</span>, <span class="ident">Responder</span>};
<span class="kw">use</span> <span class="ident">actix_web</span>::{<span class="ident">get</span>, <span class="ident">post</span>, <span class="ident">web</span>, <span class="ident">HttpResponse</span>, <span class="ident">Responder</span>};
<span class="kw">use</span> <span class="ident">log</span>::<span class="ident">debug</span>;
<span class="kw">use</span> <span class="ident">serde</span>::{<span class="ident">Deserialize</span>, <span class="ident">Serialize</span>};
@@ -304,7 +314,16 @@
<span class="kw">loop</span> {
<span class="ident">secret</span> <span class="op">=</span> <span class="ident">get_random</span>(<span class="number">32</span>);
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">add_user_helper</span>(<span class="kw-2">&amp;</span><span class="ident">username</span>, <span class="kw-2">&amp;</span><span class="ident">hash</span>, <span class="kw-2">&amp;</span><span class="ident">payload</span>.<span class="ident">email</span>, <span class="kw-2">&amp;</span><span class="ident">secret</span>, <span class="kw-2">&amp;</span><span class="ident">data</span>).<span class="kw">await</span>;
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">sqlx</span>::<span class="macro">query</span><span class="macro">!</span>(
<span class="string">&quot;INSERT INTO mcaptcha_users
(name , password, email, secret) VALUES ($1, $2, $3, $4)&quot;</span>,
<span class="kw-2">&amp;</span><span class="ident">username</span>,
<span class="kw-2">&amp;</span><span class="ident">hash</span>,
<span class="kw-2">&amp;</span><span class="ident">payload</span>.<span class="ident">email</span>,
<span class="kw-2">&amp;</span><span class="ident">secret</span>,
)
.<span class="ident">execute</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>.<span class="ident">db</span>)
.<span class="kw">await</span>;
<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> {
@@ -327,27 +346,6 @@
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>())
}
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">add_user_helper</span>(
<span class="ident">username</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">hash</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">email</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">secret</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">data</span>: <span class="kw-2">&amp;</span><span class="ident">Data</span>,
) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">sqlx</span>::<span class="ident">Error</span><span class="op">&gt;</span> {
<span class="ident">sqlx</span>::<span class="macro">query</span><span class="macro">!</span>(
<span class="string">&quot;INSERT INTO mcaptcha_users
(name , password, email, secret) VALUES ($1, $2, $3, $4)&quot;</span>,
<span class="ident">username</span>,
<span class="ident">hash</span>,
<span class="ident">email</span>,
<span class="comment">//get_random(32),</span>
<span class="ident">secret</span>,
)
.<span class="ident">execute</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>.<span class="ident">db</span>)
.<span class="kw">await</span><span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}
<span class="attribute">#[<span class="ident">post</span>(<span class="string">&quot;/api/v1/signin&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">signin</span>(
<span class="ident">id</span>: <span class="ident">Identity</span>,
@@ -380,6 +378,28 @@
}
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Debug</span>, <span class="ident">Deserialize</span>, <span class="ident">Serialize</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Secret</span> {
<span class="kw">pub</span> <span class="ident">secret</span>: <span class="ident">String</span>,
}
<span class="attribute">#[<span class="ident">get</span>(<span class="string">&quot;/api/v1/account/secret/&quot;</span>)]</span>
<span class="kw">pub</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">web</span>::<span class="ident">Data</span><span class="op">&lt;</span><span class="ident">Data</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">ServiceResult</span><span class="op">&lt;</span><span class="kw">impl</span> <span class="ident">Responder</span><span class="op">&gt;</span> {
<span class="ident">is_authenticated</span>(<span class="kw-2">&amp;</span><span class="ident">id</span>)<span class="question-mark">?</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="ident">sqlx</span>::<span class="macro">query_as</span><span class="macro">!</span>(
<span class="ident">Secret</span>,
<span class="string">r#&quot;SELECT secret FROM mcaptcha_users WHERE name = ($1)&quot;#</span>,
<span class="kw-2">&amp;</span><span class="ident">username</span>,
)
.<span class="ident">fetch_one</span>(<span class="kw-2">&amp;</span><span class="ident">data</span>.<span class="ident">db</span>)
.<span class="kw">await</span><span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">HttpResponse</span>::<span class="prelude-val">Ok</span>().<span class="ident">json</span>(<span class="ident">secret</span>))
}
<span class="attribute">#[<span class="ident">post</span>(<span class="string">&quot;/api/v1/signout&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">signout</span>(<span class="ident">id</span>: <span class="ident">Identity</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="kw">impl</span> <span class="ident">Responder</span> {
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="kw">_</span>) <span class="op">=</span> <span class="ident">id</span>.<span class="ident">identity</span>() {

View File

@@ -336,7 +336,6 @@
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -559,7 +558,6 @@
<span class="kw">const</span> <span class="ident">NAME</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;testuserlevelroutes&quot;</span>;
<span class="kw">const</span> <span class="ident">PASSWORD</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;longpassworddomain&quot;</span>;
<span class="kw">const</span> <span class="ident">EMAIL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;testuserlevelrouts@a.com&quot;</span>;
<span class="kw">const</span> <span class="ident">ADD_URL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;/api/v1/mcaptcha/levels/add&quot;</span>;
<span class="kw">const</span> <span class="ident">UPDATE_URL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;/api/v1/mcaptcha/levels/update&quot;</span>;
<span class="kw">const</span> <span class="ident">DEL_URL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;/api/v1/mcaptcha/levels/delete&quot;</span>;
<span class="kw">const</span> <span class="ident">GET_URL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;/api/v1/mcaptcha/levels/get&quot;</span>;

View File

@@ -276,7 +276,6 @@
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -469,7 +468,6 @@
<span class="kw">const</span> <span class="ident">NAME</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;testusermcaptcha&quot;</span>;
<span class="kw">const</span> <span class="ident">PASSWORD</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;longpassworddomain&quot;</span>;
<span class="kw">const</span> <span class="ident">EMAIL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;testusermcaptcha@a.com&quot;</span>;
<span class="kw">const</span> <span class="ident">ADD_URL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;/api/v1/mcaptcha/add&quot;</span>;
<span class="kw">const</span> <span class="ident">DEL_URL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;/api/v1/mcaptcha/delete&quot;</span>;
{

View File

@@ -60,6 +60,7 @@
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="comment">/*
* Copyright (C) 2021 Aravinth Manivannan &lt;realaravinth@batsense.net&gt;
@@ -96,6 +97,7 @@
<span class="ident">cfg</span>.<span class="ident">service</span>(<span class="ident">auth</span>::<span class="ident">delete_account</span>);
<span class="ident">cfg</span>.<span class="ident">service</span>(<span class="ident">auth</span>::<span class="ident">username_exists</span>);
<span class="ident">cfg</span>.<span class="ident">service</span>(<span class="ident">auth</span>::<span class="ident">email_exists</span>);
<span class="ident">cfg</span>.<span class="ident">service</span>(<span class="ident">auth</span>::<span class="ident">get_secret</span>);
<span class="comment">// mcaptcha</span>
<span class="ident">cfg</span>.<span class="ident">service</span>(<span class="ident">mcaptcha</span>::<span class="ident">mcaptcha</span>::<span class="ident">add_mcaptcha</span>);