public async Task <ActionResult> Delete([FromBody] UserVM userVM) { var username = User.Claims.FirstOrDefault(x => x.Type == "FullName").Value; User user = await userManager.FindByIdAsync(userVM.Id); if (user != null) { var basket = await DB.Baskets.Include(x => x.Catalogs).FirstOrDefaultAsync(x => x.UserId == user.Id); var role = await userManager.GetRolesAsync(user); if (role[0] == "Level one") { throw new Exception("You cant delete global admin"); } if (basket.Catalogs.Count == 0) { IdentityResult result = await userManager.DeleteAsync(user); } else { throw new Exception("User basket is not empty"); } } await SimpleLogTableService.AddAdminLog($"Nodzesa darbnieku: {user.FullName}", username); return(Ok()); }
public async Task <ActionResult> RegisterUser([FromBody] RegisterVM newUser) { var whoCreated = User.Claims.FirstOrDefault(x => x.Type == "FullName").Value; var creator = await DB.Users.FirstOrDefaultAsync(x => x.FullName == whoCreated); if (ModelState.IsValid) { User user = new User { Email = newUser.Email, FullName = newUser.FullName, UserName = newUser.Email, WhoCreated = whoCreated, ReportsTo = creator.Id }; if (newUser.RoleName != "Level four") { user.HasAbilityToLoad = true; } // Adding new user var addedUser = await userManager.CreateAsync(user, newUser.Password); if (addedUser.Succeeded) { await userManager.AddToRoleAsync(user, newUser.RoleName); await signInManager.SignInAsync(user, false); Basket newBasket = new Basket() { UserId = user.Id }; DB.Baskets.Add(newBasket); await DB.SaveChangesAsync(); } else { throw new Exception("Something went wrong"); } } await SimpleLogTableService.AddAdminLog($"Reģistrēja jauno darbnieku: { newUser.FullName}", whoCreated); return(Ok(newUser)); }
public async Task <ActionResult> ChangePassword(ChangePasswordViewModel model) { var username = User.Claims.FirstOrDefault(x => x.Type == "FullName").Value; if (ModelState.IsValid) { User user = await userManager.FindByIdAsync(model.Id); if (user != null) { var _passwordValidator = HttpContext.RequestServices.GetService(typeof(IPasswordValidator <User>)) as IPasswordValidator <User>; var _passwordHasher = HttpContext.RequestServices.GetService(typeof(IPasswordHasher <User>)) as IPasswordHasher <User>; IdentityResult result = await _passwordValidator.ValidateAsync(userManager, user, model.NewPassword); if (result.Succeeded) { user.PasswordHash = _passwordHasher.HashPassword(user, model.NewPassword); await userManager.UpdateAsync(user); await SimpleLogTableService.AddAdminLog($"Izmainīja parole darbniekam: {user.FullName}", username); } else { return(BadRequest()); } } else { ModelState.AddModelError(string.Empty, "Пользователь не найден"); } } return(Ok(model)); }