Example #1
0
        public async Task <IActionResult> Register([FromBody] UserForRegistrationDTO userToRegisterDTO)
        {
            if (!string.IsNullOrEmpty(userToRegisterDTO.Username))
            {
                userToRegisterDTO.Username = userToRegisterDTO.Username.ToLower();
            }
            //Validate Request
            if (await _repo.UserExists(userToRegisterDTO.Username))
            {
                ModelState.AddModelError("Username", "Username is already taken");
            }

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



            var userToCreate = new User
            {
                Username = userToRegisterDTO.Username
            };

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

            return(StatusCode(201));
        }
        public async Task <IActionResult> RegisterUser([FromBody] UserForRegistrationDTO userForRegistration)
        {
            if (userForRegistration.Roles.Contains("Administrator"))
            {
                return(BadRequest("Access denied"));
            }

            var user = _mapper.Map <User>(userForRegistration);

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

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.TryAddModelError(error.Code, error.Description);
                }

                return(BadRequest(ModelState));
            }

            await _userManager.AddToRolesAsync(user, userForRegistration.Roles);

            return(StatusCode(201));
        }
Example #3
0
        public async Task <IActionResult> Register(UserForRegistrationDTO userForRegistration)
        {
            var userToCreate = _mapper.Map <User>(userForRegistration);
            var result       = await _userManager.CreateAsync(userToCreate, userForRegistration.Password);

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

            if (result.Succeeded)
            {
                return(CreatedAtRoute("GetUser", new { Controller = "users", id = userToCreate.Id }, userToReturn));
            }
            return(BadRequest(result.Errors));
        }
Example #4
0
        public async Task <IActionResult> Register(UserForRegistrationDTO userForRegistrationDTO)
        {
            var exists = await _repo.UserExists(userForRegistrationDTO.UserName);

            if (exists)
            {
                return(BadRequest("we have that user in our repo !"));
            }

            var user = await _repo.Register(new User()
            {
                UserName = userForRegistrationDTO.UserName
            }, userForRegistrationDTO.Passwor);

            return(StatusCode(201));
        }
        public async Task <IActionResult> Register(UserForRegistrationDTO userForRegistrationDTO)
        {
            userForRegistrationDTO.Username = userForRegistrationDTO.Username.ToLower();

            if (await _repo.UserExists(userForRegistrationDTO.Username))
            {
                return(BadRequest("Username already exist."));
            }

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

            var userToReturn = mapper.Map <UserForDetailedDTO>(createdUser);

            return(CreatedAtRoute("GetUser", new { controoler = "Users", id = createdUser.Id }, userToReturn));
        }
Example #6
0
        public async Task <IActionResult> Register([FromBody] UserForRegistrationDTO userForRegistrationDTO)
        {
            if (!await _roleManager.RoleExistsAsync(Role.AdminUsr))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.AdminUsr));
            }
            if (!await _roleManager.RoleExistsAsync(Role.AreaManagerUsr))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.AreaManagerUsr));
            }
            if (!await _roleManager.RoleExistsAsync(Role.GeneralUsr))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.GeneralUsr));
            }

            var userToCreate = new AppUser
            {
                UserName = userForRegistrationDTO.UserName,
                Email    = userForRegistrationDTO.UserName,
                Name     = userForRegistrationDTO.FullName
            };

            // if(!ModelState.IsValid)
            // {
            //     return BadRequest(userToCreate);
            // }
            if (await _userManager.FindByNameAsync(userForRegistrationDTO.UserName) != null)
            {
                return(BadRequest("User name already exists!"));
            }
            var createdUser = await _userManager.CreateAsync(userToCreate, userForRegistrationDTO.Password);

            if (createdUser.Succeeded)
            {
                if (userForRegistrationDTO.Role == "Rescuer")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.GeneralUsr);
                }
                if (userForRegistrationDTO.Role == "Manager")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.AreaManagerUsr);
                }
                return(Ok(createdUser));
            }
            //Create User
            return(BadRequest(ModelState));
        }
        public async Task <ResponseDTO> RegisterUser(UserForRegistrationDTO userForRegistrationDto)
        {
            var response = await _client.PostAsJsonAsync("Account/register", userForRegistrationDto);

            if (!response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();

                var result = JsonSerializer.Deserialize <ResponseDTO>(content, _options);

                return(result);
            }

            return(new ResponseDTO {
                IsSuccessfulRegistration = true
            });
        }
Example #8
0
        public async Task <IActionResult> Register([FromBody] UserForRegistrationDTO model)
        {
            model.Username = model.Username.ToLower();

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

            var newUser = _mapper.Map <User>(model);

            await _authRepository.Register(newUser, model.Password);

            var userToReturn = _mapper.Map <UserForDetailsDTO>(newUser);

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = newUser.Id }, userToReturn));
        }
