public async Task <IActionResult> RegisterAdminAsync(UserToRegisterDto userToRegister)
        {
            if (ModelState.IsValid)
            {
                UserModel user = new AdminModel
                {
                    UserName = userToRegister.Username,
                    Email    = userToRegister.EmailAddress
                };

                IServiceResult <UserModel> registerResult = await _authService.RegisterAsync(user, userToRegister.Password, Url);

                if (registerResult.Result == ResultType.Created)
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest(registerResult.Errors));
                }
            }
            else
            {
                return(BadRequest(ModelState.Values));
            }
        }
        public async Task <IActionResult> Register([FromBody] UserToRegisterDto userToRegister)
        {
            if (!string.IsNullOrEmpty(userToRegister.UserName))
            {
                userToRegister.UserName = userToRegister.UserName.ToLowerInvariant();
            }

            if (await _repo.UserExists(userToRegister.UserName))
            {
                ModelState.AddModelError("UserName", "User name already exists");
            }

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

            var userToCreate = new User
            {
                UserName = userToRegister.UserName
            };

            var createUser = await _repo.Register(userToCreate, userToRegister.Password);

            return(StatusCode(201));
        }
        public async Task <IActionResult> SignUp(UserToRegisterDto userToRegister)
        {
            if (string.IsNullOrEmpty(userToRegister.Email))
            {
                return(Problem("User email address is missing!", null, 404));
            }

            var user = await _userManager.FindByEmailAsync(userToRegister.Email);

            if (user != null)
            {
                return(Problem("User already exists, please try with a different email address!", null, 500));
            }

            user = new User
            {
                Id       = Guid.NewGuid().ToString(),
                Email    = userToRegister.Email,
                UserName = userToRegister.Email,
            };

            var userCreateResult = await _userManager.CreateAsync(user, userToRegister.Password);

            if (userCreateResult.Succeeded)
            {
                var userToReturn = _mapper.Map <UserAuthDto>(user);
                return(CreatedAtRoute("GetUserRoute", new { id = user.Id },
                                      new { Status = StatusCode(201), User = userToReturn, token = GenerateJwt(user) }));
            }

            return(Problem(userCreateResult.Errors.First().Description, null, 500));
        }
Exemple #4
0
        public async Task <IActionResult> Register(UserToRegisterDto userForRegister)
        {
            //validate request
            string usernameFormatted = userForRegister.Username.ToLower();
            bool   userExists        = await this.authRepository.UserExists(userForRegister.Username);

            //Check if user exists
            if (userExists)
            {
                return(BadRequest("Username Already Exists"));
            }

            //Create new User Instance
            var userToCreate = new User {
                Username = userForRegister.Username
            };

            //Create User
            var createdUser = await this.authRepository.Register(userToCreate, userForRegister.Password);

            //Check if user exists
            if (createdUser == null)
            {
                return(Unauthorized());
            }

            var userContext = this.mapper.Map <UserContextDTO>(createdUser);

            userContext.Token = GenerateAuthToken(createdUser);

            //Write token into response sent to client
            return(Ok(userContext));
        }
Exemple #5
0
        public async Task <ActionResult <UserToReturnDto> > Register(UserToRegisterDto registerDto)
        {
            if (CheckEmailExistsAsync(registerDto.Email).Result.Value)
            {
                return(new BadRequestObjectResult(new ApiValidationErrorResponse {
                    Errors = new[] { "Пользователь уже существует" }
                }));
            }

            var user = new AppUser
            {
                DisplayName = registerDto.DisplayName,
                Email       = registerDto.Email,
                UserName    = registerDto.Email
            };

            var result = await _userManager.CreateAsync(user, registerDto.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(new ApiResponse(400)));
            }

            return(new UserToReturnDto
            {
                Email = user.Email,
                Token = _tokenService.CreateToken(user),
                DisplayName = user.DisplayName
            });
        }
        public async Task <IActionResult> RegisterUser(UserToRegisterDto userToRegister)
        {
            if (!await _userService.FindUserAsync(userToRegister.Name))
            {
                await _userService.RegisterUserAsync(userToRegister);

                return(Ok());
            }
            return(BadRequest("Username already exists"));
        }
