Esempio n. 1
0
        public void Index_RedirectsToLogoutIfAccountDoesNotExist()
        {
            service.AccountExists(accountId).Returns(false);

            RedirectToRouteResult actual = controller.Index() as RedirectToRouteResult;

            Assert.AreEqual("Auth", actual.RouteValues["controller"]);
            Assert.AreEqual("Logout", actual.RouteValues["action"]);
        }
Esempio n. 2
0
        public ActionResult Edit(int id,
                                 [Bind(Exclude = "Id")] Account account)
        {
            if (id != account.Id)
            {
                return(HttpNotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _service.UpdateAccount(account);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!_service.AccountExists(account))
                    {
                        return(HttpNotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(account));
        }
Esempio n. 3
0
        public void SetUp()
        {
            HttpMock httpMock = new HttpMock();

            HttpContext.Current = httpMock.HttpContext;
            service             = Substitute.For <IAccountService>();
            accountId           = HttpContext.Current.User.Identity.Name;
            service.AccountExists(accountId).Returns(true);

            controller = new HomeController(service);
            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = httpMock.HttpContextBase;
        }
Esempio n. 4
0
        public async Task <ActionResult> RegisterAccount(RegisterDto registerDto)
        {
            if (await _accountService.AccountExists(registerDto.Username))
            {
                return(BadRequest("Username is taken"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var id = await _accountService.Register(registerDto);

            return(Created($"/api/account/{id}", null));
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            IAccountService accountService = (IAccountService)validationContext
                                             .GetService(typeof(IAccountService));

            //if email exists, it is in use and validation fails
            bool emailExists = accountService.AccountExists((string)value, out _);

            if (emailExists)
            {
                return(new ValidationResult("This email address is already in use."));
            }
            else
            {
                return(ValidationResult.Success);
            }
        }
Esempio n. 6
0
        protected bool LoggedInUser(out UserAccount account)
        {
            ISession session = ControllerContext.HttpContext.Session;

            byte[] userAuthToken = session.Get("userAuthToken");

            if (userAuthToken != null)
            {
                Guid identifier = new Guid(userAuthToken);

                if (accountService.AccountExists(identifier, out account))
                {
                    ViewData["loggedIn"] = true;
                    ViewData["user"]     = account;

                    return(true);
                }
            }

            account = null;
            return(false);
        }
 [HttpPost("account-exists")] // Endpoint for the frontend to check in real-time if the email is already taken
 public IActionResult AccountExists(AccountExists model)
 {
     _accountService.AccountExists(model.Email);
     return(Ok(new { message = $"The email '{model.Email}' is available" }));
 }
Esempio n. 8
0
        public void Edit_OnGetRedirectsToLogoutIfAccountDoesNotExist()
        {
            service.AccountExists(controller.CurrentAccountId).Returns(false);

            RedirectToRouteResult actual = controller.Edit() as RedirectToRouteResult;

            Assert.AreEqual("Auth", actual.RouteValues["controller"]);
            Assert.AreEqual("Logout", actual.RouteValues["action"]);
            Assert.AreEqual(2, actual.RouteValues.Count);
        }
Esempio n. 9
0
        public async Task <IActionResult> CreateAccount(AccountSignUp accountSignUp)
        {
            //Check parameters
            if (accountSignUp == null)
            {
                return(BadRequest("Udfyld alle felter"));
            }
            if (string.IsNullOrEmpty(accountSignUp.Email))
            {
                return(BadRequest("Email kan ikke være tomt"));
            }
            if (string.IsNullOrEmpty(accountSignUp.Password))
            {
                return(BadRequest("Adgangskode kan ikke være tomt"));
            }
            if (string.IsNullOrEmpty(accountSignUp.UserName))
            {
                return(BadRequest("Brugernavn kan ikke være tomt"));
            }

            //Validate Email
            if (!Regex.IsMatch(accountSignUp.Email,
                               "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
                )
            {
                return(BadRequest("Email er ikke valid"));
            }

            //Validate Password
            if (!Regex.IsMatch(accountSignUp.Password, _passwordService.PasswordPattern))
            {
                return(BadRequest(
                           $"Adgangskoden var ikke valid, adgangskoden skal minimum indeholde 1 stortbogstav, 1 bogstav, 1 specialtegn, 1 tal og være {_passwordService.MinLength}-{_passwordService.MaxLength} tegn langt"));
            }

            //Check if account userName already exists
            if (await _accountService.AccountExists(accountSignUp.Email))
            {
                return(BadRequest("En bruger med denne brugernavn eksistere allerede"));
            }

            //Check if account email already exists
            if (await _accountService.EmailExists(accountSignUp.Email))
            {
                return(BadRequest("En bruger med denne email eksistere allerede"));
            }

            try
            {
                //Create account
                if (await _accountService.CreateAccount(accountSignUp) != null)
                {
                    //If successfully send ok created
                    return(Ok(new Response("Oprettet bruger!")));
                }
            }
            catch (Exception)
            {
                return(BadRequest(
                           "Der skete en fejl ved oprettelse af brugere, kontakt venligst [email protected] hvis dette fortsætter"));
            }

            return(BadRequest(
                       "Der skete en fejl ved oprettelse af brugere, kontakt venligst [email protected] hvis dette fortsætter"));
        }