public async Task <string> Signup(SignupParameters registerParameters)
        {
            var error = await _authorizationApi.Signup(registerParameters);

            SignalStateChange();
            return(error);
        }
Exemple #2
0
        public async Task <string> AcceptInvitation(Invitation invitation, SignupParameters parameters)
        {
            var user = await _userManager.FindByEmailAsync(invitation.To);

            var result = await _userManager.ConfirmEmailAsync(user, parameters.ConfirmationCode);

            if (!result.Succeeded) // the token might have expired
            {
                return(result.ToErrorString());
            }
            var resetPasswordToken = await _userManager.GeneratePasswordResetTokenAsync(user);

            Assert(await _userManager.ResetPasswordAsync(user, resetPasswordToken, parameters.Password));
            user.UserName = parameters.UserName;
            user.Memberships.Add(new Membership
            {
                CircleId = Circle.OpenCircleId
            });
            invitation.AcceptedAt = DateTimeOffset.UtcNow;
            return(null); // success
        }
        public async Task <IActionResult> Signup(SignupParameters parameters)
        {
            var invitation = await _db.Invitations.SingleFirstOrDefaultAsync(i => i.To == parameters.Email);

            if (invitation == null)
            {
                _logger.LogWarning($"Signup attempt with invalid invitation e-mail: {parameters.Email}."); // FIXME: da, rather throw security event with request origin details (IP, port, ...)
                return(NotFound("Invitation not found."));
            }

            var error = await _invitationService.AcceptInvitation(invitation, parameters);

            if (!string.IsNullOrEmpty(error))
            {
                return(BadRequest(error));
            }
            await _db.SaveChangesAsync();

            return(await Login(new LoginParameters
            {
                Email = parameters.Email,
                Password = parameters.Password
            }));
        }
Exemple #4
0
 public async Task <string> Signup(SignupParameters signupParameters)
 {
     return(await _httpClient.PostAsync(Urls.PostSignup, signupParameters));
 }