public ActionResult ManageUserAccess(string Id) { using (db) { CcRepUser UserModel = db.Users.Find(Id); if (UserModel != null) { UserAccessAssignment ViewModel = new UserAccessAssignment(UserModel, db); return(View(ViewModel)); } } return(new HttpStatusCodeResult(404)); }
public ActionResult ManageUserAccess([Bind(Include = "SelectedBranches, SelectedRoles, UserId, Blocked, FlAccess, PdAccess, AllBranches")] UserAccessAssignment modelView) { if (modelView.UserId != null) { CcRepUser userModel = db.Users.Find(modelView.UserId); userModel.Locked = modelView.Blocked; foreach (UsersToFilials branch in userModel.Filials.ToList()) { db.UserrsToFilials.Remove(branch); } foreach (CcRepUserClaim claim in userModel.Claims.ToList()) { db.UserClaims.Remove(claim); } foreach (UsersToRoles roleUser in userModel.Roles.ToList()) { db.UserRoles.Remove(roleUser); } UpdateModel(userModel); if (modelView.AllBranches) { var AllBranClaim = new CcRepUserClaim { ClaimType = "showAllBranches", ClaimValue = modelView.AllBranches.ToString() }; userModel.Claims.Add(AllBranClaim); } else if (modelView.SelectedBranches != null) { foreach (var c in db.Filials.Where(co => modelView.SelectedBranches.Contains(co.NCFilial))) { userModel.Filials.Add(new UsersToFilials() { FilialId = c.NCFilial, UserId = userModel.Id }); } } if (modelView.SelectedRoles != null) { foreach (var c in db.Roles.Where(co => modelView.SelectedRoles.Contains(co.Id))) { UsersToRoles model = new UsersToRoles() { RoleId = c.Id, UserId = userModel.Id }; userModel.Roles.Add(model); } } var FlAccessClaim = new CcRepUserClaim { ClaimType = "FlAccess", ClaimValue = modelView.FlAccess }; var PdAccessClaim = new CcRepUserClaim { ClaimType = "PdAccess", ClaimValue = modelView.PdAccess }; userModel.Claims.Add(FlAccessClaim); userModel.Claims.Add(PdAccessClaim); // сохраняем изменения UserManager.UpdateAsync(userModel); db.Entry(userModel).State = EntityState.Modified; db.SaveChanges(); return(Redirect(Request.UrlReferrer.ToString())); } return(new HttpStatusCodeResult(404)); }