#region 函数说明:按人控制权限菜单权限条件
/// <summary>
/// CRMModelPermissonStrWhere
/// </summary>
/// <param name="menucode">菜单代号</param>
/// <param name="DataTableName">数据表名</param>
/// <returns></returns>
public string CRMModelPermissonStrWhere(string menucode, string DataTableName)
{
string StrWhere = "";
string ErrorMsg = "";
List<string> StrWhereList = new List<string>();
var permission = PublicFunctions.UserPermissionClass.GetUserMenuPermissionModel(menucode, ServiceData.UserInfo);
string PermissionStrWhere;
if (permission.ToPermissionStrWhere(out PermissionStrWhere, out ErrorMsg))
{
if (!Check.IsNull(PermissionStrWhere))
{
string guidPattern = "[?a-zA-Z0-9]{8}-[?a-zA-Z0-9]{4}-[?a-zA-Z0-9]{4}-[?a-zA-Z0-9]{4}-[?a-zA-Z0-9]{12}";
MatchCollection fileList = Regex.Matches(PermissionStrWhere, guidPattern);
string UserGuid = "'";
for (int i = 0; i < fileList.Count; i++)
{
UserGuid += fileList[i];
if (i < fileList.Count - 1)
{
UserGuid += "','";
}
}
UserGuid += "','" + ServiceData.UserInfo.UserGuid + "'";
StrWhereList.Add("ID in(select UniqueKey from CRMPermissionMapping where DataTableName='" + DataTableName + "' and UserGuid in(" + UserGuid + ") and IsValid='true')");
}
else
{
StrWhereList.Add("1=1");
}
}
else
{
StrWhereList.Add("1=0");
}
StrWhere = StrWhereList.Count > 0 ? (" where " + string.Join(" and ", StrWhereList)) : "";
return StrWhere;
}
#endregion