Ejemplo n.º 1
0
        public async Task <AuthenticationResult> RegisterAsync(UserRegistrationCommand request)
        {
            var existingUser = await _userManager.FindByEmailAsync(request.Email);

            if (existingUser != null)
            {
                return(new AuthenticationResult
                {
                    ErrorMessages = new[] { "User with this email address already exists" }
                });
            }

            var newUser = new User(ValidateIsAdmin(request))
            {
                Email    = request.Email,
                UserName = request.Email,
            };

            var createdUser = await _userManager.CreateAsync(newUser, request.Password);

            if (!createdUser.Succeeded)
            {
                return(new AuthenticationResult
                {
                    ErrorMessages = createdUser.Errors.Select(x => x.Description)
                });
            }

            return(GenerateAuthResult(newUser));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Register([FromBody] UserRegistrationCommand request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new AuthFailureResponse
                {
                    ErrorMessages = ModelState.Values.SelectMany(x => x.Errors.Select(y => y.ErrorMessage))
                }));
            }

            var authResponse = await _identityService.RegisterAsync(request);

            if (!authResponse.Success)
            {
                return(BadRequest(new AuthFailureResponse
                {
                    ErrorMessages = authResponse.ErrorMessages
                }));
            }

            return(Ok(new AuthSuccessResponse
            {
                Token = authResponse.Token
            }));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Registration(UserRegistrationCommand appUserCommand)
        {
            var response = await _mediator.Send(appUserCommand);

            if ((bool)response.isValid)
            {
                Session["user-id"] = response.Id;
            }
            return(RedirectToAction("Verification"));
        }
Ejemplo n.º 4
0
        public static async Task SeedEssentialsAsync(IMediator mediator, IIdentityService userService, RoleManager <IdentityRole> roleManager)
        {
            // Seeding roles
            foreach (var role in Enum.GetNames(typeof(Roles)))
            {
                if (!await roleManager.RoleExistsAsync(role))
                {
                    await roleManager.CreateAsync(new IdentityRole(role));
                }
            }

            var defaultAdminRegCmd = new UserRegistrationCommand()
            {
                FirstName = "Default",
                LastName  = "Admin",
                Password  = "******",
                UserName  = "******"
            };

            // Seeding default admin
            await mediator.Send(defaultAdminRegCmd);

            var changeRoleRequest = new ChangeRoleRequest()
            {
                Role     = Roles.Admin.ToString(),
                UserName = defaultAdminRegCmd.UserName
            };

            // Adding Admin role
            await userService.ChangeRoleAsync(changeRoleRequest, RoleActions.Add);

            var defaultReaderRegCmd = new UserRegistrationCommand()
            {
                FirstName = "Default",
                LastName  = "Reader",
                Password  = "******",
                UserName  = "******"
            };

            // Seeding default user
            await mediator.Send(defaultReaderRegCmd);
        }
Ejemplo n.º 5
0
        public async Task <RequestResult> RegisterAsync(UserRegistrationCommand data)
        {
            var username = await _userManager.FindByNameAsync(data.UserName);

            if (username != null)
            {
                return(RequestResult.Fail(RequestError.AlreadyExists, $"User with username {data.UserName} already registered"));
            }

            var user   = _mapper.Map <UserRegistrationCommand, AppUser>(data);
            var result = await _userManager.CreateAsync(user, data.Password);

            if (result.Succeeded)
            {
                await _userManager.AddToRoleAsync(user, Roles.Reader.ToString());

                return(RequestResult.Success());
            }

            else
            {
                return(RequestResult.Fail(RequestError.ValidationError, result.Errors.Select(e => e.Description)));
            }
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Register(UserRegistrationCommand data) // Ok
        {
            var result = await Mediator.Send(data);

            return(result.Succeeded ? NoContent() : (ActionResult)BadRequest(result.ErrorsToString()));
        }
 public UserRegistrationViewModel()
 {
     UserRegistrationCommand  = new UserRegistrationCommand(this);
     UserLoginPageShowCommand = new UserLoginPageShowCommand(this);
 }
Ejemplo n.º 8
0
 public async Task <IActionResult> SignUp([FromBody] UserRegistrationCommand command)
 {
     return(Ok(await _mediator.Send(command)));
 }
Ejemplo n.º 9
0
 private bool ValidateIsAdmin(UserRegistrationCommand request)
 => request.AdminKey != null &&
 _configuration.GetValue <string>("AdminKey").Equals(request.AdminKey);