Exemple #1
0
        public async Task <IActionResult> ChangeAccount(AccountChangeRequest accountChangeRequest)
        {
            Guid userId = _claimsService.GetGuidClaim(HttpContext.User, EClaimTypes.UserId).Value;

            await _authService.ChangeAccount(userId, accountChangeRequest);

            return(Ok());
        }
        public IActionResult CreateRequest([FromBody] AccountChangeRequest request)
        {
            var requestModel = request.ToAccountRequestModel();

            var accountRequest = _accountRequestController.Create(requestModel);

            if (request != null)
            {
                var metadata = accountRequest.ToMetadata();
                return(new ObjectResult(metadata));
            }
            throw new Exception("Unable to create request");
        }
Exemple #3
0
        public async Task ChangeAccount(Guid userId, AccountChangeRequest accountChangeRequest)
        {
            ApplicationUser user = await _userManager.FindByIdAsync(userId.ToString());

            user.UserName = accountChangeRequest.Username;
            user.Email    = accountChangeRequest.Email;

            await _userManager.UpdateAsync(user);

            await _userManager.UpdateNormalizedEmailAsync(user);

            await _userManager.UpdateNormalizedUserNameAsync(user);
        }
Exemple #4
0
        public static AccountRequest ToAccountRequestModel(this AccountChangeRequest accountContract)
        {
            var metadata = new Metadata(accountContract.Metadata.ToString());

            return(new AccountRequest()
            {
                PlayerId = metadata.PlayerId,
                Username = metadata.Username,
                MemberType = metadata.MemberType,
                Region = metadata.Region,
                Reason = metadata.Reason
            });
        }
        public void SetValidatorRequestAprroval([FromBody] AccountChangeRequest request, [FromRoute] bool accept)
        {
            var requestModel = request.ToAccountRequestModel();

            var accountRequest = _accountRequestController.Get(requestModel.PlayerId, requestModel.Region);

            if (accountRequest != null)
            {
                if (accept)
                {
                    _accountRequestController.Update(requestModel.Region, requestModel);
                }
                _accountRequestController.Delete(accountRequest.Id);
                return;
            }
            throw new Exception($"No Request found for playerId {requestModel.PlayerId} and region {requestModel.Region}");
        }
        public async Task <ContentResult> Change([FromBody] AccountChangeRequest request)
        {
            PasswordHasher <Chatterer> pHasher = new PasswordHasher <Chatterer>();
            var user = await _userMgr.GetUserAsync(User);

            string ret;

            try
            {
                if ((await _signMgr.CheckPasswordSignInAsync(user, request.Password, false)).Succeeded != true)
                {
                    ret = "wrong_password";
                }
                else if (request.NewName == null && request.NewPassword == null)
                {
                    ret = "no_change_requested";
                }
                else
                {
                    if (request.NewName != null && !StaticData.IsNameValid(request.NewName))
                    {
                        ret = "invalid_name";
                    }
                    else
                    {
                        if (request.NewName != null && request.NewName != user.UserName &&
                            request.NewPassword != null && request.NewPassword != request.Password)
                        {
                            if (request.NewName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase))
                            {
                                user.UserName     = request.NewName;
                                user.PasswordHash = pHasher.HashPassword(user, request.Password);
                                await _groupsDb.SaveChangesAsync();

                                ret = "name&pass_changed";
                            }
                            else
                            {
                                if ((await _userMgr.FindByNameAsync(request.NewName)) != null)
                                {
                                    ret = "name_exists";
                                }
                                else
                                {
                                    user.UserName     = request.NewName;
                                    user.PasswordHash = pHasher.HashPassword(user, request.Password);
                                    await _groupsDb.SaveChangesAsync();

                                    ret = "name&pass_changed";
                                }
                            }
                        }
                        else if (request.NewName != null && request.NewName != user.UserName)
                        {
                            if (request.NewName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase))
                            {
                                user.UserName = request.NewName;
                                await _groupsDb.SaveChangesAsync();

                                ret = "name_changed";
                            }
                            else
                            {
                                if ((await _userMgr.FindByNameAsync(request.NewName)) != null)
                                {
                                    ret = "name_exists";
                                }
                                else
                                {
                                    user.UserName = request.NewName;
                                    await _groupsDb.SaveChangesAsync();

                                    ret = "name_changed";
                                }
                            }
                        }
                        else if (request.NewPassword != null && request.NewPassword != request.Password)
                        {
                            user.PasswordHash = pHasher.HashPassword(user, request.Password);
                            await _groupsDb.SaveChangesAsync();

                            ret = "pass_changed";
                        }
                        else
                        {
                            ret = "same_credentials";
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ret = e.Message;
            }
            return(Content(ret, "text/plain"));
        }