Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
作者:csframework|C/S框架网  发布日期:2024/10/20 11:59:26

Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架

Winform开发框架 - 表格编辑窗体权限控制

1、定义菜单权限

模块主窗体添加菜单,并定义菜单权限。 定义一个菜单,一个按钮,如下图:

Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架

给菜单组件定义权限(Tag属性分配MenuItemTag实例)

C# 全选
menu业务员管理Grid编辑.Tag = new MenuItemTag(MenuType.Dialog, (int)CSFrameworkV6.Interfaces.ModuleID.DataDictionary, AuthorityCategory.MASTER_ACTION);

AuthorityCategory.MASTER_ACTION 权限值=1135

MASTER_ACTION常量参考

/// <summary>

/// 数据字典窗体:拥有的功能(增、删、改、查、导出、打印、预览)

/// </summary>

public const int MASTER_ACTION = DATA_ACTION_VALUE + REPORT_ACTION_VALUE;

参考:CSFrameworkV6.Core.dll ButtonAuthority.cs源码

2、表格编辑窗体权限控制

Form的Load事件最后一行,调用 SetPermission 方法:

C# 全选
        private void frmPersonGrid_Load(object sender, EventArgs e)
        {
            //省略...................
            this.BoundLookupData();
            this.DoShowSummary();
            this.SetPermission();
        }

C# 全选
        /// <summary>
        /// 设置权限
        /// </summary>
        private void SetPermission()
        {
            //1、获取增、删、改权限
            var allowAdd = this.ButtonAuthorized(ButtonAuthority.ADD);
            var allowEdit = this.ButtonAuthorized(ButtonAuthority.EDIT);
            var allowDel = this.ButtonAuthorized(ButtonAuthority.DELETE);

            //2、控制表格是否可编辑,判断ADD/EDIT权限
            gvSummary.OptionsBehavior.Editable = allowAdd && allowEdit;

            //3、控制表格的新增、插入、删除按钮
            gcSummary.SetCustomButtonEnable(nameof(DetailButtons.Add), allowAdd);
            gcSummary.SetCustomButtonEnable(nameof(DetailButtons.Insert), allowAdd);
            gcSummary.SetCustomButtonEnable(nameof(DetailButtons.Delete), allowDel);
        }

若当前用户没有权限,表格无法编辑,按钮状态为禁用。

Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架

3、分配用户权限

参考系统管理模块的【角色定义】及【用户管理】,给测试用户分配角色进行测试。

注意:如果是新建的功能菜单,务必使用系统管理模块【菜单功能】导入菜单数据,然后定义角色权限。

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