/// <summary> /// 获取当前登录用户指定二级栏目的数据级浏览权限。返回可以浏览到的部门集合。return null时是所有部门。isOnlySelf==true时返回值为int[]{-1},只能查看自己的数据。 /// </summary> /// <param name="menu2">要获取数据级浏览权限的二级栏目</param> /// <param name="isOnlySelf">是否仅查看自己的数据</param> /// <returns>int[deptids]返回可以浏览到的部门集合,return null时是所有部门</returns> protected int[] GetDataPrivs(EyouSoft.Model.EnumType.PrivsStructure.Menu2 menu2, out bool isOnlySelf) { isOnlySelf = true; MUserInfo info = EyouSoft.Security.Membership.UserProvider.GetUserInfo(); if (info == null) { return new int[] { -1 } } ; var privs = GetMenu2Privs(menu2); var depts = EyouSoft.Security.Membership.UserProvider.GetDepts(info.CompanyId); if (depts == null || depts.Count == 0) { return new int[] { -1 } } ; //统计分析默认有内部浏览权限 EyouSoft.Model.EnumType.PrivsStructure.Menu2[] tongJiFenXi = { EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_部门业绩统计 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_个人业绩统计 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_收入对账单 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_线路流量统计 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_销售预警表 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_游客统计表 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_状态查询表 }; //数据级权限有优先级:查看全部、内部浏览、部门浏览、本部浏览从高到底。 if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.查看全部))) { isOnlySelf = false; return(null); } else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.内部浏览)) || tongJiFenXi.Contains(menu2)) { isOnlySelf = false; return(GetFirstDeptChildrens(depts, info.DeptId)); } else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.部门浏览))) { isOnlySelf = false; return(GetDeptChildrens(depts, info.DeptId)); } else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.本部浏览))) { isOnlySelf = false; return(new int[] { info.DeptId }); } return(new int[] { -1 }); }
/// <summary> /// 栏目权限控制 /// </summary> protected void PowerControl() { if (Utils.GetQueryStringValue("sl") == "") { Utils.TopRedirect("/default.aspx"); } EyouSoft.Model.EnumType.PrivsStructure.Menu2 m = (EyouSoft.Model.EnumType.PrivsStructure.Menu2)Utils.GetInt(Utils.GetQueryStringValue("sl")); if (m == EyouSoft.Model.EnumType.PrivsStructure.Menu2.财务管理_应收管理) { if (CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_应收管理_栏目)) { if (!CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_应收管理_开票登记)) { Utils.ResponseNoPermit(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_应收管理_开票登记, false); } } else { Utils.ResponseNoPermit(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_应收管理_栏目, false); } } else if (m == EyouSoft.Model.EnumType.PrivsStructure.Menu2.财务管理_杂费收入) { if (CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_杂费收入_栏目)) { if (!CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_杂费收入_开票登记)) { Utils.ResponseNoPermit(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_杂费收入_开票登记, false); } } else { Utils.ResponseNoPermit(EyouSoft.Model.EnumType.PrivsStructure.Privs.财务管理_杂费收入_栏目, false); } } else if (m == EyouSoft.Model.EnumType.PrivsStructure.Menu2.销售中心_销售收款) { if (CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs.销售中心_销售收款_栏目)) { if (!CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs.销售中心_销售收款_开票登记)) { Utils.ResponseNoPermit(EyouSoft.Model.EnumType.PrivsStructure.Privs.销售中心_销售收款_开票登记, false); } } else { Utils.ResponseNoPermit(EyouSoft.Model.EnumType.PrivsStructure.Privs.销售中心_销售收款_栏目, false); } } else { Utils.TopRedirect("/default.aspx"); } }
/// <summary> /// 初始化二级栏目 /// </summary> void InitMenu2Type() { Menu2Type = Utils.GetEnumValue <EyouSoft.Model.EnumType.PrivsStructure.Menu2>(Utils.GetQueryStringValue("sl"), EyouSoft.Model.EnumType.PrivsStructure.Menu2.None); switch (Menu2Type) { case EyouSoft.Model.EnumType.PrivsStructure.Menu2.客户管理_个人会员: break; default: AjaxResponse("错误的请求"); break; } }
/// <summary> /// 判断子系统是否开通二级栏目 /// </summary> /// <param name="sysId">系统编号</param> /// <param name="menu2">二级栏目</param> /// <returns></returns> public bool IsExistsMenu2(string sysId, EyouSoft.Model.EnumType.PrivsStructure.Menu2 menu2) { if (string.IsNullOrEmpty(sysId)) { return(false); } if (menu2 == EyouSoft.Model.EnumType.PrivsStructure.Menu2.None) { return(false); } return(dal.IsExistsMenu2(sysId, menu2)); }
/// <summary> /// 初始化二级栏目 /// </summary> void InitMenu2Type() { Menu2Type = Utils.GetEnumValue <EyouSoft.Model.EnumType.PrivsStructure.Menu2>(Utils.GetQueryStringValue("sl"), EyouSoft.Model.EnumType.PrivsStructure.Menu2.None); switch (Menu2Type) { case EyouSoft.Model.EnumType.PrivsStructure.Menu2.客户管理_个人会员: break; default: AjaxResponse("错误的请求"); break; } IsAdd = string.IsNullOrEmpty(Utils.GetQueryStringValue("crmid")); IsEdit = !IsAdd; }
/// <summary> /// 获取指定二级栏目栏目下所有权限信息集合 /// </summary> /// <param name="menu2">二级栏目</param> /// <returns></returns> private IList <EyouSoft.Model.SysStructure.MSysPrivsInfo> GetMenu2Privs(EyouSoft.Model.EnumType.PrivsStructure.Menu2 menu2) { var items = EyouSoft.Security.Membership.UserProvider.GetSysMenu2s(); if (items != null && items.Count > 0) { foreach (var item in items) { if (item.MenuId == (int)menu2) { return(item.Privs); } } } return(null); }
/// <summary> /// 判断子系统是否开通二级栏目 /// </summary> /// <param name="sysId">系统编号</param> /// <param name="menu2">二级栏目</param> /// <returns></returns> public bool IsExistsMenu2(string sysId, EyouSoft.Model.EnumType.PrivsStructure.Menu2 menu2) { DbCommand cmd = _db.GetSqlStringCommand(SQL_SELECT_IsExistsMenu2); _db.AddInParameter(cmd, "SysId", DbType.AnsiStringFixedLength, sysId); _db.AddInParameter(cmd, "Privs2Id", DbType.Int32, menu2); using (IDataReader rdr = DbHelper.ExecuteReader(cmd, _db)) { if (rdr.Read()) { return(rdr.GetInt32(0) > 0); } } return(false); }