public IActionResult Access([FromBody] LoginModel loginModel)
        {
            //verifica se usuário existe, se sim gera o token
            if (!ModelState.IsValid)
            {
                throw new ModelException(ModelState);
            }

            var userFromDb = _userRepository.GetByUsername(loginModel.Username);
            var password   = PasswordEncryptator.Encrypit(loginModel.Password);

            if (userFromDb == null || userFromDb.Password != password)
            {
                throw new ErrorException("Username or Password incorrect.");
            }

            //This is just an example of how to SingIn using cookie atuh mode.
            //var claims = new List<Claim>
            //{
            //    new Claim(ClaimTypes.Name, userFromDb.Username),
            //    new Claim(ClaimTypes.GivenName, userFromDb.Name),
            //    new Claim(ClaimTypes.Role, userFromDb.Role.ToDescription())
            //};

            //var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            //HttpContext.SignInAsync(new ClaimsPrincipal(claimsIdentity));

            string token = TokenGenerator.Generate(userFromDb.Username, userFromDb.Role.ToString());

            return(Ok(CreateUserLogged(userFromDb, token)));
        }
Beispiel #2
0
        public IActionResult Update([FromBody] UserRegisterModel userRegister)
        {
            if (!ModelState.IsValid)
            {
                throw new ModelException(ModelState);
            }

            string username = HttpContext.User.Identity.Name;
            var    user     = _userRepository.GetByUsername(username);

            if (user == null)
            {
                throw new ErrorException(string.Format("User {0} not found.", username));
            }

            using (var unit = UnitOfWork.Start(HttpContext.RequestServices.GetService <ISessionFactoryInfra>()))
            {
                user.Name = userRegister.Name;
                if (userRegister.Password != EncrypedForDisplay)
                {
                    user.Password = PasswordEncryptator.Encrypit(userRegister.Password);
                }

                unit.Commit();
            }

            return(Ok());
        }
Beispiel #3
0
        public IActionResult Create([FromBody] UserRegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                throw new ModelException(ModelState);
            }

            using (var unit = UnitOfWork.Start(HttpContext.RequestServices.GetService <ISessionFactoryInfra>()))
            {
                if (_userRepository.VerifyUsernameExists(model.Username))
                {
                    throw new ErrorException("Username already exists.");
                }

                var user = new User();
                user.Name     = model.Name;
                user.Username = model.Username;
                user.Role     = model.Role;
                user.Password = PasswordEncryptator.Encrypit(model.Password);
                _userRepository.SaveOrUpdate(user);

                unit.Commit();

                return(Ok());
            }
        }
Beispiel #4
0
        public IActionResult Access([FromBody] LoginModel loginModel)
        {
            //verifica se usuário existe, se sim gera o token
            if (!ModelState.IsValid)
            {
                throw new ModelException(ModelState);
            }

            var userFromDb = _userRepository.GetByUsername(loginModel.Username);
            var password   = PasswordEncryptator.Encrypit(loginModel.Password);

            if (userFromDb == null || userFromDb.Password != password)
            {
                throw new ErrorException("Username or Password incorrect.");
            }

            string token = TokenGenerator.Generate(userFromDb.Username, userFromDb.Role.ToString());

            return(Ok(CreateUserLogged(userFromDb, token)));
        }
        public IActionResult Create([FromBody] UserRegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                throw new ModelException(ModelState);
            }

            if (_userRepository.VerifyUsernameExists(model.Username))
            {
                throw new ErrorException("Username already exists.");
            }

            var user = new User();

            user.Name     = model.Name;
            user.Username = model.Username;
            user.Role     = model.Role;
            user.Password = PasswordEncryptator.Encrypit(model.Password);
            _userRepository.SaveOrUpdate(user);

            return(Ok());
        }
        public IActionResult Update([FromBody] UserRegisterModel userRegister)
        {
            if (!ModelState.IsValid)
            {
                throw new ModelException(ModelState);
            }

            string username = HttpContext.User.Identity.Name;
            var    user     = _userRepository.GetByUsername(username);

            if (user == null)
            {
                throw new ErrorException(string.Format("User {0} not found.", username));
            }


            user.Name = userRegister.Name;
            if (userRegister.Password != EncrypedForDisplay)
            {
                user.Password = PasswordEncryptator.Encrypit(userRegister.Password);
            }

            return(Ok());
        }