Commit Graph

166 Commits

Author SHA1 Message Date
Emii Tatsuo 47c6fae79f
Expose user manager in request 2020-11-26 21:04:02 -05:00
Emii Tatsuo e83f2ca109
Login flow now redirects back to where it started
Closes #8

Still in testing, but seems good I think
2020-11-26 13:50:46 -05:00
Emii Tatsuo 98583e737f
Fix user management 2020-11-25 21:25:35 -05:00
Emii Tatsuo 0ea4c62731
Fix a few bugs from combining features 2020-11-25 20:37:43 -05:00
Emii Tatsuo 0633512f86
Remove deprecated gemini_mime function 2020-11-25 16:04:04 -05:00
Emii Tatsuo 1766ab4c9c
Merge `Builder` and `Server` in the public API into one concept 2020-11-25 15:52:44 -05:00
Emii Tatsuo a4f1017c5f
Added automatic certificate generation (Closes #4)
All my roommates left and now my apartment is lonely, but at least I can still pour unhealthy amounts of time into software projects nobody will ever use
2020-11-25 15:39:00 -05:00
Emii Tatsuo b69aba139f
Rebrand as kochab
I spent /so/ long looking for that figlet font.
    __              __          __
   / /______  _____/ /_  ____ _/ /_
  / //_/ __ \/ ___/ __ \/ __ `/ __ \
 / ,< / /_/ / /__/ / / / /_/ / /_/ /
/_/|_|\____/\___/_/ /_/\__,_/_.___/
2020-11-25 00:42:09 -05:00
Emi Tatsuo 16721a7321
Merge several pending changes into a virtual master
Octopus merges are just a cheap trick to make weak branches stronger
2020-11-24 23:04:26 -05:00
Emi Tatsuo 13b1eddd00
Allow serving a single file 2020-11-24 17:28:54 -05:00
Emi Tatsuo 970813f295
Added FilesHandler 2020-11-24 17:22:47 -05:00
Emi Tatsuo 3e07e24e41
Added automatic clearing of ratelimit keys 2020-11-24 16:45:30 -05:00
Emi Tatsuo 5ae6f578e3
Merge branch 'routes' into rate-limiting 2020-11-24 15:27:27 -05:00
Emi Tatsuo 560760c489
Added another test for RoutingNode 2020-11-24 15:08:05 -05:00
Emi Tatsuo b2a671993e
Add ability to iterate over a routing node 2020-11-24 14:51:21 -05:00
Emi Tatsuo df2350a8bb
Switch to a much lighter in-house rate-limiting solution, and use consistant naming of ratelimiting 2020-11-24 13:58:18 -05:00
Emi Tatsuo c3d7381860
Added a static handler type. Impl AsRef<Body> for Response
im so tired i havent slept enough in so long but also i havent done any productive work like do you think im using this project as an excuse or like a bad coping mechanism for my mental health or something like that cause thats what its starting to feel like
2020-11-23 23:34:11 -05:00
Emi Tatsuo 7990739884
Move the handler type to it's own mod, change to an enum
The new enum can be converted to from anything that could previously be passed to
add_route, so this is not a breaking change.  If fact, from the end user's perspective,
nothing changed, but internally, this gives us a lot of potential as far as having
multiple types of routes.
2020-11-23 11:55:40 -05:00
Emi Tatsuo 2400ef8796
Move user management routes to their seperate feature 2020-11-23 11:37:47 -05:00
Emi Tatsuo f572209dfa
Merge branch 'reduce-arcs' into routes 2020-11-23 10:55:48 -05:00
Emi Tatsuo 48c0783e36
Improve error handling for serve_dir
Specifically:
 - Serve NOT_FOUND when file or directory doesn't exist
 - Serve NOT_FOUND and warn in log when permission denied for file or directory
 - Serve SERVER_ERROR and warn in log when permission denied or not found for path to serve from
 - Serve SERVER_ERROR and warn in log with a link to the GH if an unexpected error happens
2020-11-23 09:39:45 -05:00
Emi Tatsuo 71c1ac0fab
Fix `serve_dir` feature 2020-11-23 08:44:45 -05:00
Emi Tatsuo 28a4d64c5f
Segregate features surrounding multiple certificates & passwords to a seperate feature 2020-11-22 22:24:36 -05:00
Emi Tatsuo 9916770bd2
Added add_authenticated_input_route 2020-11-22 20:56:15 -05:00
Emi Tatsuo edbfd3ed78
Merge branch 'reduce-arcs' into user-management 2020-11-22 20:35:47 -05:00
panicbit eebf7119fb
Merge branch 'master' into routes 2020-11-22 21:00:33 +01:00
panicbit 3a999a16fe
Merge pull request #30 from Alch-Emi/doc-into-req
Allow direct conversion for Document -> Response
2020-11-22 20:54:08 +01:00
Emi Tatsuo 95a4a8d75d
Reduce number of required `Arc`s
Should improve performance because cloning an `Arc` is expensive
2020-11-22 11:55:33 -05:00
Emi Tatsuo 7854a2a4c4
Add the add_authenticated_route method
I'm really proud of how small the user_management example has gotten
2020-11-22 02:56:41 -05:00
Emi Tatsuo 916ac1009c
Add docs for add_um_routes 2020-11-22 01:05:34 -05:00
Emi Tatsuo 0756dd7394
Update a few pages 2020-11-22 00:46:32 -05:00
Emi Tatsuo b03fe0e5f7
Add password management facilities 2020-11-22 00:46:24 -05:00
Emi Tatsuo 2b5ee33762
Fixed bug where user password was never saved 2020-11-22 00:42:26 -05:00
Emi Tatsuo 3c7d3457ef
Added has_password to RegisteredUser 2020-11-22 00:33:57 -05:00
Emi Tatsuo abe3c00fbf
Merge branch 'fix-kristall' into user-management 2020-11-21 23:57:35 -05:00
Ben Aaron Goldberg 4d0b0521d6
Include a workaround for a bug with rustls & webpki 2020-11-21 23:45:05 -05:00
Emi Tatsuo 6e82ae059d
Add user management routes 2020-11-21 23:03:56 -05:00
Emi Tatsuo a9b347a8c9
Merge branch 'rework-success' into user-management 2020-11-21 17:34:08 -05:00
Emi Tatsuo 115d0aa120
Merge branch 'doc-into-req' into user-management 2020-11-21 17:19:49 -05:00
Emi Tatsuo 0b4fca2c69
Merge branch 'allow-async-handlers' into user-management 2020-11-21 16:55:36 -05:00
Emi Tatsuo cd7af1025a
Cleanup typos in routes docs
I should really use spellcheck more often
2020-11-20 23:51:22 -05:00
Emi Tatsuo e678e45b78
Merge branch 'routes' into user-management 2020-11-20 21:53:00 -05:00
Emi Tatsuo 349f6da698
Add rate limiting feature
ugghhhhhh I hate how big the governer crate is but there's no alternative besides DIY
2020-11-20 21:15:37 -05:00
Emi Tatsuo 5254c17e36
Rework Request::success methods 2020-11-20 14:18:11 -05:00
Emi Tatsuo 2604b02e2b
Merge branch 'routes' into allow-async-handlers 2020-11-20 14:00:49 -05:00
Emi Tatsuo 536e404fdf
Make RoutingNode generic 2020-11-20 13:54:24 -05:00
Emi Tatsuo 59e3222ce8
Add trailing segments to request 2020-11-20 13:22:34 -05:00
Emi Tatsuo 3296d00ec3
Add From<Borrow<Document>> to Response
This allows users to call &mut Document.into() in order to create a response, so that you
can do it right in the middle of one of those builder call chain thingies
2020-11-20 09:51:37 -05:00
Emi Tatsuo 435330b415
Made Request::document a bit more generic
Also how did I not know about the Borrow trait until now???
2020-11-20 09:40:57 -05:00
Emi Tatsuo 5612ce1085
Removed unnecessary dependency on futures-rs 2020-11-19 23:51:25 -05:00
Emi Tatsuo 29c831649d
Changed the add_route API to allow the use of simpler, async handlers 2020-11-19 23:48:55 -05:00
Emi Tatsuo 54816e1f67
Fixed bug where root handler was never hit for requests other than exact matches 2020-11-19 23:34:45 -05:00
Emi Tatsuo 10c957aee5
Re-restrict Handler & HandlerResponse 2020-11-19 22:35:35 -05:00
Emi Tatsuo dc18bf2d1c
Fix examples (& also bugs with args in lib.rs)
I thought I was clever with Into<Handler> :(
2020-11-19 22:33:44 -05:00
Emi Tatsuo 4a0d07c2ca
Switched Builder & Server to routes from a single handler 2020-11-19 22:11:31 -05:00
Emi Tatsuo e6c66ed9e7
Don't feature gate routing
I really thought this was gonna be more complicated when I was planning it.  Well,
"planning" it.
2020-11-19 21:45:41 -05:00
Emi Tatsuo 26e0fd2702
Added some routing classes 2020-11-19 21:37:02 -05:00
Emi Tatsuo 0bcce9fd6f
Appease clippy
Please my compiler is so angry ;-;
2020-11-19 18:03:10 -05:00
Emi Tatsuo 766c472cbf
Added the `add_certificate` and `attach` methods 2020-11-19 17:41:32 -05:00
Emi Tatsuo cdc3921a83
Refix docs
Oh so /that's/ how you disable a lint
2020-11-19 17:07:33 -05:00
Emi Tatsuo 79b06b08ba
Refactor SignedInUser -> RegisteredUser 2020-11-19 17:00:32 -05:00
Emi Tatsuo 2f1196228f
Return a full SignedInUser from lookup_user(), restrict access to PartialUser
Okay this is a much nicer API tbh.  Why didn't I do this from the start?  'cause I'm bad
at planning that's why.  We got there eventually though!
2020-11-19 16:54:29 -05:00
Emi Tatsuo 1908d0a0d7
Implement the set password method 2020-11-19 16:39:02 -05:00
Emi Tatsuo fb205cd397
Switched from bcrypt to argon 2020-11-19 16:07:52 -05:00
Emi Tatsuo ff5f294dae
Restricted access to several fields of SignedInUser 2020-11-19 15:21:26 -05:00
Emi Tatsuo 4996ae99d2
Merge remote-tracking branch 'upstream/master' into user-management 2020-11-19 14:41:18 -05:00
Emi Tatsuo abcb296574
Cleaned up some warnings in user_management
*sweep sweep sweep sweep sweep*
2020-11-19 14:27:36 -05:00
Emi Tatsuo 18228bb1c5
Save SignedInUser on drop, and make changes necessary to that end
Which was a surprisingly large number of changes /shrug
2020-11-19 14:25:36 -05:00
panicbit 46ab84ba04 streamline send_response 2020-11-19 19:34:48 +01:00
Emi Tatsuo e7cf782a60
Improve user management docs 2020-11-19 13:20:14 -05:00
Emi Tatsuo b50a5e3244
Merge remote-tracking branch 'upstream/master' into timeout-override 2020-11-19 12:36:42 -05:00
panicbit 4e251d0cb6
Merge pull request #25 from Alch-Emi/trim-deps
Trim dependencies & move directory serving utils to feature
2020-11-19 18:29:52 +01:00
Emi Tatsuo c69cf49d99
Removed over-zeleous feature gating 2020-11-19 11:31:10 -05:00
Emi Tatsuo 475db6af79
Adapted a type from futures-util allowing us to drop the dep and remove a big chunk of the dep tree 2020-11-19 11:09:53 -05:00
Emi Tatsuo 3da18ca530
Reduced tokio featureset 2020-11-19 10:21:32 -05:00
Emi Tatsuo e0abe6344b
Reduced dependency on futures-rs 2020-11-19 02:54:45 -05:00
Emi Tatsuo 753ecf708d
Isolate directory serving methods behind feature, incl mime_guess. Remove itertools 2020-11-19 02:49:41 -05:00
Emi Tatsuo df362d1bc3
Fixed bug where incorrect timeout was used. I got the mime types backwards haha pretend you didnt see that 2020-11-19 01:43:57 -05:00
Emi Tatsuo 25d575bee7
Shorten references to tokio::time::timeout because I forgot I used an import for that woops sorry 2020-11-19 01:30:08 -05:00
Emi Tatsuo 94d7a5ab4f
Added complex timeout override option to builder 2020-11-19 01:25:34 -05:00
Emi Tatsuo a778774189
Added note about short timeouts to set_timeout docs 2020-11-18 23:29:00 -05:00
Emi Tatsuo 4e3417fb41
Added ability to customize certificate path 2020-11-18 23:10:48 -05:00
panicbit f2b27665c2 correctly ignore doctest 2020-11-18 23:01:10 +01:00
panicbit 5a92d8d28f use mime_guess for guessing mime 2020-11-18 23:00:46 +01:00
panicbit fffada14e3 increase default timeout from 1 to 30 seconds 2020-11-18 22:46:18 +01:00
panicbit 931c3fbbc2 add temporary redirects and bad requests 2020-11-18 21:26:27 +01:00
panicbit 4eae63ac4e
Merge pull request #17 from Alch-Emi/timeout
Add timeouts to response handling
2020-11-18 21:04:48 +01:00
Emi Tatsuo 343de637c4
Added ability to load from custom key and certificate paths 2020-11-18 09:24:22 -05:00
Emi Tatsuo 6a78b2f31a
Added Response::success_with_body 2020-11-17 21:41:18 -05:00
Emi Tatsuo aa2dbbf67a
Fixed typo in timeout docs 2020-11-17 21:01:54 -05:00
Emi Tatsuo 71cf4d33f2
Added ability to set the timeout in the Server builder 2020-11-17 20:45:57 -05:00
Emi Tatsuo 3245396682
Add basic timeout with hardcoded durations 2020-11-17 20:38:10 -05:00
panicbit 387ca06611 fix visibility of URIReference in crate root 2020-11-17 01:50:35 +01:00
Emi Tatsuo 0a67c1d672
Rename UserInner -> PartialUser, expose for access outside of crate 2020-11-16 09:21:24 -05:00
Emi Tatsuo 0e2f8d5f62
Added user management API [WIP] 2020-11-16 01:13:16 -05:00
panicbit 987621cca9 support gmi extension when guessing mime types
Closes #12
2020-11-15 22:03:50 +01:00
panicbit add2f30ca6 remove unused function 2020-11-15 21:42:13 +01:00
panicbit bbeb697bb1 complete document documentation 2020-11-15 21:40:16 +01:00
panicbit ec6a0af782 keep document internals private 2020-11-15 21:17:22 +01:00
panicbit ae803a55d2 do not escape heading text 2020-11-15 21:14:53 +01:00