Exemple #7
0
        public async Task <IActionResult> register(UserToRegisterDto userToRegisterDto)
        {
            User user = await _userRepo.createUser(userToRegisterDto.username, userToRegisterDto.password, userToRegisterDto.email);

            if (user == null)
            {
                return(BadRequest("User with duplicated data allready exists"));
            }
            await _userRepo.SaveAll();

            return(Ok("Registration completed"));
        }
Exemple #8
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            var userToCreate = _mapper.Map <User>(userToRegisterDto);

            var result = await _userManager.CreateAsync(userToCreate, userToRegisterDto.Password);

            if (result.Succeeded)
            {
                return(StatusCode(201));
            }

            return(BadRequest(result.Errors));
        }
Exemple #9
0
        public async Task <ActionResult <UserWithTokenDto> > Register([FromForm] UserToRegisterDto userToRegister)
        {
            var registeredUser = await _userService.RegisterUserAsync(userToRegister);

            if (registeredUser.HasError)
            {
                // Showing modal view message
                ViewData["modalMessage"] = registeredUser.Message;

                return(View());
            }

            return(View("UserCreatedSuccesfully"));
        }
Exemple #10
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.UserName = userToRegisterDto.UserName.ToLower();
            if (await _repo.UserExists(userToRegisterDto.UserName))
            {
                return(BadRequest("User already exists"));
            }
            var userToCreate = new User()
            {
                UserName = userToRegisterDto.UserName
            };
            var user = await _repo.Register(userToCreate, userToRegisterDto.Password);

            return(Ok());
        }
Exemple #11
0
        public async Task <IActionResult> Register(UserToRegisterDto dto)
        {
            dto.Username = dto.Username.ToLower();
            if (await _authRepository.UserExists(dto.Username))
            {
                return(BadRequest("Username already exists"));
            }

            var userToRegister = _mapper.Map <User>(dto);
            var registeredUser = await _authRepository.Register(userToRegister, dto.Password);

            var userToReturn = _mapper.Map <UserForDetailedDto>(registeredUser);

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = registeredUser.Id }, userToReturn));
        }
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            var userToCreate = _mapper.Map <User>(userToRegisterDto);

            var result = await _userManager.CreateAsync(userToCreate, userToRegisterDto.Password);

            var userToReturn = _mapper.Map <UserForDetailedDto>(userToCreate);

            if (result.Succeeded)
            {
                return(CreatedAtRoute("GetUser", new { controller = "User", id = userToCreate.Id }, userToReturn)); //Getuser from user controller
            }

            return(BadRequest(result.Errors));
        }
        public IActionResult Register(UserToRegisterDto userToRegister)
        {
            if (_repo.UserExists(userToRegister.username))
            {
                return(BadRequest("username already exists"));
            }
            var registeredUser = _repo.Register(userToRegister);

            if (registeredUser == null)
            {
                return(BadRequest("unable to register user"));
            }

            return(Ok(registeredUser));
        }
Exemple #14
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();

            if (await _repo.UserExists(userToRegisterDto.Username))
            {
                return(BadRequest("User with that username already exists"));
            }

            var userToCreate = _mapper.Map <User>(userToRegisterDto);
            var createdUser  = await _repo.Register(userToCreate, userToRegisterDto.Password);

            var userToReturn = _mapper.Map <UserForDetailedDto>(createdUser);

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn));
        }
