예제 #1
0
파일: BLLBase.cs 프로젝트: windygu/XiaZhou
        /// <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 });
        }
예제 #2
0
        /// <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");
            }
        }
예제 #3
0
        /// <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;
            }
        }
예제 #4
0
        /// <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));
        }
예제 #5
0
        /// <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;
        }
예제 #6
0
파일: BLLBase.cs 프로젝트: windygu/XiaZhou
        /// <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);
        }
예제 #7
0
        /// <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);
        }