Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 public virtual ActionResult Logoff()
 {
     RaceDayUser.LogoffUser();
     return(RedirectToAction("Index", "Home", null));
 }