Exemple #15
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();
            if (await _repo.UserExist(userToRegisterDto.Username))
            {
                return(BadRequest("User Name already Exists"));
            }
            var userToCreate = _mapper.Map <User>(userToRegisterDto);
            var Createduser  = await _repo.Register(userToCreate, userToRegisterDto.Password);

            return(StatusCode(201));
        }
        public async Task <IActionResult> Register(UserToRegisterDto user)
        {
            User userToCreate = _mapper.Map <User>(user);
            var  result       = await _userManager.CreateAsync(userToCreate, user.Password);

            var userToReturn = _mapper.Map <UserToReturn>(userToCreate);

            if (result.Succeeded)
            {
                return(CreatedAtRoute("GetUser", new {
                    Controller = "Users", id = userToCreate.Id
                }, userToReturn));
            }

            return(BadRequest(result.Errors));
        }
        public async Task <IActionResult> Register(UserToRegisterDto userToRegister)
        {
            userToRegister.Login = userToRegister.Login.ToLower();

            if (await _repo.UserExists(userToRegister.Login))
            {
                return(BadRequest("This user alreade exists!"));
            }

            var userToCreateBlueprint = new User {
                Login = userToRegister.Login, IsAdmin = false
            };
            var createdUser = await _repo.Register(userToCreateBlueprint, userToRegister.Password);

            return(StatusCode(201));
        }
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.Login = userToRegisterDto.Login.ToLower();

            if (await _repository.UserExists(userToRegisterDto.Login))
            {
                return(BadRequest("Użytkownik już istnieje!"));
            }

            var userToCreate = new UserEntity {
                Login = userToRegisterDto.Login, IsAdmin = false
            };
            await _repository.Register(userToCreate, userToRegisterDto.Password);

            return(StatusCode(201));
        }
Exemple #19
0
        public async Task <IActionResult> Register([FromBody] UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();

            if (await _authRepository.UserExists(userToRegisterDto.Username))
            {
                return(BadRequest("Username already registered"));
            }

            var user = new User {
                Username = userToRegisterDto.Username
            };

            var CreatedUser = await _authRepository.Register(user, userToRegisterDto.Password);

            return(StatusCode(201));
        }
Exemple #20
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();
            if (await _authRepository.UserExist(userToRegisterDto.Username))
            {
                return(BadRequest("User exists"));
            }

            var userToCreate = new User()
            {
                Name = userToRegisterDto.Username
            };

            var createdUser = await _authRepository.Register(userToCreate, userToRegisterDto.Password);

            return(StatusCode(201));
        }
Exemple #21
0
        public async Task <UserActionResult> RegisterUserAsync(UserToRegisterDto userToRegister, ERoles role = ERoles.User)
        {
            // Checking if user exist
            if (await CheckUserExistAync(userToRegister.Email))
            {
                string messageFailed = $"User with email '{userToRegister.Email}'";
                _logger.LogWarning(messageFailed);
                return(InitResult(0, null, true, messageFailed));
            }

            // Adding crypto service to generate salt and use hashing
            using var hmac = new HMACSHA512();

            var user = new EUser
            {
                FirstName    = userToRegister.FirstName,
                LastName     = userToRegister.LastName,
                Email        = userToRegister.Email.ToLower(),
                PasswordSalt = hmac.Key,
                PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(userToRegister.Password)),
                CreatedUTC   = DateTime.UtcNow
            };

            // Create user
            await _dbcontext.Users.AddAsync(user);

            await _dbcontext.SaveChangesAsync();

            var userRole = new ERole
            {
                EUserId = user.id,
                Role    = userToRegister.Email == "admin@localhost" ? ERoles.Administrator : ERoles.User,
                EUser   = user
            };

            // Assign user role
            await _dbcontext.Roles.AddAsync(userRole);

            await _dbcontext.SaveChangesAsync();

            string messageSeccess = $"User '{userToRegister.Email}' has been registered.";

            _logger.LogInformation(messageSeccess);

            return(InitResult(user.id, null, false, messageSeccess));
        }
Exemple #22
0
        public async Task <IActionResult> Register(UserToRegisterDto userForRegisterDto)
        {
            //validate request
            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();
            if (await _repo.UserExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username Already Exist"));
            }

            var userToCreate = new User
            {
                Username = userForRegisterDto.Username
            };
            var createdUser = await _repo.Register(userToCreate, userForRegisterDto.password);

            return(StatusCode(201));
        }
