1 module vibeauth.router.login.responses; 2 3 import std.stdio; 4 import std.datetime; 5 import std..string; 6 import std.uri; 7 import std.file; 8 9 import vibe.http.router; 10 import vibe.data.json; 11 12 import vibeauth.users; 13 import vibeauth.configuration; 14 import vibeauth.mail.base; 15 import vibeauth.router.login.routes; 16 import vibeauth.router.request; 17 import vibeauth.mvc.templatedata; 18 import vibeauth.mvc.view; 19 20 /// User 21 class LoginResponses { 22 23 private { 24 const { 25 ServiceConfiguration configuration; 26 } 27 } 28 29 this(const ServiceConfiguration configuration) { 30 this.configuration = configuration; 31 } 32 33 void resetForm(HTTPServerRequest req, HTTPServerResponse res) { 34 auto requestData = const RequestUserData(req); 35 36 if(requestData.email == "" || requestData.token == "") { 37 scope auto view = new ResetView(configuration); 38 res.writeBody(view.render, 200, "text/html; charset=UTF-8" ); 39 return; 40 } 41 42 scope auto view = new ChangePasswordView(configuration); 43 Json data = Json.emptyObject; 44 45 data["email"] = requestData.email; 46 data["token"] = requestData.token; 47 48 if(requestData.error != "") { 49 view.data.addError(requestData.error); 50 } 51 52 view.data.add(data); 53 54 res.writeBody(view.render, 200, "text/html; charset=UTF-8" ); 55 } 56 57 void loginForm(HTTPServerRequest req, HTTPServerResponse res) { 58 auto view = new LoginView(configuration); 59 auto requestData = const RequestUserData(req); 60 Json data = Json.emptyObject; 61 62 data["username"] = requestData.username; 63 64 if(requestData.error != "") { 65 view.data.addError(requestData.error); 66 } 67 68 if(requestData.message != "") { 69 view.data.addMessage(requestData.message); 70 } 71 72 view.data.add(data); 73 res.writeBody(view.render, 200, "text/html; charset=UTF-8" ); 74 } 75 } 76 77 alias LoginView = BasicView!( 78 "templates.login.formTemplate", 79 "templates.login.form" 80 ); 81 82 alias ResetView = BasicView!( 83 "templates.login.resetTemplate", 84 "templates.login.reset" 85 ); 86 87 alias ChangePasswordView = BasicView!( 88 "templates.login.resetTemplate", 89 "templates.login.resetPassword" 90 );