/// <summary> /// Изменение прав у роли /// </summary> /// <param name="roleClaim"></param> /// <returns></returns> public bool UpdateRoleClaim(RoleClaimModel roleClaim) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var dbRoleclaim = db.core_AspNetRoleClaims .Where(s => s.RoleId == roleClaim.RoleId.ToString()) .Where(s => s.ClaimType == roleClaim.Type) .Where(s => s.ClaimValue == roleClaim.Value); if (roleClaim.Checked) { if (!dbRoleclaim.Any()) { //insert var newRoleClaim = new core_AspNetRoleClaims() { RoleId = roleClaim.RoleId.ToString(), ClaimType = roleClaim.Type, ClaimValue = roleClaim.Value }; db.Insert(newRoleClaim); //log //var log = new LogModel //{ // PageId = Guid.NewGuid, // PageName = "", // Section = LogModule.Users, // Action = LogAction.update, // Comment = "Изменена связь пользователя с сайтами" //}; //InsertLog(log); tran.Commit(); return(true); } } else { if (dbRoleclaim.Any()) { //delete var roleClaimData = dbRoleclaim.Single(); db.Delete(roleClaimData); //log tran.Commit(); return(true); } } return(false); } } }
public ActionResult DeleteRoleFromSite(Guid roleId, Guid siteId) { var roleClaim = new RoleClaimModel() { RoleId = roleId, Type = "_SiteIdentity", Value = siteId.ToString(), Checked = false }; var res = _cmsRepository.UpdateRoleClaim(roleClaim); if (res) { return(Json("Success")); } return(Json("An Error Has Occourred")); }
public ActionResult UpdateRoleClaim(RoleClaimModel roleClaim) { var res = true; if (roleClaim.Section == ClaimSection.CMS) { res = _cmsRepository.UpdateRoleClaim(roleClaim); } else if (roleClaim.Section == ClaimSection.Module) { //Ранее предполагалось, что компоненты модуля находятся в одном контроллере //Права на дочерние контроллеры (компоненты модуля) var module = _cmsRepository.GetModule(roleClaim.Type); if (module != null && module.ModuleParts.Count() > 0) { foreach (var part in module.ModuleParts.Distinct()) { var newClaim = new RoleClaimModel() { RoleId = roleClaim.RoleId, Type = part.ControllerName, Value = roleClaim.Value, Checked = roleClaim.Checked }; var updRes = _cmsRepository.UpdateRoleClaim(newClaim); if (updRes) { res = false; } } } } else { res = false; } if (res) { return(Json("Success")); } return(Json("An Error Has Occourred")); }