diff --git a/api/src/Kurs.Platform.Application.Contracts/Menus/MenuDto.cs b/api/src/Kurs.Platform.Application.Contracts/Menus/MenuDto.cs index 4f852c38..f7ef7414 100644 --- a/api/src/Kurs.Platform.Application.Contracts/Menus/MenuDto.cs +++ b/api/src/Kurs.Platform.Application.Contracts/Menus/MenuDto.cs @@ -21,5 +21,4 @@ public class MenuDto : FullAuditedEntityDto public string UserId { get; set; } // External kullanici id (orn: ali.akman. ihtiyaca gore guid veya int de olabilir) public string RoleId { get; set; } // External role id (orn: ihracat) public string CultureName { get; set; } // Bu tanim hangi dil icin "en", "tr" - public string[] Group { get; set; } // Menu grubu (her tenant farklı menu grupları kullanabilir) } diff --git a/api/src/Kurs.Platform.Application/Menu/MenuAppService.cs b/api/src/Kurs.Platform.Application/Menu/MenuAppService.cs index e01a7ce0..3ebe38b9 100644 --- a/api/src/Kurs.Platform.Application/Menu/MenuAppService.cs +++ b/api/src/Kurs.Platform.Application/Menu/MenuAppService.cs @@ -4,11 +4,15 @@ using System.Linq; using System.Threading.Tasks; using Kurs.Languages.Entities; using Kurs.Platform.Entities; +using Kurs.Platform.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Logging; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; +using Volo.Abp.MultiTenancy; +using Volo.Abp.PermissionManagement; +using Volo.Abp.TenantManagement; using static Kurs.Platform.Data.Seeds.SeedConsts; namespace Kurs.Platform.Menus; @@ -22,30 +26,56 @@ public class MenuAppService : CrudAppService< { private readonly IRepository _menuRepository; private readonly IRepository _repositoryKey; + private readonly ITenantRepository _tenantRepository; + private readonly IPermissionDefinitionRecordRepository _permissionRepository; public MenuAppService( IRepository menuRepository, - IRepository languageKeyRepository) : base(menuRepository) + IRepository languageKeyRepository, + ITenantRepository tenantRepository, + IPermissionDefinitionRecordRepository permissionRepository + ) : base(menuRepository) { _menuRepository = menuRepository; _repositoryKey = languageKeyRepository; + _tenantRepository = tenantRepository; + _permissionRepository = permissionRepository; CreatePolicyName = $"{AppCodes.Menus.Menu}.Create"; UpdatePolicyName = $"{AppCodes.Menus.Menu}.Update"; DeletePolicyName = $"{AppCodes.Menus.Menu}.Delete"; } - public async Task> GetListByGroupAsync(PagedAndSortedResultRequestDto input, string? group = null) + public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) { await CheckGetListPolicyAsync(); var query = await CreateFilteredQueryAsync(input); query = query.Where(a => !a.IsDisabled); - // Group filtrelemesi ekle - if (!string.IsNullOrEmpty(group)) + //Tenant üzerinden MenuGrup bilgisi alınıp sadece o menüler listelenecek + // 🔹 Tenant'a göre filtrele + if (CurrentTenant.IsAvailable) { - query = query.Where(a => a.Group.Contains(group) || a.Group.Any(g => g == group)); + var tenant = await _tenantRepository.FindAsync(CurrentTenant.Id.Value); + if (tenant != null) + { + var tenantMenuGroup = tenant.GetMenuGroup(); + if (!tenantMenuGroup.IsNullOrWhiteSpace()) + { + var permissionRecords = await _permissionRepository.GetListAsync(); + var allowedPermissionNames = permissionRecords + .Where(p => p.GetMenuGroup().Contains(tenantMenuGroup)) + .Select(p => p.Name) + .Distinct() + .ToList(); + + query = query.Where(menu => + string.IsNullOrEmpty(menu.RequiredPermissionName) || + allowedPermissionNames.Contains(menu.RequiredPermissionName)); + } + + } } var totalCount = await AsyncExecuter.CountAsync(query); @@ -91,11 +121,6 @@ public class MenuAppService : CrudAppService< ); } - public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) - { - return await GetListByGroupAsync(input, null); - } - public override async Task CreateAsync(MenuDto input) { await CheckCreatePolicyAsync(); diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json b/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json index 61df9f9d..f00fd27e 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json @@ -13576,8 +13576,7 @@ "Url": null, "Icon": "FcTabletAndroid", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": null, @@ -13587,8 +13586,7 @@ "Url": null, "Icon": "FcPodiumWithAudience", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13598,8 +13596,7 @@ "Url": "/admin/list/list-tenant", "Icon": "FcDepartment", "RequiredPermissionName": "AbpTenantManagement.Tenants", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13609,8 +13606,7 @@ "Url": "/admin/list/list-branch", "Icon": "FcTreeStructure", "RequiredPermissionName": "App.Branches", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13620,8 +13616,7 @@ "Url": null, "Icon": "FcCircuit", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Settings", @@ -13631,8 +13626,7 @@ "Url": "/admin/list/list-settingdefinition", "Icon": "FcSupport", "RequiredPermissionName": "App.Settings.SettingDefinitions", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Settings", @@ -13642,8 +13636,7 @@ "Url": "/admin/list/list-globalsearch", "Icon": "FcSearch", "RequiredPermissionName": "App.Settings.GlobalSearch", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13653,8 +13646,7 @@ "Url": null, "Icon": "FcGlobe", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Languages", @@ -13664,8 +13656,7 @@ "Url": "/admin/list/list-language", "Icon": "FcGraduationCap", "RequiredPermissionName": "App.Languages.Language", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Languages", @@ -13675,8 +13666,7 @@ "Url": "/admin/list/list-languagetext", "Icon": "FcMindMap", "RequiredPermissionName": "App.Languages.LanguageText", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13686,8 +13676,7 @@ "Url": "/admin/list/list-route", "Icon": "FaSynagogue", "RequiredPermissionName": "App.Routes", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13697,8 +13686,7 @@ "Url": null, "Icon": "FaSchlix", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Menus", @@ -13708,8 +13696,7 @@ "Url": "/admin/list/list-menu", "Icon": "FcMenu", "RequiredPermissionName": "App.Menus.Menu", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Menus", @@ -13719,8 +13706,7 @@ "Url": "/admin/menuManager", "Icon": "FaRegListAlt", "RequiredPermissionName": "App.Menus.Manager", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13730,8 +13716,7 @@ "Url": null, "Icon": "FcList", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Listforms", @@ -13741,8 +13726,7 @@ "Url": "/admin/list/list-datasource", "Icon": "FcAcceptDatabase", "RequiredPermissionName": "App.Listforms.DataSource", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Listforms", @@ -13752,8 +13736,7 @@ "Url": "/admin/listform/wizard", "Icon": "FcFlashAuto", "RequiredPermissionName": "App.Listforms.Wizard", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Listforms", @@ -13763,8 +13746,7 @@ "Url": "/admin/list/list-listform", "Icon": "FcDataSheet", "RequiredPermissionName": "App.Listforms.Listform", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13774,8 +13756,7 @@ "Url": null, "Icon": "FcWorkflow", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Notifications", @@ -13785,8 +13766,7 @@ "Url": "/admin/list/list-notificationrule", "Icon": "FcLibrary", "RequiredPermissionName": "App.Notifications.NotificationRules", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Notifications", @@ -13796,8 +13776,7 @@ "Url": "/admin/list/list-notification", "Icon": "FcBrokenLink", "RequiredPermissionName": "App.Notifications.Notification", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13807,8 +13786,7 @@ "Url": "/admin/list/list-backgroundworker", "Icon": "FcScatterPlot", "RequiredPermissionName": "App.BackgroundWorkers", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13818,8 +13796,7 @@ "Url": "/admin/forumManagement", "Icon": "FcReading", "RequiredPermissionName": "App.ForumManagement", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Saas", @@ -13829,8 +13806,7 @@ "Url": null, "Icon": "FcFilingCabinet", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13840,8 +13816,7 @@ "Url": "/admin/list/list-contactTag", "Icon": "FcButtingIn", "RequiredPermissionName": "App.Parameters.ContactTag", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13851,8 +13826,7 @@ "Url": "/admin/list/list-contactTitle", "Icon": "FcNeutralDecision", "RequiredPermissionName": "App.Parameters.ContactTitle", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13862,8 +13836,7 @@ "Url": "/admin/list/list-currency", "Icon": "FcCurrencyExchange", "RequiredPermissionName": "App.Parameters.Currency", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13873,8 +13846,7 @@ "Url": "/admin/list/list-countryGroup", "Icon": "FaFlag", "RequiredPermissionName": "App.Parameters.CountryGroup", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13884,8 +13856,7 @@ "Url": "/admin/list/list-country", "Icon": "FaFlagCheckered", "RequiredPermissionName": "App.Parameters.Country", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13895,8 +13866,7 @@ "Url": "/admin/list/list-city", "Icon": "FaFontAwesomeFlag", "RequiredPermissionName": "App.Parameters.City", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Parameters", @@ -13906,8 +13876,7 @@ "Url": "/admin/list/list-district", "Icon": "FaFontAwesome", "RequiredPermissionName": "App.Parameters.District", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": null, @@ -13917,8 +13886,7 @@ "Url": null, "Icon": "FcOrganization", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -13928,8 +13896,7 @@ "Url": "/admin/settings", "Icon": "FcSettings", "RequiredPermissionName": "App.Setting", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -13939,8 +13906,7 @@ "Url": null, "Icon": "FcConferenceCall", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -13950,8 +13916,7 @@ "Url": "/admin/list/list-permissiongroup", "Icon": "FcEngineering", "RequiredPermissionName": "Abp.Identity.PermissionGroups", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -13961,8 +13926,7 @@ "Url": "/admin/list/list-permission", "Icon": "FcSupport", "RequiredPermissionName": "Abp.Identity.Permissions", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -13972,8 +13936,7 @@ "Url": "/admin/list/list-claimtype", "Icon": "FcOrganization", "RequiredPermissionName": "App.ClaimType", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -13983,8 +13946,7 @@ "Url": "/admin/list/list-role", "Icon": "FcFlowChart", "RequiredPermissionName": "AbpIdentity.Roles", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -13994,8 +13956,7 @@ "Url": "/admin/list/list-user", "Icon": "FcBusinessman", "RequiredPermissionName": "AbpIdentity.Users", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -14005,8 +13966,7 @@ "Url": "/admin/ous", "Icon": "FcOrganization", "RequiredPermissionName": "Abp.Identity.OrganizationUnits", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -14016,8 +13976,7 @@ "Url": "/admin/list/list-iprestriction", "Icon": "FcNfcSign", "RequiredPermissionName": "App.IpRestrictions", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "Abp.Identity", @@ -14027,8 +13986,7 @@ "Url": "/admin/list/list-auditlog", "Icon": "FcMultipleInputs", "RequiredPermissionName": "App.AuditLogs", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -14038,8 +13996,7 @@ "Url": null, "Icon": "FcAndroidOs", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.DeveloperKit", @@ -14049,8 +14006,7 @@ "Url": "/admin/developerkit", "Icon": "FcBinoculars", "RequiredPermissionName": "App.DeveloperKit", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.DeveloperKit", @@ -14060,8 +14016,7 @@ "Url": "/admin/developerkit/entities", "Icon": "FcAddRow", "RequiredPermissionName": "App.DeveloperKit.Entity", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.DeveloperKit", @@ -14071,8 +14026,7 @@ "Url": "/admin/developerkit/migrations", "Icon": "FcAddDatabase", "RequiredPermissionName": "App.DeveloperKit.Migrations", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.DeveloperKit", @@ -14082,8 +14036,7 @@ "Url": "/admin/developerkit/endpoints", "Icon": "FcOrgUnit", "RequiredPermissionName": "App.DeveloperKit.Endpoints", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.DeveloperKit", @@ -14093,8 +14046,7 @@ "Url": "/admin/list/list-customendpoint", "Icon": "FcMindMap", "RequiredPermissionName": "App.DeveloperKit.CustomEndpoints", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.DeveloperKit", @@ -14104,8 +14056,7 @@ "Url": "/admin/developerkit/components", "Icon": "FcBiohazard", "RequiredPermissionName": "App.DeveloperKit.Components", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -14115,8 +14066,7 @@ "Url": null, "Icon": "FcDocument", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Reports.Management", @@ -14126,8 +14076,7 @@ "Url": "/admin/list/list-reportcategory", "Icon": "FcProcess", "RequiredPermissionName": "App.Reports.Categories", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Reports.Management", @@ -14137,8 +14086,7 @@ "Url": "/admin/reports/management", "Icon": "FcSimCardChip", "RequiredPermissionName": "App.Reports.Management", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -14148,8 +14096,7 @@ "Url": "/admin/forum", "Icon": "FcLink", "RequiredPermissionName": "App.ForumManagement.Publish", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -14159,8 +14106,7 @@ "Url": null, "Icon": "FcGenealogy", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14170,8 +14116,7 @@ "Url": "/admin/list/list-about", "Icon": "FcAbout", "RequiredPermissionName": "App.About", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14181,8 +14126,7 @@ "Url": "/admin/list/list-service", "Icon": "FcServices", "RequiredPermissionName": "App.Services", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14192,8 +14136,7 @@ "Url": "/admin/list/list-product", "Icon": "FcDiploma1", "RequiredPermissionName": "App.Orders.Products", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14203,8 +14146,7 @@ "Url": "/admin/list/list-paymentmethod", "Icon": "FcFeedIn", "RequiredPermissionName": "App.Orders.PaymentMethods", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14214,8 +14156,7 @@ "Url": "/admin/list/list-installmentoption", "Icon": "FcProcess", "RequiredPermissionName": "App.Orders.InstallmentOptions", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14225,8 +14166,7 @@ "Url": "/admin/list/list-purchaseorder", "Icon": "FcCollect", "RequiredPermissionName": "App.Orders.PurchaseOrders", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14236,8 +14176,7 @@ "Url": "/admin/list/list-blogcategory", "Icon": "FaCertificate", "RequiredPermissionName": "App.BlogManagement.Category", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14247,8 +14186,7 @@ "Url": "/admin/list/list-blogpost", "Icon": "FaWeixin", "RequiredPermissionName": "App.BlogManagement.Posts", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14258,8 +14196,7 @@ "Url": "/admin/list/list-demo", "Icon": "FcMissedCall", "RequiredPermissionName": "App.Demos", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Public", @@ -14269,8 +14206,7 @@ "Url": "/admin/list/list-contact", "Icon": "FcContacts", "RequiredPermissionName": "App.Contact", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Administration", @@ -14280,8 +14216,7 @@ "Url": null, "Icon": "FcFilingCabinet", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14291,8 +14226,7 @@ "Url": "/admin/list/list-sector", "Icon": "FcBiomass", "RequiredPermissionName": "App.Definitions.Sector", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14302,8 +14236,7 @@ "Url": "/admin/list/list-skillType", "Icon": "FcMindMap", "RequiredPermissionName": "App.Definitions.SkillType", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14313,8 +14246,7 @@ "Url": "/admin/list/list-uomCategory", "Icon": "FcWorkflow", "RequiredPermissionName": "App.Definitions.UomCategory", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14324,8 +14256,7 @@ "Url": "/admin/list/list-behavior", "Icon": "FcPuzzle", "RequiredPermissionName": "App.Definitions.Behavior", - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14335,8 +14266,7 @@ "Url": "/admin/list/list-disease", "Icon": "FcBiohazard", "RequiredPermissionName": "App.Definitions.Disease", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14346,8 +14276,7 @@ "Url": "/admin/list/list-document", "Icon": "FcDocument", "RequiredPermissionName": "App.Definitions.Document", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14357,8 +14286,7 @@ "Url": "/admin/list/list-educationstatus", "Icon": "FcGraduationCap", "RequiredPermissionName": "App.Definitions.EducationStatus", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14368,8 +14296,7 @@ "Url": "/admin/list/list-eventtype", "Icon": "FcPlanner", "RequiredPermissionName": "App.Definitions.EventType", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14379,8 +14306,7 @@ "Url": "/admin/list/list-eventcategory", "Icon": "FcTreeStructure", "RequiredPermissionName": "App.Definitions.EventCategory", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14390,8 +14316,7 @@ "Url": "/admin/list/list-event", "Icon": "FcCalendar", "RequiredPermissionName": "App.Definitions.Event", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14401,8 +14326,7 @@ "Url": "/admin/list/list-vaccine", "Icon": "FcBiotech", "RequiredPermissionName": "App.Definitions.Vaccine", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14412,8 +14336,7 @@ "Url": "/admin/list/list-vehicle", "Icon": "FcAutomotive", "RequiredPermissionName": "App.Definitions.Vehicle", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14423,8 +14346,7 @@ "Url": "/admin/list/list-psychologist", "Icon": "FcMindMap", "RequiredPermissionName": "App.Definitions.Psychologist", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14434,8 +14356,7 @@ "Url": "/admin/list/list-workhour", "Icon": "FcClock", "RequiredPermissionName": "App.Definitions.WorkHour", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14445,8 +14366,7 @@ "Url": "/admin/list/list-lawyer", "Icon": "FcBusinessman", "RequiredPermissionName": "App.Definitions.Lawyer", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Definitions", @@ -14456,8 +14376,7 @@ "Url": "/admin/list/list-meal", "Icon": "FcLike", "RequiredPermissionName": "App.Definitions.Meal", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": null, @@ -14467,8 +14386,7 @@ "Url": null, "Icon": "FcContacts", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14478,8 +14396,7 @@ "Url": null, "Icon": "FcFilingCabinet", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp", "Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM.Definitions", @@ -14489,8 +14406,7 @@ "Url": "/admin/list/list-meetingmethod", "Icon": "FcCollaboration", "RequiredPermissionName": "App.Definitions.MeetingMethod", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM.Definitions", @@ -14500,8 +14416,7 @@ "Url": "/admin/list/list-meetingresult", "Icon": "FcApproval", "RequiredPermissionName": "App.Definitions.MeetingResult", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM.Definitions", @@ -14511,8 +14426,7 @@ "Url": "/admin/list/list-source", "Icon": "FcAdvertising", "RequiredPermissionName": "App.Definitions.Source", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM.Definitions", @@ -14522,8 +14436,7 @@ "Url": "/admin/list/list-interesting", "Icon": "FcIdea", "RequiredPermissionName": "App.Definitions.Interesting", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM.Definitions", @@ -14533,8 +14446,7 @@ "Url": "/admin/list/list-salesrejectionreason", "Icon": "FcCancel", "RequiredPermissionName": "App.Definitions.SalesRejectionReason", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM.Definitions", @@ -14544,8 +14456,7 @@ "Url": "/admin/list/list-notetype", "Icon": "FcTodoList", "RequiredPermissionName": "App.Definitions.NoteType", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14555,8 +14466,7 @@ "Url": "/admin/crm/customers", "Icon": "FcBusinessman", "RequiredPermissionName": "App.CRM.Customers", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14566,8 +14476,7 @@ "Url": "/admin/crm/sales-teams", "Icon": "FcCollaboration", "RequiredPermissionName": "App.CRM.SalesTeams", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14577,8 +14486,7 @@ "Url": "/admin/crm/loss-reasons", "Icon": "FcHighPriority", "RequiredPermissionName": "App.CRM.LossReasons", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14588,8 +14496,7 @@ "Url": "/admin/crm/opportunities", "Icon": "FcIdea", "RequiredPermissionName": "App.CRM.Opportunities", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14599,8 +14506,7 @@ "Url": "/admin/crm/activities", "Icon": "FcCalendar", "RequiredPermissionName": "App.CRM.Activities", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.CRM", @@ -14610,8 +14516,7 @@ "Url": "/admin/crm/sales-orders", "Icon": "FcShop", "RequiredPermissionName": "App.CRM.SalesOrders", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -14621,8 +14526,7 @@ "Url": null, "Icon": "FcCollaboration", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator", @@ -14632,8 +14536,7 @@ "Url": null, "Icon": "FcFilingCabinet", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14643,8 +14546,7 @@ "Url": "/admin/list/list-program", "Icon": "FcFlowChart", "RequiredPermissionName": "App.Definitions.Program", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14654,8 +14556,7 @@ "Url": "/admin/list/list-schedule", "Icon": "FcPlanner", "RequiredPermissionName": "App.Definitions.Schedule", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14665,8 +14566,7 @@ "Url": "/admin/list/list-registrationtype", "Icon": "FcTodoList", "RequiredPermissionName": "App.Definitions.RegistrationType", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14676,8 +14576,7 @@ "Url": "/admin/list/list-registrationmethod", "Icon": "FcCollaboration", "RequiredPermissionName": "App.Definitions.RegistrationMethod", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14687,8 +14586,7 @@ "Url": "/admin/list/list-classtype", "Icon": "FcTreeStructure", "RequiredPermissionName": "App.Definitions.ClassType", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14698,8 +14596,7 @@ "Url": "/admin/list/list-class", "Icon": "FcConferenceCall", "RequiredPermissionName": "App.Definitions.Class", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14709,8 +14606,7 @@ "Url": "/admin/list/list-level", "Icon": "FcGraduationCap", "RequiredPermissionName": "App.Definitions.Level", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14720,8 +14616,7 @@ "Url": "/admin/list/list-classcancellationreason", "Icon": "FcDisapprove", "RequiredPermissionName": "App.Definitions.ClassCancellationReason", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator.Definitions", @@ -14731,8 +14626,7 @@ "Url": "/admin/list/list-lessonperiod", "Icon": "FcClock", "RequiredPermissionName": "App.Definitions.LessonPeriod", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Coordinator", @@ -14742,8 +14636,7 @@ "Url": "/admin/classroom/dashboard", "Icon": "FcNeutralDecision", "RequiredPermissionName": "App.Classroom.Dashboard", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": null, @@ -14753,8 +14646,7 @@ "Url": null, "Icon": "FcProcess", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14764,8 +14656,7 @@ "Url": "/admin/supplychain/materials/types", "Icon": "FcDataSheet", "RequiredPermissionName": "App.SupplyChain.MaterialTypes", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14775,8 +14666,7 @@ "Url": "/admin/supplychain/materials/groups", "Icon": "FcGrid", "RequiredPermissionName": "App.SupplyChain.MaterialGroups", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14786,8 +14676,7 @@ "Url": "/admin/supplychain/materials", "Icon": "FcTodoList", "RequiredPermissionName": "App.SupplyChain.Materials", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14797,8 +14686,7 @@ "Url": "/admin/supplychain/suppliers", "Icon": "FcBusiness", "RequiredPermissionName": "App.SupplyChain.Suppliers", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14808,8 +14696,7 @@ "Url": "/admin/supplychain/requests", "Icon": "FcServices", "RequiredPermissionName": "App.SupplyChain.Requests", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14819,8 +14706,7 @@ "Url": "/admin/supplychain/quotations", "Icon": "FcSurvey", "RequiredPermissionName": "App.SupplyChain.Quotations", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14830,8 +14716,7 @@ "Url": "/admin/supplychain/approvals", "Icon": "FcApproval", "RequiredPermissionName": "App.SupplyChain.Approvals", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14841,8 +14726,7 @@ "Url": "/admin/supplychain/orders", "Icon": "FcShop", "RequiredPermissionName": "App.SupplyChain.Orders", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.SupplyChain", @@ -14852,8 +14736,7 @@ "Url": "/admin/supplychain/delivery", "Icon": "FcShipped", "RequiredPermissionName": "App.SupplyChain.Delivery", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -14863,8 +14746,7 @@ "Url": null, "Icon": "FcFactory", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Maintenance", @@ -14874,8 +14756,7 @@ "Url": "/admin/maintenance/workcenters", "Icon": "FcWorkflow", "RequiredPermissionName": "App.Maintenance.Workcenters", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Maintenance", @@ -14885,8 +14766,7 @@ "Url": "/admin/maintenance/plans", "Icon": "FcPlanner", "RequiredPermissionName": "App.Maintenance.Plans", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Maintenance", @@ -14896,8 +14776,7 @@ "Url": "/admin/maintenance/calendar", "Icon": "FcCalendar", "RequiredPermissionName": "App.Maintenance.Calendar", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Maintenance", @@ -14907,8 +14786,7 @@ "Url": "/admin/maintenance/teams", "Icon": "FcConferenceCall", "RequiredPermissionName": "App.Maintenance.Teams", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Maintenance", @@ -14918,8 +14796,7 @@ "Url": "/admin/maintenance/faults", "Icon": "FcHighPriority", "RequiredPermissionName": "App.Maintenance.Faults", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Maintenance", @@ -14929,8 +14806,7 @@ "Url": "/admin/maintenance/workorders", "Icon": "FcList", "RequiredPermissionName": "App.Maintenance.Workorders", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -14940,8 +14816,7 @@ "Url": null, "Icon": "FcOpenedFolder", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -14951,8 +14826,7 @@ "Url": "/admin/warehouse/definitions", "Icon": "FcTodoList", "RequiredPermissionName": "App.Warehouse.Definitions", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -14962,8 +14836,7 @@ "Url": "/admin/warehouse/tracking", "Icon": "FcSearch", "RequiredPermissionName": "App.Warehouse.Tracking", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -14973,8 +14846,7 @@ "Url": "/admin/warehouse/putaway", "Icon": "FcCompactCamera", "RequiredPermissionName": "App.Warehouse.Putaway", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -14984,8 +14856,7 @@ "Url": "/admin/warehouse/receipt", "Icon": "FcImport", "RequiredPermissionName": "App.Warehouse.Receipt", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -14995,8 +14866,7 @@ "Url": "/admin/warehouse/issue", "Icon": "FcExport", "RequiredPermissionName": "App.Warehouse.Issue", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -15006,8 +14876,7 @@ "Url": "/admin/warehouse/transfer", "Icon": "FcSynchronize", "RequiredPermissionName": "App.Warehouse.Transfer", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -15017,8 +14886,7 @@ "Url": "/admin/warehouse/inventory", "Icon": "FcInspection", "RequiredPermissionName": "App.Warehouse.Inventory", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -15028,8 +14896,7 @@ "Url": "/admin/warehouse/movements", "Icon": "FcParallelTasks", "RequiredPermissionName": "App.Warehouse.Movements", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Warehouse", @@ -15039,8 +14906,7 @@ "Url": "/admin/warehouse/stocklevel", "Icon": "FcViewDetails", "RequiredPermissionName": "App.Warehouse.Stocklevel", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -15050,8 +14916,7 @@ "Url": null, "Icon": "FcTimeline", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15061,8 +14926,7 @@ "Url": "/admin/projects", "Icon": "FcTodoList", "RequiredPermissionName": "App.Projects.List", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15072,8 +14936,7 @@ "Url": "/admin/projects/tasks", "Icon": "FcBullish", "RequiredPermissionName": "App.Projects.Tasks", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15083,8 +14946,7 @@ "Url": "/admin/projects/phases", "Icon": "FcParallelTasks", "RequiredPermissionName": "App.Projects.Phases", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15094,8 +14956,7 @@ "Url": "/admin/projects/activities", "Icon": "FcPlanner", "RequiredPermissionName": "App.Projects.Activities", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15105,8 +14966,7 @@ "Url": "/admin/projects/workload", "Icon": "FcFlowChart", "RequiredPermissionName": "App.Projects.Workload", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15116,8 +14976,7 @@ "Url": "/admin/projects/cost-tracking", "Icon": "FcMoneyTransfer", "RequiredPermissionName": "App.Projects.CostTracking", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Projects", @@ -15127,8 +14986,7 @@ "Url": "/admin/projects/daily-updates", "Icon": "FcConferenceCall", "RequiredPermissionName": "App.Projects.DailyUpdates", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -15138,8 +14996,7 @@ "Url": null, "Icon": "FcBusinessman", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15149,8 +15006,7 @@ "Url": "/admin/hr/employees", "Icon": "FcConferenceCall", "RequiredPermissionName": "App.HR.Employees", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15160,8 +15016,7 @@ "Url": "/admin/hr/departments", "Icon": "FcDepartment", "RequiredPermissionName": "App.HR.Departments", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15171,8 +15026,7 @@ "Url": "/admin/hr/job-positions", "Icon": "FcCollaboration", "RequiredPermissionName": "App.HR.JobPositions", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15182,8 +15036,7 @@ "Url": "/admin/hr/employment-types", "Icon": "FcBriefcase", "RequiredPermissionName": "App.HR.EmploymentTypes", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15193,8 +15046,7 @@ "Url": "/admin/hr/organization", "Icon": "FcTreeStructure", "RequiredPermissionName": "App.HR.Organization", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15204,8 +15056,7 @@ "Url": "/admin/hr/badges", "Icon": "FcLike", "RequiredPermissionName": "App.HR.Badges", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15215,8 +15066,7 @@ "Url": "/admin/hr/leave-management", "Icon": "FcCalendar", "RequiredPermissionName": "App.HR.LeaveManagement", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15226,8 +15076,7 @@ "Url": "/admin/hr/overtimes-management", "Icon": "FcClock", "RequiredPermissionName": "App.HR.Overtimes", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15237,8 +15086,7 @@ "Url": "/admin/hr/payroll", "Icon": "FcMoneyTransfer", "RequiredPermissionName": "App.HR.Payroll", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15248,8 +15096,7 @@ "Url": "/admin/hr/cost-centers", "Icon": "FcSalesPerformance", "RequiredPermissionName": "App.HR.CostCenters", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15259,8 +15106,7 @@ "Url": "/admin/hr/360-templates", "Icon": "FcInspection", "RequiredPermissionName": "App.HR.EvaluationTemplates", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.HR", @@ -15270,8 +15116,7 @@ "Url": "/admin/hr/360-evaluation", "Icon": "FcSurvey", "RequiredPermissionName": "App.HR.Evaluation", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -15281,8 +15126,7 @@ "Url": null, "Icon": "FcServices", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15292,8 +15136,7 @@ "Url": "/admin/mrp/operation-types", "Icon": "FcEngineering", "RequiredPermissionName": "App.MRP.OperationTypes", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15303,8 +15146,7 @@ "Url": "/admin/mrp/workcenters", "Icon": "FcWorkflow", "RequiredPermissionName": "App.MRP.Workcenters", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15314,8 +15156,7 @@ "Url": "/admin/mrp/operations", "Icon": "FcFlashOn", "RequiredPermissionName": "App.MRP.Operations", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15325,8 +15166,7 @@ "Url": "/admin/mrp/bom", "Icon": "FcFlowChart", "RequiredPermissionName": "App.MRP.Bom", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15336,8 +15176,7 @@ "Url": "/admin/mrp/production-orders", "Icon": "FcFactory", "RequiredPermissionName": "App.MRP.ProductionOrders", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15347,8 +15186,7 @@ "Url": "/admin/mrp/work-orders", "Icon": "FcList", "RequiredPermissionName": "App.MRP.WorkOrders", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15358,8 +15196,7 @@ "Url": "/admin/mrp/demand-planning", "Icon": "FcPlanner", "RequiredPermissionName": "App.MRP.DemandPlanning", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15369,8 +15206,7 @@ "Url": "/admin/mrp/material-requirements", "Icon": "FcDataSheet", "RequiredPermissionName": "App.MRP.MaterialRequirements", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.MRP", @@ -15380,8 +15216,7 @@ "Url": "/admin/mrp/planning-gantt", "Icon": "FcTimeline", "RequiredPermissionName": "App.MRP.PlanningGantt", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": null, @@ -15391,8 +15226,7 @@ "Url": null, "Icon": "FcMoneyTransfer", "RequiredPermissionName": null, - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15402,8 +15236,7 @@ "Url": "/admin/list/list-bank", "Icon": "FcMoneyTransfer", "RequiredPermissionName": "App.Definitions.Bank", - "IsDisabled": false, - "Group": ["Kurs"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15413,8 +15246,7 @@ "Url": "/admin/accounting/current-accounts", "Icon": "FcDebt", "RequiredPermissionName": "App.Accounting.CurrentAccounts", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15424,8 +15256,7 @@ "Url": "/admin/accounting/waybills", "Icon": "FcSurvey", "RequiredPermissionName": "App.Accounting.Waybills", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15435,8 +15266,7 @@ "Url": "/admin/accounting/invoices", "Icon": "FcSalesPerformance", "RequiredPermissionName": "App.Accounting.Invoices", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15446,8 +15276,7 @@ "Url": "/admin/accounting/cash", "Icon": "FcMoneyTransfer", "RequiredPermissionName": "App.Accounting.Cash", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15457,8 +15286,7 @@ "Url": "/admin/accounting/bank", "Icon": "FcSalesPerformance", "RequiredPermissionName": "App.Accounting.Bank", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false }, { "ParentCode": "App.Accounting", @@ -15468,8 +15296,7 @@ "Url": "/admin/accounting/check-note", "Icon": "FcInspection", "RequiredPermissionName": "App.Accounting.CheckNote", - "IsDisabled": false, - "Group": ["Erp"] + "IsDisabled": false } ], "NotificationRules": [ diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/HostDataSeeder.cs b/api/src/Kurs.Platform.DbMigrator/Seeds/HostDataSeeder.cs index f5c28c2e..d00573cc 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/HostDataSeeder.cs +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/HostDataSeeder.cs @@ -470,7 +470,6 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency Icon = item.Icon, RequiredPermissionName = item.RequiredPermissionName, IsDisabled = item.IsDisabled, - Group = item.Group }); } } diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/HostSeederDto.cs b/api/src/Kurs.Platform.DbMigrator/Seeds/HostSeederDto.cs index c66db43b..f78b6ca3 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/HostSeederDto.cs +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/HostSeederDto.cs @@ -66,7 +66,6 @@ public class MenuSeedDto public string Icon { get; set; } public string RequiredPermissionName { get; set; } public bool IsDisabled { get; set; } - public string[] Group { get; set; } } public class PermissionGroupDefinitionRecordSeedDto diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs b/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs index b925de67..c18478f6 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs @@ -2938,7 +2938,6 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency new () { Key="Erp", Name="Erp" }, }), }), - ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto { AllowReordering = true, @@ -4158,6 +4157,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency new EditingFormItemDto { Order=3, DataField="DisplayName", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order=4, DataField="IsEnabled", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order=5, DataField="MultiTenancySide", ColSpan=2, IsRequired=false, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order=6, DataField="MenuGroup", ColSpan=2, IsRequired=true, EditorType2=EditorTypes.dxTagBox }, ] } }), @@ -4432,6 +4432,47 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency { IsPivot = true }) + }, + new ListFormField + { + ListFormCode = listFormPermissions.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int16, + FieldName = "MenuGroup", + Width = 85, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="Kurs",Name="Kurs" }, + new () { Key="Erp",Name="Erp" }, + }), + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AbpIdentity.Permissions.Create, + R = AbpIdentity.Permissions.Default, + U = AbpIdentity.Permissions.Update, + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) } }); #endregion diff --git a/api/src/Kurs.Platform.Domain/Entities/Host/Menu.cs b/api/src/Kurs.Platform.Domain/Entities/Host/Menu.cs index 4948c54f..77033a20 100644 --- a/api/src/Kurs.Platform.Domain/Entities/Host/Menu.cs +++ b/api/src/Kurs.Platform.Domain/Entities/Host/Menu.cs @@ -21,6 +21,5 @@ public class Menu : FullAuditedEntity public string UserId { get; set; } // External kullanici id (orn: ali.akman. ihtiyaca gore guid veya int de olabilir) public string RoleId { get; set; } // External role id (orn: ihracat) public string CultureName { get; set; } // Bu tanim hangi dil icin "en", "tr" - public string[] Group { get; set; } // Menu grubu (her tenant farklı menu grupları kullanabilir) } diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index 1343476e..47af45ee 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -303,7 +303,6 @@ public class PlatformDbContext : b.Property(a => a.UserId).HasMaxLength(256); b.Property(a => a.RoleId).HasMaxLength(256); b.Property(a => a.CultureName).HasMaxLength(50); - b.Property(a => a.Group).HasMaxLength(64); }); builder.Entity(b => diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251011214108_Initial.Designer.cs b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251012075048_Initial.Designer.cs similarity index 99% rename from api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251011214108_Initial.Designer.cs rename to api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251012075048_Initial.Designer.cs index 4d733258..a19e3b54 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251011214108_Initial.Designer.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251012075048_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Kurs.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20251011214108_Initial")] + [Migration("20251012075048_Initial")] partial class Initial { /// @@ -4482,10 +4482,6 @@ namespace Kurs.Platform.Migrations .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.PrimitiveCollection("Group") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - b.Property("Icon") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251011214108_Initial.cs b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251012075048_Initial.cs similarity index 99% rename from api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251011214108_Initial.cs rename to api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251012075048_Initial.cs index 605a171d..066fba37 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251011214108_Initial.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251012075048_Initial.cs @@ -1689,7 +1689,6 @@ namespace Kurs.Platform.Migrations UserId = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), RoleId = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), CultureName = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), - Group = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), CreatorId = table.Column(type: "uniqueidentifier", nullable: true), LastModificationTime = table.Column(type: "datetime2", nullable: true), diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index c646b85b..57c726b0 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -4479,10 +4479,6 @@ namespace Kurs.Platform.Migrations .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.PrimitiveCollection("Group") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - b.Property("Icon") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); diff --git a/ui/src/services/menu.service.ts b/ui/src/services/menu.service.ts index 3e47e5ba..a10cd150 100644 --- a/ui/src/services/menu.service.ts +++ b/ui/src/services/menu.service.ts @@ -45,16 +45,15 @@ export class MenuService { { apiName: this.apiName }, ) - getList = (input: PagedAndSortedResultRequestDto, group?: string | null) => + getList = (input: PagedAndSortedResultRequestDto) => apiService.fetchData, PagedAndSortedResultRequestDto>( { method: 'GET', - url: '/api/app/menu/by-group', + url: '/api/app/menu', params: { sorting: input.sorting, skipCount: input.skipCount, - maxResultCount: input.maxResultCount, - group: group, + maxResultCount: input.maxResultCount }, }, { apiName: this.apiName }, @@ -80,7 +79,6 @@ export const getMenus = async (skipCount = 0, maxResultCount = 1000, sorting = ' sorting, skipCount, maxResultCount, - }, - null, //tenant.menuGroup ?? null, + } ) } diff --git a/ui/src/store/abpConfig.model.ts b/ui/src/store/abpConfig.model.ts index e023700f..1223a5fc 100644 --- a/ui/src/store/abpConfig.model.ts +++ b/ui/src/store/abpConfig.model.ts @@ -71,33 +71,20 @@ export const abpConfigModel: AbpConfigModel = { mainMenu: [], }, setMenu: action((state, payload) => { - // const formMenu: NavigationTree = { - // key: 'form', - // path: 'form/Form-0001', - // title: 'Form', - // type: 'item', - // translateKey: 'form', - // icon: 'form', - // subMenu: [], - // authority: [], - // } - // state.menu.mainMenu = [...payload, formMenu] state.menu.mainMenu = [...payload] }), getMenu: thunk(async (actions, _, { injections, getState, getStoreState }) => { - const { session, tenant } = getStoreState().auth - if (!session.signedIn) { + const { signedIn } = getStoreState().auth.session + if (!signedIn) { return } - const menuGroup = tenant.menuGroup ?? null const result = await injections.menuService.getList( { sorting: 'order', skipCount: 0, maxResultCount: 1000, - }, - menuGroup, + } ) const texts = getState().texts