public async Task <IActionResult> RegisterStudent(StudentDTO st)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Fill all fields" }));
            }
            var student = new Student()
            {
                FirstName = st.FirstName,
                LastName  = st.LastName,
                Email     = st.Email,
                Role      = "user",
            };

            if (await _authRepos.UserExists(student))
            {
                return(BadRequest(new { message = "This user already exists" }));
            }
            student = await _authRepos.Register(student, st.Password);

            if (student == null)
            {
                return(BadRequest(new { message = "Oops, failed to register" }));
            }
            var identity = await CreateIdentity(st.Email, st.Password);

            string token = TokenCreatingService.CreateToken(identity, out string identityName, Configuration);

            HttpContext.Session.SetString("Token", token);
            HttpContext.Session.SetInt32("Id", student.StudentId);
            HttpContext.Session.SetString("Name", student.FirstName);
            HttpContext.Session.SetString("Role", student.Role);
            return(Ok(new { token = token, name = identityName }));
        }
        public CommandResult Register(UserRegisterCommand command)
        {
            var exist = _repository.Exists(command.Username);

            if (exist)
            {
                AddNotification("Já existe um Usuario cadastrado com esse Nome. ");
            }

            var user = new UserAuth(command.Username, command.Password);

            AddNotifications(user);

            if (Invalid)
            {
                return(new CommandResult(false, GroupNotifications.Group(Notifications), command));
            }

            // Add Hash e Salt
            var salt = Salt.Create();
            var hash = Hash.Create(user.Password, salt);

            if (!Hash.Validate(user.Password, salt, hash))
            {
                AddNotification("Erro na geração do Hash. ");
            }

            user.AddHash(hash, Convert.ToBase64String(salt));

            _repository.Register(user);

            var log = new AccessLog(
                "Register",
                DateTime.Now,
                "auto registro",
                "UserAuth",
                $"Nome usuario registrado: {command.Username}");

            _log.Register(log);

            user.HidePassword();

            return(new CommandResult(true, "Cadastro realizado. ", user));
        }
Beispiel #3
0
        public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();
            if (await _repo.IsUserExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username already exist."));
            }
            User user        = _mapper.Map <User>(userForRegisterDto);
            var  createdUser = await _repo.Register(user, userForRegisterDto.Password);

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

            return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn));
        }
Beispiel #4
0
        public async Task <IActionResult> RegisterEmployer(EmployerDTO em)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Fill all fields" }));
            }
            var employer = new Employer()
            {
                FirstName   = em.FirstName,
                LastName    = em.LastName,
                Email       = em.Email,
                Role        = "user",
                CompanyName = em.CompanyName
            };
            var company = await _companyRepos.GetCompanyByName(em.CompanyName);

            if (company == null)
            {
                return(BadRequest(new { message = "Such company doesn't exist" }));
            }
            if (await _authRepos.UserExists(employer))
            {
                return(BadRequest(new { message = "This user already exists" }));
            }
            employer.CompanyId   = company.CompanyId;
            employer.CompanyName = company.Name;
            employer             = await _authRepos.Register(employer, em.Password);

            if (employer == null)
            {
                return(BadRequest(new { message = "Failed to register" }));
            }
            var identity = await CreateEmployerIdentity(em.Email, em.Password);

            string token = TokenCreatingService.CreateToken(identity, out string identityName, Configuration);

            HttpContext.Session.SetString("Token", token);
            HttpContext.Session.SetInt32("Id", employer.EmployerId);
            HttpContext.Session.SetString("Name", employer.FirstName);
            HttpContext.Session.SetString("Company", employer.CompanyName);
            return(Ok(new { token = token, name = identityName }));
        }