窗体权限


V2301

重载窗体InitAuthorize方法即可初始化权限

窗体权限分为通用权限用户扩展权限两种,均在initAuthorize中支持定义

C# 全选
/// <summary>
/// 初始化权限
/// </summary>
protected override void InitAuthorize()
{
	base.InitAuthorize();

	this.FormCommonAuthority = this.FormCommonAuthority | FunctionAuthorityCommon.APPROVAL | FunctionAuthorityCommon.UNAPPROVAL | FunctionAuthorityCommon.PREVIEW;
	AddExtensionAuthroze(FunctionAuthority.EX_01, "刷新工序");
	AddExtensionAuthroze(FunctionAuthority.EX_02, "修改条码数量");
	
}

 

 

旧版本V2301以前

YESWin Winform开发框架 中窗体权限介绍

 

YESwin winform开发框架 窗体权限采用或运算机制,

功能权限可用值在 YESWin.UI.Core.FunctionAuthority 中

YESWin.UI.Core.FunctionAuthorityCommon 设定了 YESWin 开发框架 中的默认已占用的公共权限值,扩展权限的时候,应该避免使用这一部分

 

一、窗体权限定义 FormAuthority

 

重载 窗体属性CurrentAuthority,在 frmBaseData 基类窗体中定义的,功能窗体继承 frmBaseData 时,重写这个属性 CurrentAuthority 来定义窗体的权限

protectedoverrideint FormAuthority
{
    get
    {
        return base.CustomerAuthority;
    }
}
GarsonZhang www.yesdotnet.com

该属性默认为:

//当前窗体初始化的公共权限
protected override int FormAuthority
{
    get
    {
        return FunctionAuthorityCommon.ADD//新增
            + FunctionAuthorityCommon.EDIT//修改
            + FunctionAuthorityCommon.DELETE;//删除
                                             //+ FunctionAuthorityCommon.Save//保存
                                             //+ FunctionAuthorityCommon.Cancel;//取消
    }
}
GarsonZhang www.yesdotnet.com

可以使用的权限值:参考 YESWin.UI.Core.FunctionAuthority

属性名称权限值
NONE没有任何权限0
FVIEW
访问权限,每个窗体都应该有1
ADD新增2
DELETE删除4
EDIT修改8
SaveEx保存16
SaveAndCloseEx保存后关闭64
APPROVAL审核32
PREVIEW打印预览128
Export导出256
CancelEx返回/取消512
Refresh刷新1024
EX_01
扩展权限2048
EX_02
扩展权限4096
EX_03
扩展权限8192
EX_04
扩展权限16384
EX_05
扩展权限32768
EX_06
扩展权限65536
ALL所有权限1073741823

二、设置权限名称

权限名称,frmBaseChild 基类中使用 SetAuthorizeName 方法来设置权限名称

frmBaseChild 中提供一个虚拟函数 InitAuthorize(),会在构造器中调用这个函数

 /// <summary>
/// 构造函数
/// </summary>
public frmBaseChild()
{
    InitializeComponent();
    //if (CheckDesingModel.IsDesingMode()) return;
    if (this.isDesignTime) return;
    this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    _Buttons = new RibbonBarButtonCollection();
    this.Load += frmChildBase_Load;
    this.InitAuthorize();
}

/// <summary>
/// 初始化权限
/// </summary>
protected virtual void InitAuthorize()
{
    SetAuthorizeName(FunctionAuthorityCommon.FVIEW, "查看");
}
GarsonZhang www.yesdotnet.com

因此我们只需要重构 frmBaseChild 中的 IniAuthorize() 方法,就能修改权限名称了

protected override void InitAuthorize()
{
	base.InitAuthorize();
	// 设置Ex01的权限名称
	SetAuthorizeName(FunctionAuthority.EX_01, "布局调整");
}

 

三、取消窗体的查看(访问)权限,不需要展示窗体

YESWin.UI.Dev.LibForm.frmBaseChild 中 默认会给权限增加一个公共权限值 1 FunctionAuthorityCommon.FVIEW 访问权限

/// <summary>
/// 当前窗体权限
/// </summary>
protected virtual int FormAuthorityAll
{
    get
    {
        return FormAuthority | FunctionAuthorityCommon.FVIEW;
    }
}
GarsonZhang www.yesdotnet.com

因此,我们重写该属性

protected override int FormAuthorityAll => this.FormAuthority;

修改完之后

权限中就没有了访问权限

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:窗体状态
评论列表

发表评论

评论内容
昵称:
关联文章

权限
自定义权限操作按钮
状态
GridView布局自定义
YESWin Winform开发框架 Form继承关系
编辑中关联赋值操作
.NET Core Winform 打开设计器报错
C# winform无边框移动的四种方法
.net core winform继承后设计器异常,看不到控件,并且页无法添加控件
权限配置
Winform设置组件可用状态
权限指令v-permission
页面弹提醒
Windows 文件夹设置了Everyone权限后无法删除
DTCMS:后台执行JS弹
Bootstrap 弹JS组件封装
YESWin开发框架权限设计相关表结构说明
DevExpress Winform统一设置字大小
YESWinform开发框架关于模块功能不同权限下的布局介绍
微信支付,特约子商户商户号未授权服务商的产品权限