基于角色的权限控制
1、用户角色枚举、权限枚举、结果记录和密码存储模型 IPermissionService 接口及包含认证、权限检查、密码管理和登出功能的 PermissionService 单例 2、支持层级化角色-权限映射的权限矩阵(SuperAdmin ⊇ Admin ⊇ User) 密码持久化至 passwords.json 文件,并提供工厂默认值回退机制 3、UI 层 LoginDialog — 启动时弹出模态登录对话框,支持密码掩码输入、错误提示以及取消退出功能 RibbonStatusAreaView — 在Ribbon右侧区域始终显示角色标签和“切换用户”按钮 权限感知的CncEditorViewModel — 用户角色无法使用CNC编辑控件 权限感知的CncInspectionModulePipelineViewModel — 用户角色无法进行流程编辑 设置导航可见性 — Admin/User角色隐藏Factory_Settings,User角色隐藏Report_Settings PasswordManagementView — 仅SuperAdmin可访问的修改角色密码对话框 PermissionTooltipHelper — 附加属性,在禁用控件上显示“当前角色无权访问此功能”提示
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
xmlns:spreadsheetControls="clr-namespace:Telerik.Windows.Controls.Spreadsheet.Controls;assembly=Telerik.Windows.Controls.Spreadsheet"
|
||||
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
|
||||
xmlns:views="clr-namespace:XplorePlane.Views"
|
||||
xmlns:mainViews="clr-namespace:XplorePlane.Views.Main"
|
||||
xmlns:views1="clr-namespace:XP.Hardware.RaySource.Views;assembly=XP.Hardware.RaySource"
|
||||
xmlns:mcViews="clr-namespace:XP.Hardware.MotionControl.Views;assembly=XP.Hardware.MotionControl"
|
||||
x:Name="ParentWindow"
|
||||
@@ -444,6 +445,12 @@
|
||||
SmallImage="/Assets/Icons/setting.png"
|
||||
Command="{Binding OpenSettingsCommand}"
|
||||
Text="设置" />
|
||||
<telerik:RadRibbonButton
|
||||
Size="Large"
|
||||
SmallImage="/Assets/Icons/tools.png"
|
||||
Command="{Binding OpenPasswordManagementCommand}"
|
||||
Text="密码管理"
|
||||
Visibility="{Binding IsFactorySettingsVisible, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||
</telerik:RadRibbonGroup>
|
||||
|
||||
<telerik:RadRibbonGroup
|
||||
@@ -452,7 +459,8 @@
|
||||
DialogLauncherCommandParameter="Alignment"
|
||||
DialogLauncherVisibility="Collapsed"
|
||||
Header="硬件"
|
||||
IsEnabled="True">
|
||||
IsEnabled="True"
|
||||
Visibility="{Binding IsFactorySettingsVisible, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||
<telerik:RadRibbonGroup.Variants>
|
||||
<telerik:GroupVariant Priority="0" Variant="Large" />
|
||||
</telerik:RadRibbonGroup.Variants>
|
||||
@@ -593,7 +601,8 @@
|
||||
Command="{Binding OpenReportConfigCommand}"
|
||||
Size="Large"
|
||||
SmallImage="/Assets/Icons/message.png"
|
||||
Text="报告生成" />
|
||||
Text="报告生成"
|
||||
Visibility="{Binding IsReportSettingsVisible, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||
</telerik:RadRibbonGroup>
|
||||
</telerik:RadRibbonTab>
|
||||
<telerik:RadRibbonTab Header="帮助">
|
||||
@@ -616,6 +625,14 @@
|
||||
</telerik:RadRibbonTab>
|
||||
</telerik:RadRibbonView>
|
||||
|
||||
<!-- Ribbon 右侧状态区域:显示当前角色和切换用户按钮 -->
|
||||
<mainViews:RibbonStatusAreaView
|
||||
Grid.ColumnSpan="3"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Top"
|
||||
Margin="0,6,12,0"
|
||||
DataContext="{Binding RibbonStatusArea}" />
|
||||
|
||||
<Grid
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="3"
|
||||
|
||||
Reference in New Issue
Block a user