Example #9
0
        public async Task <IActionResult> register(UserForRegistrationDTO userDto) //n background .net'i e bind( e krijon instancen edhe ja jep vlerat qe ja qojm n request)
        {
            userDto.Username = userDto.Username.ToLower();

            if (await repo.userExists(userDto.Username))
            {
                return(BadRequest("Username already exists"));
            }

            var userToCreate = new User
            {
                Username = userDto.Username
            };

            var createdUser = await repo.register(userToCreate, userDto.Password);

            return(StatusCode(201));
        }
Example #10
0
        public async Task <IActionResult> Registration(UserForRegistrationDTO userRegistrationDto)
        {
            //role create
            if (!await _roleManager.RoleExistsAsync(Role.SuperAdmin))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.SuperAdmin));
            }
            if (!await _roleManager.RoleExistsAsync(Role.User))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.User));
            }

            //create user
            var userForCreate = new AppUser
            {
                UserName = userRegistrationDto.UserName,
                Email    = userRegistrationDto.Email
            };

            if (await _userManager.FindByEmailAsync(userRegistrationDto.Email) != null)
            {
                return(BadRequest("this email already used"));
            }
            var createdUser = await _userManager.CreateAsync(userForCreate, userRegistrationDto.Password);

            // role assign
            if (createdUser.Succeeded)
            {
                if (userRegistrationDto.Role == "Admin")
                {
                    await _userManager.AddToRoleAsync(userForCreate, Role.SuperAdmin);
                }
                else if (userRegistrationDto.Role == "User")
                {
                    await _userManager.AddToRoleAsync(userForCreate, Role.User);
                }
                else
                {
                    return(BadRequest("role is not matched"));
                }
                return(Ok(createdUser));
            }
            return(BadRequest(ModelState));
        }
Example #11
0
        public async Task <IActionResult> Register(UserForRegistrationDTO userForRegistrationDTO)
        {
            userForRegistrationDTO.Username = userForRegistrationDTO.Username.ToLower();

            //Verifica se o usuario existe no Banco
            if (await _repo.UserExists(userForRegistrationDTO.Username))
            {
                return(BadRequest("Usuario Cadastrado"));
            }

            //Passa o parametro recebido do usuario para o objeto do Model
            var UserToModel = new User
            {
                UserName = userForRegistrationDTO.Username
            };

            //Grava o objeto do Model no Banco de Dados
            var UserToBD = await _repo.Register(UserToModel, userForRegistrationDTO.Password);

            return(StatusCode(201));
        }
        public async Task <IActionResult> Register(UserForRegistrationDTO userForRegistrationDTO)
        {
            // convert username to lowercase for consistency
            userForRegistrationDTO.Username = userForRegistrationDTO.Username.ToLower();

            // check if user exists
            if (await _repository.UserExists(userForRegistrationDTO.Username))
            {
                return(BadRequest("Username already exists"));
            }

            // create the user
            var userToCreate = _mapper.Map <User>(userForRegistrationDTO);

            // Register the user
            var createdUser = await _repository.Register(userToCreate, userForRegistrationDTO.Password);

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

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn));
        }
        public async Task <IActionResult> RegisterUser([FromBody] UserForRegistrationDTO userForRegistrationDTO)
        {
            _logger.LogInformation($"Registration attempt for {userForRegistrationDTO.Email}");
            if (userForRegistrationDTO == null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new ApiUser
            {
                UserName = userForRegistrationDTO.Email,
                Email    = userForRegistrationDTO.Email
            };

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

            if (!result.Succeeded)
            {
                //foreach (var error in result.Errors)
                //{
                //    ModelState.AddModelError(error.Code, error.Description);
                //}
                //return BadRequest(ModelState);

                var errors = result.Errors.Select(e => e.Description);
                return(BadRequest(new ResponseDTO {
                    Errors = errors
                }));
            }

            await _userManager.AddToRoleAsync(user, "User");

            return(StatusCode(201));

            //_logger.LogError(ex, $"Something went wrong in the {nameof(RegisterUser)}");
            //return Problem($"Something went wrong in the {nameof(RegisterUser)}", statusCode: 500);
        }
Example #14
0
        public async Task <IActionResult> Registration(UserForRegistrationDTO userRegistrationDto)
        {
            //role create
            if (!await _roleManager.RoleExistsAsync(Role.SuperAdmin))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.SuperAdmin));
            }
            if (!await _roleManager.RoleExistsAsync(Role.User))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.User));
            }

            //create claim

            //create user
            var userForCreate = new AppUser
            {
                UserName = userRegistrationDto.UserName,
                Name     = userRegistrationDto.UserName,
                Email    = userRegistrationDto.Email
            };

            if (await _userManager.FindByEmailAsync(userRegistrationDto.Email) != null)
            {
                return(BadRequest("this email already used"));
            }
            if (userRegistrationDto.Role.Contains("Admin") || userRegistrationDto.Role.Contains("User"))
            {
                var createdUser = await _userManager.CreateAsync(userForCreate, userRegistrationDto.Password);

                // role assign
                if (createdUser.Succeeded)
                {
                    if (userRegistrationDto.Role.Contains("Admin"))
                    {
                        await _userManager.AddToRoleAsync(userForCreate, Role.SuperAdmin);
                    }
                    if (userRegistrationDto.Role.Contains("User"))
                    {
                        await _userManager.AddToRoleAsync(userForCreate, Role.User);

                        //  await _userManager.AddClaimAsync(userForCreate, new Claim("Create Role", "Create Role"));
                    }
                    else
                    {
                        return(BadRequest("role is not matched"));
                    }

                    // verify email address
                    var user = await _userManager.FindByEmailAsync(userRegistrationDto.Email);

                    var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var confirmationLink = Url.Action(nameof(ConfirmEmail), nameof(AuthController), new { token, email = user.Email }, Request.Scheme);
                    var message          = new Message(new string[] { user.Email }, "Confirmation email link", confirmationLink, null);
                    await _emailSender.SendEmailAsync(message);

                    return(Ok(new { createdUser, token }));
                }
                else
                {
                    return(StatusCode(400, createdUser.Errors));
                }
            }

            return(StatusCode(500, "Internal server error"));
        }
