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();
}
}