public async Task <IHttpActionResult> GetUser(string Id) { var user = await JWTUserManager.FindByIdAsync(Id); if (user != null) { return(Ok(EntityFactory.Create(user))); } return(NotFound()); }
public async Task <IHttpActionResult> AssignRolesToUser( [FromUri] string id, [FromBody] string[] rolesToAssign) { var user = await JWTUserManager.FindByIdAsync(id); if (user == null) { return(NotFound()); } var currentRoleSet = JWTRoleManager.Roles .Where(r => r.ClientId == user.ClientId || r.ClientId == null) .ToList(); var currentUserRolesList = await JWTUserManager.GetRolesAsync(user.Id); var currentUserRoles = currentUserRolesList.List; var nonExistingRoles = rolesToAssign.Except(currentRoleSet.Select(r => r.Name)).ToArray(); if (nonExistingRoles.Any()) { ModelState.AddModelError("", string.Format(JWTAuthServerConstants.RolesDontExist, string.Join(",", nonExistingRoles))); return(BadRequest(ModelState)); } var removeResult = await JWTUserManager.RemoveFromRolesAsync(user.Id, currentUserRoles.Select(r => r.Name).ToArray()); if (!removeResult.Succeeded) { ModelState.AddModelError("", JWTAuthServerConstants.RoleRemoveFailed); return(BadRequest(ModelState)); } var addResult = await JWTUserManager.AddToRolesAsync(user.Id, rolesToAssign); if (!addResult.Succeeded) { ModelState.AddModelError("", JWTAuthServerConstants.RoleAddFailed); return(BadRequest(ModelState)); } return(Ok()); }
public async Task <IHttpActionResult> DeleteUser(string id) { var appUser = await JWTUserManager.FindByIdAsync(id); if (appUser != null) { var result = await JWTUserManager.DeleteAsync(appUser); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); } return(NotFound()); }