2025-10-11 23:29:45 +00:00
|
|
|
|
using System;
|
2025-10-12 18:45:03 +00:00
|
|
|
|
using System.Linq;
|
2025-10-11 23:29:45 +00:00
|
|
|
|
using Volo.Abp.Data;
|
|
|
|
|
|
using Volo.Abp.PermissionManagement;
|
|
|
|
|
|
|
2025-11-11 19:49:52 +00:00
|
|
|
|
namespace Erp.Platform.Extensions;
|
2025-10-11 23:29:45 +00:00
|
|
|
|
|
|
|
|
|
|
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-11 23:29:45 +00:00
|
|
|
|
{
|
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-11 23:29:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
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>
|
2025-10-11 23:29:45 +00:00
|
|
|
|
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-10-11 23:29:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-11-11 19:49:52 +00:00
|
|
|
|
|