Exemplo n.º 1
0
        public async Task <IActionResult> EditUserRoles([FromBody] PortalUserWithRolesResource userResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = await _userManager.FindByIdAsync(userResource.IdentityId);

            if (user == null)
            {
                return(NotFound());
            }

            var userRoles = await _userManager.GetRolesAsync(user);

            var allRoles     = _roleManager.Roles.ToList();
            var addedRoles   = userResource.UserRoles?.Except(userRoles);
            var removedRoles = userRoles.Except(userResource.UserRoles);

            await _userManager.AddToRolesAsync(user, addedRoles);

            await _userManager.RemoveFromRolesAsync(user, removedRoles);

            return(Ok("Success"));
        }
Exemplo n.º 2
0
        public async Task <PortalUserWithRolesResource> GetById(string id)
        {
            var user = await UnitOfWork.Repository <PortalUser>().GetSingleIcludeMultipleAsync(x => x.IdentityId == id, x => x.Identity);

            var res = new PortalUserWithRolesResource();

            if (user != null)
            {
                res.IdentityId = user.IdentityId;
                res.UserRoles  = await _userManager.GetRolesAsync(user.Identity);

                res.AllRoles   = _roleManager.Roles.Select(x => x.Name).ToList();
                res.FirstName  = user.Identity.FirstName;
                res.SecondName = user.Identity.SecondName;
                res.LastName   = user.Identity.LastName;
            }
            return(res);
        }