From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 HMI.Core/DpUtil/PermissionHelper.cs |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/HMI.Core/DpUtil/PermissionHelper.cs b/HMI.Core/DpUtil/PermissionHelper.cs
new file mode 100644
index 0000000..cfcaec3
--- /dev/null
+++ b/HMI.Core/DpUtil/PermissionHelper.cs
@@ -0,0 +1,47 @@
+锘縰sing 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;
+                }
+            }
+        }
+    }
+}

--
Gitblit v1.9.1