Exemple #1
0
        public async Task Delete(int organizationId, string userId)
        {
            var user = await _userRetrievalService.GetUserByIdAsync(userId);

            var org = await _orgRetrievalService.GetOrganizationByIdAsync(organizationId);

            await _orgMemberService.RemoveFromOrganizationAsync(user, org);
        }
Exemple #2
0
        public async Task <IActionResult> OnPostAsync(string id)
        {
            if (!ModelState.IsValid)
            {
                return(await PageAsync(id));
            }

            var user = await _userManager.FindByIdAsync(id);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            if (Input.Name != user.Name)
            {
                user.Name = Input.Name;
                var setNameResult = await _userManager.UpdateAsync(user);

                if (!setNameResult.Succeeded)
                {
                    throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'.");
                }
            }

            if (Input.Email != user.Email)
            {
                // Set new email address
                var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email);

                // Change username to the new address
                user.UserName = Input.Email;
                var setNameResult = await _userManager.UpdateAsync(user);

                if (!setEmailResult.Succeeded)
                {
                    throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'.");
                }
            }

            if (Input.PhoneNumber != user.PhoneNumber)
            {
                var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);

                if (!setPhoneResult.Succeeded)
                {
                    throw new ApplicationException($"Unexpected error occurred setting phone number for user with ID '{user.Id}'.");
                }
            }

            if (Input.SignatureImageBase64 != user.SignatureImageBase64)
            {
                user.SignatureImageBase64 = Input.SignatureImageBase64;
                var setSignatureResult = await _userManager.UpdateAsync(user);

                if (!setSignatureResult.Succeeded)
                {
                    throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'.");
                }
            }

            try
            {
                if (User.IsInRole(Roles.SuperAdmin))
                {
                    if (Input.IsOrgMember)
                    {
                        var member = await _organizationMemberManagementService.AddToOrganizationAsync(user);

                        await _memberRolesManagementService.UpdateOrganizationMemberRolesAsync(member.Id,
                                                                                               MemberRoles.Where(r => r.Value)
                                                                                               .Select(r => r.Key)
                                                                                               .ToArray());
                    }
                    else
                    {
                        await _organizationMemberManagementService.RemoveFromOrganizationAsync(user);
                    }
                }
            }
            catch (AccessViolationException e)
            {
                _logger.LogError(e, e.Message);
                return(Forbid());
            }

            return(RedirectToPage("Index"));
        }