Пример #1
0
        public async Task <ResponseDto <int> > UpdateUser(ClaimsPrincipal loggedInUser, AddUserDto userToUpdate)
        {
            var userFromDb = await _usersRepository.GetUserByLogin(userToUpdate.Login);

            ResponseDto <int> response = UsersValidator.ValidateUpdateUser(loggedInUser, userToUpdate, userFromDb);

            if (response.HasErrors)
            {
                return(response);
            }

            var mappedUser = Mapper.Map <User>(userToUpdate);

            mappedUser.Id = userFromDb.Id;
            if (!userFromDb.Password.IsEqualTo(userToUpdate.Password.GenerateSaltedHash(userFromDb.Salt)))
            {
                mappedUser.Salt     = SaltCreator.CreateSalt();
                mappedUser.Password = userToUpdate.Password.GenerateSaltedHash(mappedUser.Salt);
            }

            var result = await _usersRepository.UpdateUser(mappedUser);

            response.Value = result;

            return(response);
        }
Пример #2
0
        public async Task <ResponseDto <int> > ChangePassword(ClaimsPrincipal userIdentity, ChangePasswordDto changePasswordDto)
        {
            var userFromDb = await _usersRepository.GetUserByLogin(userIdentity.Identity.Name);

            ResponseDto <int> response = UsersValidator.ValidateChangePassword(userFromDb, changePasswordDto);

            if (response.HasErrors)
            {
                return(response);
            }

            userFromDb.Salt     = SaltCreator.CreateSalt();
            userFromDb.Password = changePasswordDto.NewPassword.GenerateSaltedHash(userFromDb.Salt);
            var result = await _usersRepository.UpdateUser(userFromDb);

            response.Value = result;
            return(response);
        }
Пример #3
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            var salt = SaltCreator.CreateSalt();
            var user = new User
            {
                Email     = "*****@*****.**",
                FirstName = "Adam",
                IsDeleted = false,
                LastName  = "Kowalski",
                Login     = "******",
                Salt      = salt,
                Password  = "******".GenerateSaltedHash(salt),
                Role      = "SuperAdmin",
                Id        = 1
            };

            modelBuilder.Entity <User>().HasData(user);
        }
Пример #4
0
        public async Task <ResponseDto <int> > AddUser(AddUserDto userToAdd)
        {
            var userFromDb = await _usersRepository.GetUserByLogin(userToAdd.Login);

            var response = UsersValidator.ValidateAddUser(userToAdd, userFromDb);

            if (response.HasErrors)
            {
                return(response);
            }

            var userToDb = Mapper.Map <User>(userToAdd);

            userToDb.Salt     = SaltCreator.CreateSalt();
            userToDb.Password = userToAdd.Password.GenerateSaltedHash(userToDb.Salt);
            var result = await _usersRepository.AddUser(userToDb);

            response.Value = result;

            return(response);
        }
Пример #5
0
        public async Task <ResponseDto <bool> > ResetPassword(string mail)
        {
            var userFromDb = await _usersRepository.GetUserByMail(mail);

            var response = UsersValidator.ValidateResetPassword(userFromDb, mail);

            if (response.HasErrors)
            {
                return(response);
            }

            var newPassword = CreateRandomPassword(10);

            userFromDb.Salt     = SaltCreator.CreateSalt();
            userFromDb.Password = newPassword.GenerateSaltedHash(userFromDb.Salt);
            var result = await _usersRepository.UpdateUser(userFromDb);

            await MailHelper.ResetPasswordMail(_appSettings.Value, mail, newPassword);

            response.Value = true;
            return(response);
        }