From 22b20086bb281128eca8bd0972aab708f8ad2852 Mon Sep 17 00:00:00 2001 From: Swrup Date: Tue, 8 Mar 2022 23:05:38 +0100 Subject: [PATCH] auto login after register --- src/permap.ml | 12 +++++++++-- src/register.eml.html | 47 +++++++++++++++++-------------------------- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/permap.ml b/src/permap.ml index 5f44e82..906788e 100644 --- a/src/permap.ml +++ b/src/permap.ml @@ -46,8 +46,16 @@ let register_get request = render_unsafe (Register.f request) request let register_post request = match%lwt Dream.form request with - | `Ok [ ("email", email); ("nick", nick); ("password", password) ] -> - render_unsafe (Register.f ~nick ~email ~password request) request + | `Ok [ ("email", email); ("nick", nick); ("password", password) ] -> ( + match User.register ~email ~nick ~password with + | Error e -> render_unsafe e request + | Ok () -> + let res = + Result.fold ~error:Fun.id + ~ok:(fun _ -> "User created ! Welcome !") + (User.login ~login:nick ~password request) + in + render_unsafe res request ) | `Ok _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _ | `Expired _ | `Wrong_content_type -> Dream.empty `Bad_Request diff --git a/src/register.eml.html b/src/register.eml.html index 0cc46f0..fd3dac1 100644 --- a/src/register.eml.html +++ b/src/register.eml.html @@ -1,29 +1,18 @@ -let f ?email ?nick ?password request = - -% begin match email, nick, password with -% | Some email, Some nick, Some password -> -% begin match User.register ~email ~nick ~password with -% | Error e -> -Error: <%s e %> -% | Ok _ (* TODO: do not match on _ *) -> -User created ! -% end; -% | _ -> - <%s! Dream.form_tag ~action:"/register" request %> -
- - -
Who are u ?
-
-
- - -
We'll never share your email with anyone else.
-
-
- - -
- - -% end; +let f request = +<%s! Dream.form_tag ~action:"/register" request %> +
+ + +
Choose a nickname
+
+
+ + +
We'll never share your email with anyone else.
+
+
+ + +
+ +