系统标准是不支持对附件进行权限管理的,但是有一些没有用PLM的企业,同时又在系统内上传了敏感的图片,需要对这些进行限制,提供一个思路
1、在附件内添加字段“文件类型”
2、设置一个限制名单或者根据角色限制
3、在附件的预览按钮、下载按钮的点击事件里面加逻辑
using System;
using Kingdee.BOS.Core.Bill.PlugIn;
using System.ComponentModel;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.ServiceHelper;
using System.Data;
namespace YYY.BusinessPlugIn.plan
{
[Kingdee.BOS.Util.HotUpdate]
[Description("评审单部分人员不能查看附件--附件明细列表插件")]
public class PSDNotDownLand :AttachmentListPlugIn
{
bool isview =true ;
string FileType;
public override void BarItemClick(BarItemClickEventArgs e)
{
if (e.BarItemKey.ToString()== "tbbtn_OnLineView"|| e.BarItemKey.ToString() == "tbbtnDownLoad" )
{
e.Cancel = true;
string userid = Convert.ToString(this.Context.UserId);
//获取禁止查看的人员ID
string sql = string.Format(@"/*dialect*/SELECT A1.F_PJWR_user FROM PJWR_t_Cust100031 a inner join
PJWR_t_Cust_Entry100128 a1 on a.FID=a1.FID
WHERE A.FBILLNO='2'");
DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string userids = Convert.ToString(dt.Rows[i]["F_PJWR_user"]);
if (userid == userids)
{
isview = false;
}
}
}
ListSelectedRowCollection selectedRowsInfo = this.ListView.SelectedRowsInfo;
if (selectedRowsInfo.Count > 0)
{
foreach (var currRow in selectedRowsInfo)
{
DynamicObjectDataRow row = currRow.DataRow as DynamicObjectDataRow;
string filtype = Convert.ToString(row["F_FlieType"]);
if (filtype == "1")
{
FileType = "图纸";
}
}
}
if (!isview && FileType=="图纸")
{
//base.BarItemClick(e);
this.View.ShowMessage("您没有权限对图纸文件进行操作");
}
else
{
base.BarItemClick(e);
}
}
else
{
base.BarItemClick(e);
}
}
}
}
推荐阅读