Exemplo n.º 1
0
        public async Task <ActionResult <User> > SetUserRole([FromForm] RoleChangeModel model)
        {
            User user = await _userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                throw new RoleChangeException($"Cannot find user with Id: {model.UserId}");
            }
            if (_roleManager.FindByNameAsync(model.Role).Result == null)
            {
                throw new RoleChangeException($"Role does not exist: {model.Role}");
            }
            try
            {
                var userRole = await _userManager.GetRolesAsync(user);

                if (userRole.FirstOrDefault() != model.Role)
                {
                    await _userManager.AddToRoleAsync(user, model.Role);

                    await _userManager.RemoveFromRolesAsync(user, userRole);
                }
            }
            catch (Exception ex)
            {
                throw new RoleChangeException(ex.Message);
            }

            return(Ok(user));
        }
        public async Task <JsonResult> UsersSettingsAsync([FromBody] RoleChangeModel model)
        {
            if (User.Claims.FirstOrDefault(c => c.Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role").Value != "Admin")
            {
                return(Json(false));
            }
            var query = new ChangeClaimCommand
            {
                UserId     = model.UserId,
                ClaimValue = model.Role
            };
            var resultClaim = await _mediator.Send(query);

            if (resultClaim.Suceeded)
            {
                return(Json(true));
            }
            else
            {
                return(Json(false));
            }
        }