52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using System;
|
||
using System.Linq;
|
||
using Volo.Abp.Data;
|
||
using Volo.Abp.PermissionManagement;
|
||
|
||
namespace Erp.Platform.Extensions;
|
||
|
||
public static class AbpPermissionsExtensions
|
||
{
|
||
/// <summary>
|
||
/// Menü gruplarını pipe karakteriyle ayrılmış string olarak kaydeder. (örnek: "Erp|Kurs")
|
||
/// </summary>
|
||
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);
|
||
}
|
||
|
||
/// <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)
|
||
{
|
||
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();
|
||
}
|
||
}
|
||
|