Example #1
0
        public async Task <Result <string> > AddRole(NewRoleRequest newRoleRequest, string adminId)
        {
            ValidationResult validationResult = _newRoleValidator.Validate(newRoleRequest);

            if (!validationResult.IsValid)
            {
                _logger.LogError($"Invalid NewRoleRequest. Admin {adminId}");
                return(Result.Fail <string>(ResultUtils.ToResultError(validationResult.Errors)));
            }

            RoleEntity role = new RoleEntity(
                name: newRoleRequest.Name,
                description: newRoleRequest.Description,
                type: newRoleRequest.Type.Value);

            IdentityResult result = await _roleManager.CreateAsync(role);

            if (!result.Succeeded)
            {
                _logger.LogError($"Failed to add new role. Admin with id {adminId}");
                return(Result.Fail <string>(ResultUtils.ToResultError(result.Errors)));
            }

            role = await _roleManager.FindByNameAsync(newRoleRequest.Name);

            if (role == null)
            {
                _logger.LogError($"Failed to find new role with name {newRoleRequest.Name}. Admin with id {adminId}");
                return(Result.Fail <string>("no_role", "No role"));
            }

            return(Result.Ok(role.Id));
        }
Example #2
0
        public async Task <IActionResult> ChangeRole(int id, NewRoleRequest request)
        {
            var userId = User.Claims.GetUserId();

            if (userId == null)
            {
                return(BadRequest());
            }

            if (await _userService.ChangeRole(id, request.Role, userId.Value))
            {
                return(Ok());
            }
            return(BadRequest());
        }
Example #3
0
        public async Task <IActionResult> New(NewRoleRequest newRoleRequest)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            Result <string> result = await _roleService.AddRole(newRoleRequest, GetUserId());

            if (result.Failure)
            {
                ModelState.AddErrors(result.Errors);

                return(View(new NewRoleViewModel(StatusAlertViewExtension.Get(result))));
            }

            return(RedirectToAction(nameof(Details), new { id = result.Value }));
        }
Example #4
0
        public ActionResult New(NewRoleRequest req)
        {
            var command = new RoleCommand
            {
                Name           = req.Name,
                Description    = "",
                SourceRoleCode = "",
                Status         = req.Status? Lidia.Identity.Common.Models.EntityStatus.Active: Lidia.Identity.Common.Models.EntityStatus.Passive
            };

            var response = _identityClient.CreateRole(command);

            if (response.Type != Lidia.Identity.Common.Models.ServiceResponseTypes.Completed)
            {
                return(RedirectToAction("New"));
            }
            else
            {
                return(View());
            }
        }