protected override void InitVM() { SelectedRolesIDs.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == true).Select(x => x.RoleId.Value).ToList()); SelectedUsersID.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.UserId != null && x.Allowed == true).Select(x => x.UserId.Value).ToList()); SelectedRolesID2.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == false).Select(x => x.RoleId.Value).ToList()); SelectedUsersID2.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.UserId != null && x.Allowed == false).Select(x => x.UserId.Value).ToList()); var data = DC.Set <FrameworkMenu>().ToList(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = topMenu.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID)).ToList().ToListItems(y => y.PageName, x => x.ID); foreach (var p in AllParents) { Guid temp = Guid.Parse(p.Value); var m = topMenu.Where(x => x.ID == temp).SingleOrDefault(); if (m != null && m.ActionId != null) { p.Text = p.Text + "(" + m.ModuleName + ")"; } } AllModules = DC.Set <FrameworkModule>().GetSelectListItems(LoginUserInfo.DataPrivileges, null, y => y.ModuleName); if (Entity.ModuleId != null) { AllActions = DC.Set <FrameworkAction>().GetSelectListItems(LoginUserInfo.DataPrivileges, x => x.ModuleId == Entity.ModuleId, y => y.ActionName); } }
public override void DoEdit(bool updateAllFields = false) { if (SelectedRolesIDs == null || SelectedRolesIDs.Count == 0) { FC.Add("Entity.SelectedRolesIDs.DONOTUSECLEAR", "true"); } else { Entity.UserRoles = new List <FrameworkUserRole>(); SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole { ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x })); } if (SelectedGroupIDs == null || SelectedGroupIDs.Count == 0) { FC.Add("Entity.SelectedGroupIDs.DONOTUSECLEAR", "true"); } else { SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup { ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x })); } base.DoEdit(updateAllFields); }
protected override void InitVM() { SelectedRolesIDs.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == true).Select(x => x.RoleId.Value).ToList()); var data = DC.Set <FrameworkMenu>().ToList(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = topMenu.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); var modules = GlobalServices.GetRequiredService <GlobalData>().AllModule; var m = modules.Where(x => x.NameSpace != "WalkingTec.Mvvm.Admin.Api").ToList(); List <FrameworkModule> toremove = new List <FrameworkModule>(); foreach (var item in m) { var f = modules.Where(x => x.ClassName == item.ClassName && x.Area?.AreaName == item.Area?.AreaName).FirstOrDefault(); if (f?.IgnorePrivillege == true) { toremove.Add(item); } } toremove.ForEach(x => m.Remove(x)); AllModules = m.ToListItems(y => y.ModuleName, y => y.FullName); if (string.IsNullOrEmpty(Entity.Url) == false && Entity.IsInside == true) { SelectedModule = modules.Where(x => x.IsApi == false && (x.ClassName == Entity.ClassName || x.FullName == Entity.ClassName)).SelectMany(x => x.Actions).FirstOrDefault().Module.FullName; var mm = modules.Where(x => x.FullName == SelectedModule).SelectMany(x => x.Actions).Where(x => x.MethodName != "Index" && x.IgnorePrivillege == false).ToList(); AllActions = mm.ToListItems(y => y.ActionName, y => y.Url); SelectedActionIDs = DC.Set <FrameworkMenu>().Where(x => AllActions.Select(y => y.Value).Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.Url).ToList(); } }
public override void DoAdd() { if (Entity.IsInside == true) { var domain = DC.Set <FrameworkDomain>().Where(x => x.ID == Entity.DomainId).FirstOrDefault(); FrameworkAction act = null; if (domain == null) { act = DC.Set <FrameworkAction>().Include(x => x.Module.Area).Where(x => x.ID == Entity.ActionId).FirstOrDefault(); } else { act = APIHelper.CallAPI <FrameworkAction>(domain.Address + "/WebApi/Pub/GetAction?id=" + Entity.ActionId + "&domainid=" + Entity.DomainId + "&eventts=" + DateTime.Now.Ticks).Result; } if (act != null) { Entity.Url = "/" + act.Module.ClassName + "/" + act.MethodName; if (act.Module.Area != null) { Entity.Url = "/" + act.Module.Area.Prefix + Entity.Url; } Entity.ModuleName = act.Module.ModuleName; Entity.ActionName = act.ActionName; } } else { Entity.ActionId = null; Entity.ModuleId = null; if (Entity.Url != null && Entity.Url != "") { if (Entity.DomainId == null) { if (Entity.Url.ToLower().StartsWith("http://") == false) { Entity.Url = "http://" + Entity.Url; } } else { if (Entity.Url.StartsWith("/") == false) { Entity.Url = "/" + Entity.Url; } } } } var role = DC.Set <FrameworkRole>().Where(x => x.RoleCode == "001").SingleOrDefault(); if (role != null && SelectedRolesIDs.Contains(role.ID) == false && SelectedRolesID2.Contains(role.ID) == false) { Entity.Privileges.Add(new FunctionPrivilege { RoleId = role.ID, Allowed = true }); } base.DoAdd(); AddPrivilege(Entity.ID); }
protected override void InitVM() { SelectedRolesIDs.AddRange(DC.Set<FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == true).Select(x => x.RoleId.Value).ToList()); var data = DC.Set<FrameworkMenu>().ToList(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x=>x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = topMenu.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); foreach (var p in AllParents) { Guid temp = Guid.Parse(p.Value); var m = topMenu.Where(x => x.ID == temp).SingleOrDefault(); if (m != null && m.ActionId != null) { p.Text = p.Text + "(" + m.ModuleName + ")"; } } var modules = GlobalServices.GetRequiredService<GlobalData>().AllModule; if (ControllerName.Contains("WalkingTec.Mvvm.Mvc.Admin.Controllers")) { var m = DC.Set<FrameworkModule>().Include(x=>x.Area).Where(x => x.NameSpace != "WalkingTec.Mvvm.Admin.Api").ToList(); List<FrameworkModule> toremove = new List<FrameworkModule>(); foreach (var item in m) { var f = modules.Where(x => x.ClassName == item.ClassName && x.Area?.AreaName == item.Area?.AreaName).FirstOrDefault(); if (f?.IgnorePrivillege == true) { toremove.Add(item); } } toremove.ForEach(x => m.Remove(x)); AllModules = m.ToListItems(y => y.ModuleName, y=>y.ID); } if (Entity.ModuleId != null) { var m = DC.Set<FrameworkAction>().Include(x=>x.Module.Area).Where(x => x.ModuleId == Entity.ModuleId && x.MethodName != "Index").ToList(); List<FrameworkAction> toremove = new List<FrameworkAction>(); foreach (var item in m) { var f = modules.Where(x => x.ClassName == item.Module.ClassName && x.Area?.AreaName == item.Module.Area?.AreaName).FirstOrDefault(); var a = f?.Actions.Where(x => x.MethodName == item.MethodName).FirstOrDefault(); if (a?.IgnorePrivillege == true) { toremove.Add(item); } } toremove.ForEach(x => m.Remove(x)); AllActions = m.ToListItems(y => y.ActionName, y => y.ID); SelectedActionIDs = DC.Set<FrameworkMenu>().Where(x => x.ModuleId == this.Entity.ModuleId && x.ActionId != null).Select(x => x.ActionId.Value).ToList(); } }
protected override void InitVM() { SelectedRolesIDs.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == true).Select(x => x.RoleId.Value).ToList()); var data = DC.Set <FrameworkMenu>().AsNoTracking().ToList(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = data.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); foreach (var p in AllParents) { if (p.Text.StartsWith("MenuKey.")) { p.Text = Localizer[p.Text]; } } var modules = KnifeVirgo.GlobaInfo.AllModule; var toRemove = new List <SimpleModule>(); foreach (var item in modules) { if (item.IgnorePrivillege) { toRemove.Add(item); } } var m = modules.ToList(); toRemove.ForEach(x => m.Remove(x)); AllModules = m.ToListItems(y => y.ModuleName, y => y.FullName); if (string.IsNullOrEmpty(SelectedModule) == false || (string.IsNullOrEmpty(Entity.Url) == false && Entity.IsInside == true)) { if (string.IsNullOrEmpty(SelectedModule)) { SelectedModule = modules.Where(x => (x.FullName == Entity.ClassName)).FirstOrDefault()?.FullName; } var mm = modules.Where(x => x.FullName == SelectedModule).SelectMany(x => x.Actions).Where(x => x.MethodName != "Index" && x.IgnorePrivillege == false).ToList(); AllActions = mm.ToListItems(y => y.ActionName, y => y.Url); if (SelectedActionIDs == null) { SelectedActionIDs = DC.Set <FrameworkMenu>().Where(x => AllActions.Select(y => y.Value).Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.Url).ToList(); } } }
public override void DoEdit(bool updateAllFields = false) { if (ControllerName.Contains("WalkingTec.Mvvm.Mvc.Admin.Controllers")) { Entity.UserRoles = new List <FrameworkUserRole>(); Entity.UserGroups = new List <FrameworkUserGroup>(); if (SelectedRolesIDs != null) { SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole { ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x })); } if (SelectedGroupIDs != null) { SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup { ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x })); } } base.DoEdit(updateAllFields); }
public void AddPrivilege(List <Guid> menuids) { var oldIDs = DC.Set <FunctionPrivilege>().Where(x => menuids.Contains(x.MenuItemId)).Select(x => x.ID).ToList(); var admin = DC.Set <FrameworkRole>().Where(x => x.RoleCode == "001").SingleOrDefault(); foreach (var oldid in oldIDs) { try { FunctionPrivilege fp = new FunctionPrivilege { ID = oldid }; DC.Set <FunctionPrivilege>().Attach(fp); DC.DeleteEntity(fp); } catch { } } if (admin != null && SelectedRolesIDs.Contains(admin.ID) == false) { SelectedRolesIDs.Add(admin.ID); } foreach (var menuid in menuids) { if (SelectedRolesIDs != null) { foreach (var id in SelectedRolesIDs) { FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleId = id; fp.UserId = null; fp.Allowed = true; DC.Set <FunctionPrivilege>().Add(fp); } } } DC.SaveChanges(); }
public override async Task DoEditAsync(bool updateAllFields = false) { FC.TryAdd("Entity.UserRoles", 0); FC.TryAdd("Entity.UserGroups", 0); Entity.UserRoles = new List <FrameworkUserRole>(); Entity.UserGroups = new List <FrameworkUserGroup>(); if (SelectedRolesIDs != null) { SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole { ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x })); } if (SelectedGroupIDs != null) { SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup { ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x })); } await base.DoEditAsync(updateAllFields); await KnifeVirgo.RemoveUserCache(Entity.ID.ToString()); }
public override async Task DoEditAsync(bool updateAllFields = false) { if (ControllerName.Contains("WalkingTec.Mvvm.Mvc.Admin.Controllers")) { Entity.UserRoles = new List <FrameworkUserRole>(); Entity.UserGroups = new List <FrameworkUserGroup>(); if (SelectedRolesIDs != null) { SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole { ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x })); } if (SelectedGroupIDs != null) { SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup { ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x })); } } await base.DoEditAsync(updateAllFields); await LoginUserInfo.RemoveUserCache(Entity.ID.ToString()); }
public void DoBatchAdd() { var role = DC.Set <FrameworkRole>().Where(x => x.RoleCode == "001").SingleOrDefault(); if (role != null && SelectedRolesIDs.Contains(role.ID) == false && SelectedRolesID2.Contains(role.ID) == false) { Entity.Privileges.Add(new FunctionPrivilege { RoleId = role.ID, Allowed = true }); } if (Entity.ModuleId != null && Entity.ActionId != null) { var domain = DC.Set <FrameworkDomain>().Where(x => x.ID == Entity.DomainId).FirstOrDefault(); List <FrameworkAction> otherActions = null; FrameworkAction act = null; if (domain == null) { act = DC.Set <FrameworkAction>().Include(x => x.Module.Area).Where(x => x.ID == Entity.ActionId).FirstOrDefault(); otherActions = DC.Set <FrameworkAction>().Include(x => x.Module.Area).Where(x => x.ModuleId == this.Entity.ModuleId && x.ID != Entity.ActionId).ToList(); } else { otherActions = APIHelper.CallAPI <List <FrameworkAction> >(domain.Address + "/WebApi/Pub/GetOtherActions?id=" + Entity.ActionId + "&moduleid=" + Entity.ModuleId + "&eventts=" + DateTime.Now.Ticks).Result; act = APIHelper.CallAPI <FrameworkAction>(domain.Address + "/WebApi/Pub/GetAction?id=" + Entity.ActionId + "&domainid=" + Entity.DomainId + "&eventts=" + DateTime.Now.Ticks).Result; } if (act != null) { Entity.Url = "/" + act.Module.ClassName + "/" + act.MethodName; if (act.Module.Area != null) { Entity.Url = "/" + act.Module.Area.Prefix + Entity.Url; } Entity.ModuleName = act.Module.ModuleName; Entity.ActionName = act.ActionName; } int order = 1; foreach (var action in otherActions) { FrameworkMenu menu = new FrameworkMenu(); menu.ActionId = action.ID; menu.ModuleId = action.ModuleId; menu.FolderOnly = false; menu.IsPublic = false; menu.Parent = Entity; menu.ShowOnMenu = false; menu.DisplayOrder = order++; menu.Privileges = new List <FunctionPrivilege>(); menu.CreateBy = LoginUserInfo.ITCode; menu.CreateTime = DateTime.Now; menu.IsInside = true; menu.DomainId = Entity.DomainId; if (role != null) { menu.Privileges.Add(new FunctionPrivilege { RoleId = role.ID, Allowed = true }); } menu.PageName = action.ActionName; menu.ModuleName = action.Module.ModuleName; menu.ActionName = action.ActionName; menu.Url = "/" + action.Module.ClassName + "/" + action.MethodName; if (action.Module.Area != null) { menu.Url = "/" + action.Module.Area.Prefix + menu.Url; } Entity.Children.Add(menu); } } base.DoAdd(); AddPrivilege(Entity.ID); }
protected override void InitVM() { if (!string.IsNullOrEmpty(Entity.ICon)) { var res = Entity.ICon.Split(' '); IconFont = res[0]; IconFontItem = res[1]; } IConSelectItems = !string.IsNullOrEmpty(IconFont) && IconFontsHelper .IconFontDicItems .ContainsKey(IconFont) ? IconFontsHelper .IconFontDicItems[IconFont] .Select(x => new ComboSelectListItem() { Text = x.Text, Value = x.Value, ICon = x.ICon }).ToList() : new List <ComboSelectListItem>(); SelectedRolesIDs.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == true).Select(x => x.RoleId.Value).ToList()); var data = DC.Set <FrameworkMenu>().AsNoTracking().ToList(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = data.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); foreach (var p in AllParents) { if (p.Text.StartsWith("MenuKey.")) { if (Localizer[p.Text].ResourceNotFound == true) { p.Text = Core.Program._localizer[p.Text]; } else { p.Text = Localizer[p.Text]; } } } var modules = GlobalServices.GetRequiredService <GlobalData>().AllModule; var toRemove = new List <FrameworkModule>(); foreach (var item in modules) { if (item.IgnorePrivillege) { toRemove.Add(item); } else { if (!item.IsApi) { continue; } if (item.NameSpace == "WalkingTec.Mvvm.Admin.Api") { if (!item.ModuleName.EndsWith($"({Program._localizer["BuildinApi"]})")) { item.ModuleName += $"({Program._localizer["BuildinApi"]})"; } } else if (!item.ModuleName.EndsWith("(api)")) { item.ModuleName += "(api)"; } } } var m = modules.ToList(); toRemove.ForEach(x => m.Remove(x)); AllModules = m.ToListItems(y => y.ModuleName, y => y.FullName); if (string.IsNullOrEmpty(SelectedModule) == false || (string.IsNullOrEmpty(Entity.Url) == false && Entity.IsInside == true)) { if (string.IsNullOrEmpty(SelectedModule)) { SelectedModule = modules.Where(x => (x.FullName == Entity.ClassName)).FirstOrDefault()?.FullName; } var mm = modules.Where(x => x.FullName == SelectedModule).SelectMany(x => x.Actions).Where(x => x.MethodName != "Index" && x.IgnorePrivillege == false).ToList(); AllActions = mm.ToListItems(y => y.ActionName, y => y.Url); if (SelectedActionIDs == null) { SelectedActionIDs = DC.Set <FrameworkMenu>().Where(x => AllActions.Select(y => y.Value).Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.Url).ToList(); } } }
protected override void InitVM() { if (!string.IsNullOrEmpty(Entity.ICon)) { var res = Entity.ICon.Split(' '); IconFont = res[0]; IconFontItem = res[1]; } IConSelectItems = !string.IsNullOrEmpty(IconFont) && IconFontsHelper .IconFontDicItems .ContainsKey(IconFont) ? IconFontsHelper .IconFontDicItems[IconFont] .Select(x => new ComboSelectListItem() { Text = x.Text, Value = x.Value, ICon = x.ICon }).ToList() : new List <ComboSelectListItem>(); SelectedRolesIDs.AddRange(DC.Set <FunctionPrivilege>().Where(x => x.MenuItemId == Entity.ID && x.RoleId != null && x.Allowed == true).Select(x => x.RoleId.Value).ToList()); var data = DC.Set <FrameworkMenu>().ToList(); var topMenu = data.Where(x => x.ParentId == null).ToList().FlatTree(x => x.DisplayOrder); var pids = Entity.GetAllChildrenIDs(DC); AllParents = topMenu.Where(x => x.ID != Entity.ID && !pids.Contains(x.ID) && x.FolderOnly == true).ToList().ToListItems(y => y.PageName, x => x.ID); var modules = GlobalServices.GetRequiredService <GlobalData>().AllModule; var m = modules.Where(x => x.NameSpace != "WalkingTec.Mvvm.Admin.Api").ToList(); List <FrameworkModule> toremove = new List <FrameworkModule>(); foreach (var item in m) { var f = modules.Where(x => x.ClassName == item.ClassName && x.Area?.AreaName == item.Area?.AreaName).FirstOrDefault(); if (f?.IgnorePrivillege == true) { toremove.Add(item); } } toremove.ForEach(x => m.Remove(x)); var m2 = modules.Where(x => x.NameSpace == "WalkingTec.Mvvm.Admin.Api").ToList(); foreach (var item in m2) { if (item.ModuleName.EndsWith("(内置api)") == false) { item.ModuleName += "(内置api)"; } } m.AddRange(m2); AllModules = m.ToListItems(y => y.ModuleName, y => y.ClassName); if (string.IsNullOrEmpty(SelectedModule) == false || (string.IsNullOrEmpty(Entity.Url) == false && Entity.IsInside == true)) { if (string.IsNullOrEmpty(SelectedModule)) { SelectedModule = modules.Where(x => (x.ClassName == Entity.ClassName)).FirstOrDefault()?.ClassName; } var mm = modules.Where(x => x.ClassName == SelectedModule).SelectMany(x => x.Actions).Where(x => x.MethodName != "Index" && x.IgnorePrivillege == false).ToList(); AllActions = mm.ToListItems(y => y.ActionName, y => y.Url); if (SelectedActionIDs == null) { SelectedActionIDs = DC.Set <FrameworkMenu>().Where(x => AllActions.Select(y => y.Value).Contains(x.Url) && x.IsInside == true && x.FolderOnly == false).Select(x => x.Url).ToList(); } } }