Ejemplo n.º 1
0
        private void SeedDefaultData(ModelBuilder builder)
        {
            var defaultUserId = Guid.NewGuid().ToString();

            builder.Entity <User>().HasData(new User
            {
                Id       = defaultUserId,
                Name     = "admin",
                Password = passwordHasher.EncodePassword("admin"),
                Surname  = "admin",
                Email    = "*****@*****.**"
            });

            builder.Entity <Role>().HasData(new Role[] {
                new Role {
                    Id = 1, Name = Domain.Roles.User
                },
                new Role {
                    Id = 2, Name = Domain.Roles.Admin
                }
            });

            builder.Entity <UserRole>().HasData(new { Id = 1, UserId = defaultUserId, RoleId = 1 });
            builder.Entity <UserRole>().HasData(new { Id = 2, UserId = defaultUserId, RoleId = 2 });
        }
Ejemplo n.º 2
0
        public async Task <bool> CreateUserAsync(User user)
        {
            user.Password = passwordHasher.EncodePassword(user.Password);
            user.Id       = Guid.NewGuid().ToString();
            user.Created  = DateTime.Now;

            await context.Users.AddAsync(user);

            // TODO: Change it
            var defaultRole = await context.Roles.FirstOrDefaultAsync(x => x.Id == 1);

            await context.UserRoles.AddAsync(new UserRole
            {
                User = user,
                Role = defaultRole
            });

            await context.SaveChangesAsync(new CancellationToken());

            return(true);
        }
        public async Task Execute(CreateUserInput input)
        {
            if (input == null)
            {
                outputPort.WriteError(""); return;
            }

            bool success = await userRepository.Create(
                input.Username,
                passwordHasher.EncodePassword(input.Password),
                input.Email
                );

            outputPort.Standart(new CreateUserOutput(success));
        }
Ejemplo n.º 4
0
        public async Task Execute(ChangePasswordInput input)
        {
            if (input == null)
            {
                outputPort.WriteError(""); return;
            }

            var user = await userRepository.Get(input.UserId);

            if (user == null)
            {
                outputPort.NotFound(""); return;
            }

            user.Password = passwordHasher.EncodePassword(input.NewPassword);
            bool success = await userRepository.Update(user);

            outputPort.Standart(new ChangePasswordOutput(success));
        }
Ejemplo n.º 5
0
        public async Task <RequestResponseModel <UserViewModel> > SignUpAsync(RegistrationWriteModel signUpData)
        {
            var errors = await _userValidator.CheckSignUpDataBeforeRegisteringAsync(signUpData);

            if (errors.Any())
            {
                return(new RequestResponseModel <UserViewModel>(StatusCodes.Status400BadRequest,
                                                                errors,
                                                                null));
            }

            var passwordHash = _passwordHasher.EncodePassword(signUpData.Password);
            var role         = await _userValidator.GetUserRoleBeforeRegisterAsync();

            var registeredUser = await _userRepository.SignUpAsync(new UserEntity
            {
                MailAddress  = signUpData.MailAddress,
                Username     = signUpData.Username,
                PasswordHash = passwordHash,
                Role         = role
            });

            if (registeredUser == null)
            {
                return(new RequestResponseModel <UserViewModel>(StatusCodes.Status400BadRequest,
                                                                new List <ErrorViewModel>
                {
                    ErrorViewModel.Factory.NewErrorFromMessage(_localizer["UserCreationErrorMessage"]
                                                               .Value)
                },
                                                                null));
            }

            await _userRepository.SaveChangesAsync();

            var result = (UserViewModel)registeredUser;

            return(new RequestResponseModel <UserViewModel>(StatusCodes.Status200OK,
                                                            Enumerable.Empty <ErrorViewModel>(),
                                                            result));
        }