public async Task <IActionResult> EditUsersInRole(string roleId)
        {
            var role = await roleManager.FindByIdAsync(roleId);

            ViewBag.roleId   = roleId;
            ViewBag.roleName = role.Name ?? "NA";
            if (role == null)
            {
                ViewBag.ErrorMessage = $"Role with id = {roleId} cannot be found";
                return(View("NotFound"));
            }

            var model = new List <EditRoleUserViewModel>();

            foreach (var user in userManager.Users)
            {
                var obj = new EditRoleUserViewModel {
                    UserId = user.Id, UserName = user.UserName
                };

                if (await userManager.IsInRoleAsync(user, role.Name))
                {
                    obj.IsSelected = true;
                }
                else
                {
                    obj.IsSelected = false;
                }
                model.Add(obj);
            }

            return(View(model));
        }
Beispiel #2
0
        public async Task <IActionResult> EditRoleUser(EditRoleUserViewModel viewModel)
        {
            var roleUser         = viewModel.MapToRoleUserEntity();
            var authorisedOrgIds = HttpContext.User.GetOrganisationIds();
            var organisationId   = new Guid(HttpContext.Session.GetString(_organisationId));

            roleUser.OrganisationId = organisationId;

            var emailAlreadyInUseResult = await _identityManagementRepository.IsEmailInUseAsync(roleUser, authorisedOrgIds);

            if (emailAlreadyInUseResult.Value)
            {
                ModelState.AddModelError("Email", emailAlreadyInUseResult.OperationError.Message);
                return(View(viewModel));
            }

            var updatingRoleUser = viewModel.MapToRoleUserEntity();
            var updateResult     = await _identityManagementRepository.UpdateRoleUserAsync(updatingRoleUser, authorisedOrgIds);

            if (updateResult.IsError)
            {
                ModelState.AddModelError(string.Empty, updateResult.OperationError.Message);
                return(View(viewModel));
            }

            return(RedirectToAction(nameof(OrganisationRoleUsers), new { organisationId }));
        }
Beispiel #3
0
        public async Task <IActionResult> EditRoleUser(Guid id)
        {
            var authorisedOrgIds = HttpContext.User.GetOrganisationIds();
            var roleUser         = await _identityManagementRepository.FindRoleUserByIdAsync(id, authorisedOrgIds);

            var viewModel = new EditRoleUserViewModel
            {
                Id    = id,
                Email = roleUser.Email,
                Role  = roleUser.Role
            };

            return(View(viewModel));
        }
Beispiel #4
0
        public async Task DeleteRoleUser(Guid roleId, [FromForm] EditRoleUserViewModel model)
        {
            var command = new DeleteRoleUserCommand(
                roleId,
                model.UserIds
                );

            await _bus.SendCommand(command);

            if (_notifications.HasNotifications())
            {
                var errorMessage = _notifications.GetNotificationMessage();
                throw new GirvsException(StatusCodes.Status400BadRequest, errorMessage);
            }
        }