Ejemplo n.º 1
0
        public async Task <IActionResult> AddAsync(NewUserInputModel input)
        {
            if (!ModelState.IsValid)
            {
                return(View(input));
            }

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

            user.UserName       = input.Email;
            user.EmailConfirmed = true;
            var result = await _userManager.CreateAsync(user, input.Password);

            if (result.Succeeded)
            {
                var claims = SecurityUtils.GetAdditionalClaims(user);
                if (claims.Count > 0)
                {
                    await _userManager.AddClaimsAsync(user, claims);
                }

                _logger.LogInformation("{user} created account for {newUser}", User.Identity.Name, input.Email);

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(View(input));
            }
        }
Ejemplo n.º 2
0
        public async Task <int> Create([FromBody] NewUserInputModel model)
        {
            var userConnectedId = int.Parse(HttpContext.User.Claims.First(_ => _.Type == ClaimTypes.NameIdentifier).Value);

            model.ParentUserId = userConnectedId;
            return((await _unitOfWork.SaveChangesAsync(_userWriterService.Save(model))).Id.Value);
        }
Ejemplo n.º 3
0
        public Response <AccountCreationOutputModel> CreateAccount([FromBody] NewUserInputModel newUserInput)
        {
            var response = this._sinukaWebAccountsEndpoints.AddUser(newUserInput);

            return(new Response <AccountCreationOutputModel>(new AccountCreationOutputModel()
            {
                IsCreated = response.Succeeded,
            }));
        }
 public async Task <IdentityResult> AddUser([FromBody] NewUserInputModel newUserInput)
 {
     return(await this._userManager.CreateAsync(new Sinuka.Core.Domains.Entities.User()
     {
         UserName = newUserInput.Username,
         PasswordHash = newUserInput.Password,
         PhoneNumber = newUserInput.PhoneNumber,
         Email = newUserInput.Email,
     }, newUserInput.Password));
 }
        public async Task <IdentityResult> AddUser([FromBody] NewUserInputModel newUserInput)
        {
            var user = new Sinuka.Core.Domains.Entities.User()
            {
                UserName     = newUserInput.Username,
                PasswordHash = newUserInput.Password,
                PhoneNumber  = newUserInput.PhoneNumber,
                Email        = newUserInput.Email,
            };
            var result = await this._userManager.CreateAsync(user, newUserInput.Password);

            await this._userManager.AddToRoleAsync(user, Sinuka.Core.Domains.Constants.UserRoleTypes.StudentApplicant);

            return(result);
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Register([FromBody] NewUserInputModel newUser)
        {
            try
            {
                var userProfileDto    = newUser.ConvertToUserProfile();
                var userCreatedResult = await _mediator.Send(new NewUserCommand(userProfileDto, newUser.Password));

                return(Ok());
            }
            catch (UserException userEx)
            {
                return(BadRequest(userEx.Message));
            }
            catch (System.Exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }
Ejemplo n.º 7
0
 public IdentityResult AddUser(NewUserInputModel newUserInput)
 {
     return(this._sinukaWebAccountsEndpoint.AddUser(newUserInput));
 }
Ejemplo n.º 8
0
        public async Task <IActionResult> RegisterUser([FromBody] NewUserInputModel model)
        {
            // search role
            var role = _roleManager.FindByIdAsync(model.RoleID).Result;

            var user = new AppUser
            {
                UserName       = model.UserName,
                Email          = model.Email,
                OrganizationID = model.OrgID,
                EmailConfirmed = false,
                PhoneNumber    = model.PhoneNumber
            };

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

            if (result.Succeeded)
            {
                // code for adding user to role
                await _userManager.AddToRoleAsync(user, role.Name);

                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));

                var uriBuilder = new UriBuilder(model.BaseUrl + "/confirm");
                var parameters = HttpUtility.ParseQueryString(string.Empty);
                parameters["userId"] = user.Id.ToString();
                parameters["code"]   = code;
                uriBuilder.Query     = parameters.ToString();

                Uri finalUrl = uriBuilder.Uri;

                AccountVerificationData verificationData = new AccountVerificationData
                {
                    UserName = model.UserName,
                    SiteName = _config.Value.SolutionName,
                    BaseUrl  = finalUrl.AbsoluteUri,
                    Title    = "APlus Account Verification",
                    SiteUrl  = _config.Value.BaseURL
                };

                await _emailSender.SendEmailAsync(model.Email, "APlus Account Verification", DataFormatManager.GetFormatedAccountVerificationEmailTemplate(verificationData, _hostingEnvironment.ContentRootPath + _templateParams.Value.AccountVerificationTemplate));

                return(Ok(new
                {
                    result = true,
                    message = ""
                }));
            }
            else
            {
                List <string> list = new List <string>();
                foreach (var error in result.Errors)
                {
                    list.Add(error.Description);
                }
                return(Ok(new
                {
                    result = false,
                    message = list
                }));
            }
        }
Ejemplo n.º 9
0
 public IdentityResult AddUser(NewUserInputModel newUserInput)
 {
     return(this._sinukaWebAccountsEndpoint.AddUser(newUserInput, LoginAndFetchToken()));
 }