Example #1
0
        public void Update(UserDTOIn userParam, string password = null)
        {
            var user = _context.Users.Find(userParam.Id);

            if (user == null)
            {
                throw new AppException("User not found");
            }

            if (userParam.Username != user.Username)
            {   //this is used in case the user is changing his username to an existing username
                if (_context.Users.Any(x => x.Username == userParam.Username))
                {
                    throw new AppException($"Username {userParam.Username} is already taken");
                }
            }

            user.Firstname = userParam.Firstname;
            user.Lastname  = userParam.Lastname;
            user.Username  = userParam.Username;

            if (string.IsNullOrEmpty(password))
            {
                byte[] passwordHash, passwordSalt;
                CreatePasswordHash(password, out passwordHash, out passwordSalt);

                user.PasswordHash = passwordHash;
                user.PasswordSalt = passwordSalt;
            }

            _context.Users.Update(user);
            _context.SaveChanges();
        }
Example #2
0
        public IActionResult Authenticate([FromBody] UserDTOIn userInfo)
        {
            var user = _userService.Authenticate(userInfo.Username, userInfo.Password);

            if (user == null)
            {
                return(BadRequest(new { messsage = "Username or Password is incorrect" }));
            }

            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(_appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Id.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };

            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            user.Token = tokenString;

            return(Ok(user));
        }
Example #3
0
 public IActionResult Register([FromBody] UserDTOIn userDTO)
 {
     try
     {
         _userService.Create(_mapper.Map <UserDTOIn, DBUser>(userDTO), userDTO.Password);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(new { message = ex.Message }));
     }
 }
Example #4
0
        public IActionResult Update(int id, [FromBody] UserDTOIn userDto)
        {
            userDto.Id = id;

            try
            {
                _userService.Update(userDto, userDto.Password);
                return(Ok());
            }
            catch (AppException ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }