Exemple #1
0
 public async Task <UserInteractionResults> CreateAsync(Role role)
 {
     try
     {
         var r = _unitOfWork._rolesRepository.GetAll().FirstOrDefault(q => q.RoleName.ToLower().Equals(role.RoleName.ToLower()));
         if (r == null)
         {
             _unitOfWork._rolesRepository.Insert(role);
             _unitOfWork.SaveChanges();
             return(await Task.FromResult(UserInteractionResults.Succeeded));
         }
         return(await Task.FromResult(UserInteractionResults.Failed));
     }
     catch (Exception e)
     {
         return(await Task.FromResult(UserInteractionResults.Failed));
     }
 }
Exemple #2
0
        public Task <UserInteractionResults> CreateAsync(User user, string userPWD)
        {
            try
            {
                var passwordEncrypted = Convert.ToBase64String(_passwordEncryptor.EncryptPassword(userPWD, _passwordEncryptor.masterStore.Key));
                user.Password = passwordEncrypted;

                _unitOfWork._userRepository.Insert(user);
                _unitOfWork.SaveChanges();

                return(Task.FromResult(UserInteractionResults.Succeeded));
            }
            catch (Exception e)
            {
                return(Task.FromResult(UserInteractionResults.Failed));
            }
        }
Exemple #3
0
        private async Task <IActionResult> CreateAuthoriseUsingLoginCredentials(AfricanFarmersCommodities.Models.UserDetails userDetails)
        {
            var user = await _userService.FindByEmailAsync(userDetails.emailAddress);

            if (user == null)
            {
                ModelState.AddModelError(string.Empty, "Invalid login");

                return(BadRequest(new { IsLoggedIn = false, ErrorMessage = "Invalid login" }));
            }

            UserInteractionResults result = await _userService.PasswordSignInAsync(user, userDetails.password, isPersistent : userDetails.keepLoggedIn, lockoutOnFailure : false);

            if (result != UserInteractionResults.Succeeded)
            {
                ModelState.AddModelError(string.Empty, "Invalid login");
                return(BadRequest(new { IsLoggedIn = false, ErrorMessage = "Invalid Login" }));
            }
            else if (result == UserInteractionResults.Succeeded)
            {
                var tmpUser = await _userService.FindByNameAsync(user.Username);

                var userRoles = await _roleService.FindByUserNameAsync(tmpUser.Username);

                var authToken = await _userService.AddUserRolesClaimAsync(tmpUser.Username, userRoles);

                tmpUser.Token = authToken;
                _unitOfWork.SaveChanges();

                var isAdministrator = await _userService.IsUserInRoleAsync(user.Username.ToLower(), "administrator");

                return(Ok(new { AuthToken = authToken, IsLoggedIn = true, IsAdministrator = isAdministrator }));
            }

            return(Ok(new { IsLoggedIn = false, IsAdministrator = false, Message = "Failed to Login!", Result = result.ToString() }));
        }