Exemple #23
0
        public async Task <IActionResult> Register(UserToRegisterDto usertoregister)
        {
            usertoregister.Username = usertoregister.Username.ToLower();

            if (await _repo.UserExists(usertoregister.Username))
            {
                return(BadRequest("Username already exists"));
            }

            var UserToCreate = new User {
                Username = usertoregister.Username
            };

            var createdUser = await _repo.Register(UserToCreate, usertoregister.Password);

            return(StatusCode(201));
        }
Exemple #24
0
        public async Task <IActionResult> RegisterAsync(UserToRegisterDto userToRegister)
        {
            if (ModelState.IsValid)
            {
                IServiceResult registrationResult = await _authService.RegisterAsync(userToRegister);

                if (registrationResult.Result == ResultType.Correct)
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest(registrationResult.Errors));
                }
            }

            return(BadRequest());
        }
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.UserName = userToRegisterDto.UserName.ToLower();

            if (await _authRepository.UserExists(userToRegisterDto.UserName))
            {
                return(BadRequest("Username already exists"));
            }

            var userToRegister = _mapper.Map <User>(userToRegisterDto);

            var createdUser = await _authRepository.Register(userToRegister, userToRegisterDto.Password);

            var userToReturn = _mapper.Map <UserDto>(createdUser);

            return(Created("", userToReturn));
            //return CreatedAtRoute("GetUser", new { ControllerContext = "Users", id = userToReturn.Id }, userToReturn);
        }
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            //We dont need ModelState.IsValid() because [ApiController] takes care of validation

            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();

            if (await _repo.UserExists(userToRegisterDto.Username))
            {
                return(BadRequest("User already Exists."));
            }

            var userToCreate = _mapper.Map <User>(userToRegisterDto);

            var createdUser = await _repo.Register(userToCreate, userToRegisterDto.Password);

            var userToReturn = _mapper.Map <UserForDetailedDto>(userToCreate);

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn));
        }
Exemple #27
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();

            if (await _auth.UserExists(userToRegisterDto.Username))
            {
                return(BadRequest("User already exists"));
            }

            var userToCreate = new User
            {
                Name = userToRegisterDto.Username
            };
            var userCreated = await _auth.Register(userToCreate, userToRegisterDto.Password);

            return(await Login(new
                               UserToLoginDto { UserName = userToCreate.Name, Password = userToRegisterDto.Password }
                               ));
        }
Exemple #28
0
        public async Task <IActionResult> Register([FromBody] UserToRegisterDto userToRegisterDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();
            if (await _repo.UserExists(userToRegisterDto.Username))
            {
                return(BadRequest("user already exists"));
            }
            //var userToCreate = new User() { Username = userToRegisterDto.Username };
            var userToCreate = _mapper.Map <User>(userToRegisterDto);
            var createdUser  = await _repo.Register(userToCreate, userToRegisterDto.Password);

            var userToReturn = _mapper.Map <UserForDetailedDto>(createdUser);

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn));
        }
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            //To validate

            userToRegisterDto.Username = userToRegisterDto.Username.ToLower();
            if (await _repo.UserExists(userToRegisterDto.Username))
            {
                return(BadRequest("User already exists"));
            }

            var toCreateUser = new User()
            {
                Username = userToRegisterDto.Username
            };

            var createdUser = await _repo.Register(toCreateUser, userToRegisterDto.Password);

            return(StatusCode(201));
        }
Exemple #30
0
        public async Task <IActionResult> Register(UserToRegisterDto userToRegisterDto)
        {
            // jeżeli nie było by [ApiController] w celu validacji należy dodać do parametru atrybut [FromBody]
            // a w obsłudze validacji
            // if (!ModelState.IsValid)
            //     return BadRequest(ModelState);

            userToRegisterDto.UserName = userToRegisterDto.UserName.ToLower();
            if (await repo.UserExist(userToRegisterDto.UserName))
            {
                return(BadRequest("Uzytkownik o takim loginie już istnieje"));
            }

            var userToCreate = new User
            {
                UserName = userToRegisterDto.UserName
            };
            var createUser = await repo.Register(userToCreate, userToRegisterDto.Password);

            return(StatusCode(201));
        }