summaryrefslogtreecommitdiff
path: root/src/login/mod.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-09-12 00:15:32 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-09-12 00:27:24 -0400
commit74ef9102a62f713f36f6f8412732be9d837d8d2c (patch)
tree9f0ea3137001d2e171af53aec370c57ed7fb02a9 /src/login/mod.rs
parentf2f820370efbd5c6d0f304f781284a9f68990e21 (diff)
Push most endpoint and extractor logic into functoins of `App`.
This is, again, groundwork for logic that requires more than just a database connection. The login process has been changed to be more conventional, attempting login _before_ account creation rather than after it. This was not previously possible, because the data access methods used to perform these steps did not return enough information to carry out the workflow in that order. Separating storage from password validation and hashing forces the issue, and makes it clearer _at the App_ whether an account exists or not. This does introduce the possibility of two racing inserts trying to lay claim to the same username. Transaction isolation should ensure that only one of them "wins," which is what you get before this change anyways.
Diffstat (limited to 'src/login/mod.rs')
-rw-r--r--src/login/mod.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/login/mod.rs b/src/login/mod.rs
index c2b2924..5070301 100644
--- a/src/login/mod.rs
+++ b/src/login/mod.rs
@@ -1,5 +1,6 @@
pub use self::routes::router;
+pub mod app;
mod extract;
pub mod repo;
mod routes;