public async Task <IActionResult> BatchDelete(string[] ids) { var vm = KnifeVirgo.CreateVM <FrameworkGroupBatchVM>(); if (ids != null && ids.Length > 0) { vm.Ids = ids; } else { return(Ok()); } if (!ModelState.IsValid || !vm.DoBatchDelete()) { return(BadRequest(ModelState.GetErrorJson())); } else { List <Guid?> groupids = new List <Guid?>(); foreach (var item in vm?.Ids) { groupids.Add(Guid.Parse(item)); } var userids = KnifeVirgo.DC.Set <FrameworkUserGroup>().Where(x => groupids.Contains(x.GroupId)).Select(x => x.UserId.ToString()).ToArray(); await KnifeVirgo.RemoveUserCache(userids); return(Ok(ids.Length)); } }
public string Search(DataPrivilegeSearcher searcher) { var vm = KnifeVirgo.CreateVM <DataPrivilegeListVM>(); vm.Searcher = searcher; return(vm.GetJson()); }
public override async Task DoDeleteAsync() { List <Guid> oldIDs = null; if (DpType == DpTypeEnum.User) { oldIDs = DC.Set <DataPrivilege>().Where(x => x.UserId == Entity.UserId && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); } else { oldIDs = DC.Set <DataPrivilege>().Where(x => x.GroupId == Entity.GroupId && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); } foreach (var oldid in oldIDs) { DataPrivilege dp = new DataPrivilege { ID = oldid }; DC.Set <DataPrivilege>().Attach(dp); DC.DeleteEntity(dp); } await DC.SaveChangesAsync(); if (DpType == DpTypeEnum.User) { await KnifeVirgo.RemoveUserCache(Entity.UserId.ToString()); } else { var userids = DC.Set <FrameworkUserGroup>().Where(x => x.GroupId == Entity.GroupId).Select(x => x.UserId.ToString()).ToArray(); await KnifeVirgo.RemoveUserCache(userids); } }
public string Search(FrameworkGroupSearcher searcher) { var vm = KnifeVirgo.CreateVM <FrameworkGroupListVM>(); vm.Searcher = searcher; return(vm.GetJson()); }
public IActionResult GetModelFields(string modelName) { var vm = KnifeVirgo.CreateVM <VGenCodeVM>(); var res = vm.GetFieldInfos(modelName); return(Ok(res)); }
public async Task <bool> DoChangeAsync() { var all = FC.Where(x => x.Key.StartsWith("menu_")).ToList(); List <Guid> AllowedMenuIds = all.Where(x => x.Value.ToString() == "1").Select(x => Guid.Parse(x.Key.Replace("menu_", ""))).ToList(); var torem = AllowedMenuIds.Distinct(); var oldIDs = DC.Set <FunctionPrivilege>().Where(x => x.RoleId == Entity.ID).Select(x => x.ID).ToList(); foreach (var oldid in oldIDs) { FunctionPrivilege fp = new FunctionPrivilege { ID = oldid }; DC.Set <FunctionPrivilege>().Attach(fp); DC.DeleteEntity(fp); } foreach (var menuid in AllowedMenuIds) { FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleId = Entity.ID; fp.UserId = null; fp.Allowed = true; DC.Set <FunctionPrivilege>().Add(fp); } await DC.SaveChangesAsync(); var userids = DC.Set <FrameworkUserRole>().Where(x => x.RoleId == Entity.ID).Select(x => x.UserId.ToString()).ToArray(); await KnifeVirgo.RemoveUserCache(userids); return(true); }
public IActionResult ExportExcel(FrameworkGroupSearcher searcher) { var vm = KnifeVirgo.CreateVM <FrameworkGroupListVM>(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; return(vm.GetExportData()); }
public async Task <ActionResult> RefreshMenu() { KnifeVirgo.Cache.Delete("FFMenus"); var userids = KnifeVirgo.DC.Set <FrameworkUserBase>().Select(x => x.ID.ToString().ToLower()).ToArray(); await KnifeVirgo.RemoveUserCache(userids); return(Ok(Localizer["OprationSuccess"])); }
public IActionResult GenerateCodes([FromBody] VGenCodeModel model) { var vm = KnifeVirgo.CreateVM <VGenCodeVM>(); vm.CodeModel = model; string res = vm.GenTemplates(); return(Ok(res)); }
public IActionResult ExportExcelByIds(string[] ids) { var vm = KnifeVirgo.CreateVM <FrameworkGroupListVM>(); if (ids != null && ids.Length > 0) { vm.Ids = new List <string>(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } return(vm.GetExportData()); }
public IActionResult Search(ActionLogSearcher searcher) { if (ModelState.IsValid) { var vm = KnifeVirgo.CreateVM <ActionLogListVM>(passInit: true); vm.Searcher = searcher; return(Content(vm.GetJson())); } else { return(BadRequest(ModelState.GetErrorJson())); } }
public IActionResult GetExcelTemplate() { var vm = KnifeVirgo.CreateVM <FrameworkGroupImportVM>(); var qs = new Dictionary <string, string>(); foreach (var item in Request.Query.Keys) { qs.Add(item, Request.Query[item]); } vm.SetParms(qs); var data = vm.GenerateTemplate(out string fileName); return(File(data, "application/vnd.ms-excel", fileName)); }
public DataPrivilegeVM Get(string TableName, Guid TargetId, DpTypeEnum DpType) { DataPrivilegeVM vm = null; if (DpType == DpTypeEnum.User) { vm = KnifeVirgo.CreateVM <DataPrivilegeVM>(values: x => x.Entity.TableName == TableName && x.Entity.UserId == TargetId && x.DpType == DpType); vm.UserItCode = KnifeVirgo.DC.Set <FrameworkUserBase>().Where(x => x.ID == TargetId).Select(x => x.ITCode).FirstOrDefault(); } else { vm = KnifeVirgo.CreateVM <DataPrivilegeVM>(values: x => x.Entity.TableName == TableName && x.Entity.GroupId == TargetId && x.DpType == DpType); } return(vm); }
public async Task <ActionResult> Delete(SimpleDpModel dp) { DataPrivilegeVM vm = null; if (dp.Type == DpTypeEnum.User) { vm = KnifeVirgo.CreateVM <DataPrivilegeVM>(values: x => x.Entity.TableName == dp.ModelName && x.Entity.UserId == dp.Id && x.DpType == dp.Type); } else { vm = KnifeVirgo.CreateVM <DataPrivilegeVM>(values: x => x.Entity.TableName == dp.ModelName && x.Entity.GroupId == dp.Id && x.DpType == dp.Type); } await vm.DoDeleteAsync(); return(Ok(1)); }
public async Task <bool> DoChangeAsync() { List <Guid> AllowedMenuIds = new List <Guid>(); var torem = AllowedMenuIds.Distinct(); foreach (var page in Pages) { if (page.Actions != null) { foreach (var action in page.Actions) { if (AllowedMenuIds.Contains(action) == false) { AllowedMenuIds.Add(action); } } } } var oldIDs = DC.Set <FunctionPrivilege>().Where(x => x.RoleId == Entity.ID).Select(x => x.ID).ToList(); foreach (var oldid in oldIDs) { FunctionPrivilege fp = new FunctionPrivilege { ID = oldid }; DC.Set <FunctionPrivilege>().Attach(fp); DC.DeleteEntity(fp); } foreach (var menuid in AllowedMenuIds) { FunctionPrivilege fp = new FunctionPrivilege(); fp.MenuItemId = menuid; fp.RoleId = Entity.ID; fp.UserId = null; fp.Allowed = true; DC.Set <FunctionPrivilege>().Add(fp); } await DC.SaveChangesAsync(); var userids = DC.Set <FrameworkUserRole>().Where(x => x.RoleId == Entity.ID).Select(x => x.UserId.ToString()).ToArray(); await KnifeVirgo.RemoveUserCache(userids); return(true); }
public IActionResult BatchDelete(string[] ids) { var vm = KnifeVirgo.CreateVM <ActionLogBatchVM>(); if (ids != null && ids.Length > 0) { vm.Ids = ids; } else { return(Ok()); } if (!ModelState.IsValid || !vm.DoBatchDelete()) { return(BadRequest(ModelState.GetErrorJson())); } else { return(Ok(ids.Length)); } }
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 FrameworkGroupVM Get(Guid id) { var vm = KnifeVirgo.CreateVM <FrameworkGroupVM>(id); return(vm); }
public FrameworkMenuVM2 Get(Guid id) { var vm = KnifeVirgo.CreateVM <FrameworkMenuVM2>(id); return(vm); }
public override async Task DoEditAsync(bool updateAllFields = false) { List <Guid> oldIDs = null; if (DpType == DpTypeEnum.User) { oldIDs = DC.Set <DataPrivilege>().Where(x => x.UserId == Entity.UserId && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); } else { oldIDs = DC.Set <DataPrivilege>().Where(x => x.GroupId == Entity.GroupId && x.TableName == this.Entity.TableName).Select(x => x.ID).ToList(); } foreach (var oldid in oldIDs) { DataPrivilege dp = new DataPrivilege { ID = oldid }; DC.Set <DataPrivilege>().Attach(dp); DC.DeleteEntity(dp); } if (IsAll == true) { if (DpType == DpTypeEnum.User) { DataPrivilege dp = new DataPrivilege(); dp.RelateId = null; dp.UserId = Entity.UserId; dp.TableName = this.Entity.TableName; dp.DomainId = this.Entity.DomainId; DC.Set <DataPrivilege>().Add(dp); } else { DataPrivilege dp = new DataPrivilege(); dp.RelateId = null; dp.GroupId = Entity.GroupId; dp.TableName = this.Entity.TableName; dp.DomainId = this.Entity.DomainId; DC.Set <DataPrivilege>().Add(dp); } } else { if (SelectedItemsID != null) { if (DpType == DpTypeEnum.User) { foreach (var id in SelectedItemsID) { DataPrivilege dp = new DataPrivilege(); dp.RelateId = id; dp.UserId = Entity.UserId; dp.TableName = this.Entity.TableName; dp.DomainId = this.Entity.DomainId; DC.Set <DataPrivilege>().Add(dp); } } else { foreach (var id in SelectedItemsID) { DataPrivilege dp = new DataPrivilege(); dp.RelateId = id; dp.GroupId = Entity.GroupId; dp.TableName = this.Entity.TableName; dp.DomainId = this.Entity.DomainId; DC.Set <DataPrivilege>().Add(dp); } } } } await DC.SaveChangesAsync(); if (DpType == DpTypeEnum.User) { await KnifeVirgo.RemoveUserCache(Entity.UserId.ToString()); } else { var userids = DC.Set <FrameworkUserGroup>().Where(x => x.GroupId == Entity.GroupId).Select(x => x.UserId.ToString()).ToArray(); await KnifeVirgo.RemoveUserCache(userids); } }
public override async Task DoDeleteAsync() { await base.DoDeleteAsync(); await KnifeVirgo.RemoveUserCache(Entity.ID.ToString()); }
public async Task <IActionResult> Login([FromForm] string userid, [FromForm] string password, [FromForm] bool rememberLogin = false, [FromForm] bool cookie = true) { var user = await KnifeVirgo.LoadUserFromDB(null, userid, password); //如果没有找到则输出错误 if (user == null) { return(BadRequest(Localizer["LoginFailed"].Value)); } KnifeVirgo.LoginUserInfo = user; if (cookie) // cookie auth { AuthenticationProperties properties = null; if (rememberLogin) { properties = new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTimeOffset.UtcNow.Add(TimeSpan.FromDays(30)) }; } var principal = KnifeVirgo.LoginUserInfo.CreatePrincipal(); // 在上面注册AddAuthentication时,指定了默认的Scheme,在这里便可以不再指定Scheme。 await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, properties); List <SimpleMenu> ms = new List <SimpleMenu>(); LoginUserInfo forapi = new LoginUserInfo(); forapi.Id = user.Id; forapi.ITCode = user.ITCode; forapi.Name = user.Name; forapi.Roles = user.Roles; forapi.Groups = user.Groups; forapi.PhotoId = user.PhotoId; var menus = KnifeVirgo.DC.Set <FunctionPrivilege>() .Where(x => x.UserId == user.Id || (x.RoleId != null && user.Roles.Select(x => x.ID).Contains(x.RoleId.Value))) .Select(x => x.MenuItem) .Where(x => x.MethodName == null) .OrderBy(x => x.DisplayOrder) .Select(x => new SimpleMenu { Id = x.ID.ToString().ToLower(), ParentId = x.ParentId.ToString().ToLower(), Text = x.PageName, Url = x.Url, Icon = x.ICon }).ToList(); LocalizeMenu(menus); ms.AddRange(menus); List <string> urls = new List <string>(); urls.AddRange(KnifeVirgo.DC.Set <FunctionPrivilege>() .Where(x => x.UserId == user.Id || (x.RoleId != null && user.Roles.Select(x => x.ID).Contains(x.RoleId.Value))) .Select(x => x.MenuItem) .Where(x => x.MethodName != null) .Select(x => x.Url) ); urls.AddRange(KnifeVirgo.GlobaInfo.AllModule.Where(x => x.IsApi == true).SelectMany(x => x.Actions).Where(x => (x.IgnorePrivillege == true || x.Module.IgnorePrivillege == true) && x.Url != null).Select(x => x.Url)); forapi.Attributes = new Dictionary <string, object>(); forapi.Attributes.Add("Menus", menus); forapi.Attributes.Add("Actions", urls); return(Ok(forapi)); } else // jwt auth { // 在上面注册AddAuthentication时,指定了默认的Scheme,在这里便可以不再指定Scheme。 await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, KnifeVirgo.LoginUserInfo.CreatePrincipal(), new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTimeOffset.UtcNow.Add(TimeSpan.FromDays(15)) }); var authService = HttpContext.RequestServices.GetService(typeof(ITokenService)) as ITokenService; var token = await authService.IssueTokenAsync(KnifeVirgo.LoginUserInfo); return(Content(JsonSerializer.Serialize(token), "application/json")); } }
public FrameworkRoleMDVM2 GetPageActions(Guid id) { var vm = KnifeVirgo.CreateVM <FrameworkRoleMDVM2>(id); return(vm); }
public string UnsetPages() { var vm = KnifeVirgo.CreateVM <FrameworkActionListVM>(); return(vm.GetJson()); }
public ActionLogVM Get(Guid id) { var vm = KnifeVirgo.CreateVM <ActionLogVM>(id); return(vm); }