public static async Task <string> Authorize() { var auth = new LoginAuth { groupid = RaceDayConfiguration.Instance.APIGroup, email = RaceDayUser.CurrentUser.Email, apikey = RaceDayConfiguration.Instance.APIKey }; var client = new RestClient(RaceDayConfiguration.Instance.APIUrl); var loginResult = await client.PostApi <AuthResult>(COMMAND_LOGIN, auth, HttpStatusCode.OK); if (loginResult != null) { RaceDayUser.LoginUser(loginResult, RaceDayUser.CurrentUser.IsPersistent); } return(RaceDayUser.CurrentUser.Token); }
public virtual async Task <ActionResult> Index(LogonViewModel model) { if (ModelState.IsValid) { // Attempt a login // var login = await RaceDayClient.Login(model.LoginEmail.Trim(), model.LoginPassword.Trim()); if (login == null) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid Email/Password."); } else { RaceDayUser.LoginUser(login, model.RememberMe); return(RedirectToAction(MVC.Home.Index())); } } return(View(model)); }
public virtual async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { string recapatchaResponse = Request.Form["g-recaptcha-response"]; var result = await RecaptchaClient.Verify(RecaptchaConfiguration.Instance.SecretKey, recapatchaResponse); if (result.success) { var resultCode = await RaceDayClient.UserRegister(model.GroupCode, model.FirstName, model.LastName, model.RegisterEmail, model.RegisterPassword); if (resultCode == HttpStatusCode.Created) { var login = await RaceDayClient.Login(model.RegisterEmail.Trim(), model.RegisterPassword.Trim()); RaceDayUser.LoginUser(login, false); return(RedirectToAction(MVC.Home.Index())); } else if (resultCode == HttpStatusCode.BadRequest) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid registration request."); } else if (resultCode == HttpStatusCode.Conflict) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Account already exists."); } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "API Server error."); } } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid captcha response."); } } return(View(model)); }
public virtual ActionResult Logoff() { RaceDayUser.LogoffUser(); return(RedirectToAction("Index", "Home", null)); }