erp-platform/api/src/Erp.Platform.Domain/Extensions/AbpPermissionsExtensions.cs

53 lines
1.6 KiB
C#
Raw Normal View History

using System;
2025-10-12 18:45:03 +00:00
using System.Linq;
using Volo.Abp.Data;
using Volo.Abp.PermissionManagement;
2025-11-11 19:49:52 +00:00
namespace Erp.Platform.Extensions;
public static class AbpPermissionsExtensions
{
2025-10-12 18:45:03 +00:00
/// <summary>
/// Menü gruplarını pipe karakteriyle ayrılmış string olarak kaydeder. (örnek: "Erp|Kurs")
/// </summary>
public static void SetMenuGroup(this PermissionDefinitionRecord permission, string menuGroup)
{
2025-10-12 18:45:03 +00:00
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);
}
2025-10-12 18:45:03 +00:00
/// <summary>
/// Menü gruplarını veritabanındaki pipe formatından string[] olarak döndürür. (örnek: "Erp|Kurs" → ["Erp", "Kurs"])
/// </summary>
public static string[] GetMenuGroup(this PermissionDefinitionRecord permission)
{
2025-10-12 18:45:03 +00:00
var value = permission.GetProperty<string>(PlatformConsts.Permissions.MenuGroup);
if (string.IsNullOrWhiteSpace(value))
{
return Array.Empty<string>();
}
// 🔹 "Erp|Kurs" -> ["Erp", "Kurs"]
return value
.Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
.Distinct()
.ToArray();
}
}
2025-11-11 19:49:52 +00:00