Example #15
0
        public async Task <IActionResult> Registration(UserForRegistrationDTO userForRegistrationDTO)
        {
            //SuperAdmin
            if (!await _roleManager.RoleExistsAsync(Role.SuperAdmin))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.SuperAdmin));
            }
            //CourierOwner
            if (!await _roleManager.RoleExistsAsync(Role.CourierOwner))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.CourierOwner));
            }
            //BookingOfficer
            if (!await _roleManager.RoleExistsAsync(Role.BookingOfficer))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.BookingOfficer));
            }
            //Marchant
            if (!await _roleManager.RoleExistsAsync(Role.Marchant))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.Marchant));
            }
            //DelivaryMan
            if (!await _roleManager.RoleExistsAsync(Role.DelivaryMan))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.DelivaryMan));
            }
            //Client
            if (!await _roleManager.RoleExistsAsync(Role.Client))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.Client));
            }

            //Create User Object
            var userToCreate = new AppUser
            {
                UserName = userForRegistrationDTO.UserName,
                Email    = userForRegistrationDTO.UserName
            };

            if (await _userManager.FindByNameAsync(userForRegistrationDTO.UserName) != null)
            {
                return(BadRequest("User name already exists!"));
            }

            var createdUser = await _userManager.CreateAsync(userToCreate, userForRegistrationDTO.Password);

            if (createdUser.Succeeded)
            {
                if (userForRegistrationDTO.Role == "SuperAdmin")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.SuperAdmin);
                }
                else if (userForRegistrationDTO.Role == "CourierOwner")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.CourierOwner);
                }
                else if (userForRegistrationDTO.Role == "Marchant")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.Marchant);
                }
                else if (userForRegistrationDTO.Role == "BookingOfficer")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.BookingOfficer);
                }
                else if (userForRegistrationDTO.Role == "DelivaryMan")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.DelivaryMan);
                }
                else if (userForRegistrationDTO.Role == "Client")
                {
                    await _userManager.AddToRoleAsync(userToCreate, Role.Client);
                }
                else
                {
                    return(BadRequest());
                }

                return(Ok(createdUser));
            }
            //Create User
            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> Registration(UserForRegistrationDTO userRegistrationDto)
        {
            //role create
            if (!await _roleManager.RoleExistsAsync(Role.SuperAdmin))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.SuperAdmin));
            }
            if (!await _roleManager.RoleExistsAsync(Role.User))
            {
                await _roleManager.CreateAsync(new IdentityRole(Role.User));
            }

            //create claim

            //create user
            var userForCreate = new AppUser
            {
                UserName    = userRegistrationDto.UserName,
                Name        = userRegistrationDto.UserName,
                Email       = userRegistrationDto.Email,
                Created     = DateTime.Now,
                LastActive  = DateTime.Now,
                Gender      = userRegistrationDto.Gender,
                DateOfBirth = userRegistrationDto.DateOfBirth
            };

            if (await _userManager.FindByEmailAsync(userRegistrationDto.Email) != null)
            {
                return(StatusCode(400, $"{userRegistrationDto.Email} email already used"));
            }
            if (userRegistrationDto.Role.Contains("Admin") || userRegistrationDto.Role.Contains("User"))
            {
                var createdUser = await _userManager.CreateAsync(userForCreate, userRegistrationDto.Password);

                // role assign
                if (createdUser.Succeeded)
                {
                    if (userRegistrationDto.Role.Contains("Admin"))
                    {
                        await _userManager.AddToRoleAsync(userForCreate, Role.SuperAdmin);
                    }
                    if (userRegistrationDto.Role.Contains("User"))
                    {
                        await _userManager.AddToRoleAsync(userForCreate, Role.User);

                        //  await _userManager.AddClaimAsync(userForCreate, new Claim("Create Role", "Create Role"));
                    }
                    else
                    {
                        return(BadRequest("role is not matched"));
                    }
                    return(StatusCode(200, createdUser));
                }
                else
                {
                    return(StatusCode(400, createdUser.Errors));
                }
            }

            return(StatusCode(500, "Internal server error"));
        }