using System; using System.Linq; using Volo.Abp.Data; using Volo.Abp.PermissionManagement; namespace Kurs.Platform.Extensions; public static class AbpPermissionsExtensions { /// /// Menü gruplarını pipe karakteriyle ayrılmış string olarak kaydeder. (örnek: "Erp|Kurs") /// public static void SetMenuGroup(this PermissionDefinitionRecord permission, string menuGroup) { if (string.IsNullOrWhiteSpace(menuGroup)) { permission.SetProperty(PlatformConsts.Permissions.MenuGroup, null); return; } // 🔹 Gereksiz boşlukları temizle var cleaned = string.Join( '|', menuGroup .Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries) .Distinct() ); // 🔹 Veritabanına "Erp|Kurs" formatında kaydet permission.SetProperty(PlatformConsts.Permissions.MenuGroup, cleaned); } /// /// Menü gruplarını veritabanındaki pipe formatından string[] olarak döndürür. (örnek: "Erp|Kurs" → ["Erp", "Kurs"]) /// public static string[] GetMenuGroup(this PermissionDefinitionRecord permission) { var value = permission.GetProperty(PlatformConsts.Permissions.MenuGroup); if (string.IsNullOrWhiteSpace(value)) { return Array.Empty(); } // 🔹 "Erp|Kurs" -> ["Erp", "Kurs"] return value .Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries) .Distinct() .ToArray(); } }