using HMI.Core.Entity;
|
using System.Linq;
|
using System.Windows;
|
|
namespace HMI.Core.DpUtil
|
{
|
public class PermissionHelper
|
{
|
public static string GetRequiredPermission(UIElement element)
|
{
|
return (string)element.GetValue(RequiredPermissionProperty);
|
}
|
|
public static void SetRequiredPermission(UIElement element, string requiredPermission)
|
{
|
element.SetValue(RequiredPermissionProperty, requiredPermission);
|
}
|
|
public static readonly DependencyProperty RequiredPermissionProperty =
|
DependencyProperty.RegisterAttached("RequiredPermission", typeof(string), typeof(UIElement),
|
new PropertyMetadata(string.Empty, OnRequiredPermissionChanged));
|
|
private static void OnRequiredPermissionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
{
|
if (d is UIElement element)
|
{
|
if (e.Property == RequiredPermissionProperty)
|
{
|
var requiredPermission = (string)e.NewValue;
|
if (string.IsNullOrEmpty(requiredPermission)) return;
|
if (UserInfo.User == null)
|
{
|
element.Visibility = Visibility.Collapsed;
|
return;
|
}
|
if (UserInfo.User?.AllPermissions == null)
|
{
|
element.Visibility = Visibility.Collapsed;
|
return;
|
}
|
if (UserInfo.User.AllPermissions.FirstOrDefault(p => p.Code == requiredPermission) != null) return;
|
element.Visibility = Visibility.Collapsed;
|
}
|
}
|
}
|
}
|
}
|