示例#1
0
        //查询账户的栏目(账户内的)
        public List <PermissionColumn> GetColumnListByUser(string userId, string websiteOwner, bool showHide = false)
        {
            List <PermissionColumn>         list            = new List <PermissionColumn>();
            BLLPermission                   bllPermission   = new BLLPermission();
            List <UserPmsGroupRelationInfo> pmsGroupRelList = bllPermission.GetUserPmsGroupRelListByUserId(userId);

            if (pmsGroupRelList.Count == 0)
            {
                return(list);
            }

            string group_ids = ZentCloud.Common.MyStringHelper.ListToStr(pmsGroupRelList.Select(p => p.GroupID).ToList(), "", ",");
            List <PermissionRelationInfo> colList = bllPermission.GetMultPermissionRelationList(group_ids, 3);

            if (colList.Count == 0)
            {
                return(list);
            }

            List <long> colId_list = colList.Select(p => p.PermissionID).ToList();

            list = GetAllColumnListByWebsiteOwner(websiteOwner, showHide);
            list = list.Where(p => colId_list.Contains(p.PermissionColumnID)).ToList();
            return(list);
        }
示例#2
0
        /// <summary>
        /// 判断用户是否拥有指定页面路径权限(新)
        /// </summary>
        /// <param name="userId">用户账号</param>
        /// <param name="websiteOwner">站点所有者</param>
        /// <param name="path">路径</param>
        /// <param name="nAction">action</param>
        /// <returns></returns>
        public bool NewCheckUserAndPath(string userId, string websiteOwner, string path, string nAction)
        {
            BLLPermission         bllPer  = new BLLPermission();
            List <PermissionInfo> pmsList = bllPer.GetPermissionListByPath(path);//获取页面路径权限ID

            if (!string.IsNullOrWhiteSpace(nAction))
            {
                pmsList = pmsList.Where(p => string.IsNullOrWhiteSpace(p.PermissionAction) || p.PermissionAction == nAction).ToList();
            }
            if (pmsList.Count == 0)
            {
                return(false);
            }
            List <long> pmsIDList = pmsList.Select(p => p.PermissionID).ToList();
            List <PermissionRelationInfo> rel_column_list = new List <PermissionRelationInfo>();
            List <PermissionColumn>       column_list     = new List <PermissionColumn>();
            List <long> pmsGroupIdList = GetPmsGroupIDByUser(userId);
            string      groupIds       = "''";

            if (pmsGroupIdList.Count > 0)
            {
                groupIds        = MyStringHelper.ListToStr(pmsGroupIdList, "'", ",");
                rel_column_list = bllPer.GetMultPermissionRelationList(groupIds, 3);
                if (rel_column_list.Count > 0)
                {
                    string columnRelationIds = MyStringHelper.ListToStr(rel_column_list.Select(p => p.PermissionID).ToList(), "", ",");
                    column_list = bllPer.GetMultListByKey <PermissionColumn>("PermissionColumnID", columnRelationIds);
                }
            }
            if (!string.IsNullOrWhiteSpace(websiteOwner) && userId == websiteOwner)
            {
                List <PermissionColumn> column_list1 = bllPer.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner);
                column_list.AddRange(column_list1);
            }
            if (column_list.Count == 0)
            {
                return(false);
            }

            List <long> columnId_list  = column_list.Select(p => p.PermissionColumnID).ToList();
            List <long> columnId_list1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList();

            columnId_list.AddRange(columnId_list1);
            string columnIdStrs = MyStringHelper.ListToStr(columnId_list, "'", ",");
            List <PermissionRelationInfo> column_per_list = bllPer.GetMultPermissionRelationList(columnIdStrs, 2);

            List <long> npmsIDList = column_per_list.Select(p => p.PermissionID).ToList();

            foreach (long pmsID in pmsIDList)
            {
                if (npmsIDList.Contains(pmsID))
                {
                    return(true);
                }
            }
            return(false);
        }
示例#3
0
        /// <summary>
        /// 检查栏目权限返回菜单
        /// </summary>
        /// <returns></returns>
        public List <MenuInfo> CheckPermissionColumnList(List <MenuInfo> list, string websiteOwner, UserInfo curUser)
        {
            List <MenuInfo> result = new List <MenuInfo>();

            if (list.Count == 0)
            {
                return(result);
            }
            string      relationIds    = "''";
            List <long> pmsGroupIdList = GetPmsGroupIDByUser(curUser.UserID);
            List <PermissionRelationInfo> rel_column_list = new List <PermissionRelationInfo>();
            List <PermissionColumn>       column_list     = new List <PermissionColumn>();
            BLLPermission bllPermission     = new BLLPermission();
            string        columnRelationIds = "0";

            if (pmsGroupIdList.Count > 0)
            {
                relationIds     = MyStringHelper.ListToStr(pmsGroupIdList, "'", ",");
                rel_column_list = bllPermission.GetMultPermissionRelationList(relationIds, 3);
                if (rel_column_list.Count > 0)
                {
                    columnRelationIds = MyStringHelper.ListToStr(rel_column_list.Select(p => p.PermissionID).ToList(), "", ",");
                    column_list       = bllPermission.GetMultListByKey <PermissionColumn>("PermissionColumnID", columnRelationIds);
                }
            }
            if (!string.IsNullOrWhiteSpace(websiteOwner) && curUser.UserID == websiteOwner)
            {
                List <PermissionColumn> column_list1 = bllPermission.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner);
                column_list.AddRange(column_list1);
            }
            if (column_list.Count == 0)
            {
                return(result);
            }

            List <long> columnId_list  = column_list.Select(p => p.PermissionColumnID).ToList();
            List <long> columnId_list1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList();

            columnId_list.AddRange(columnId_list1);
            string columnRelationIdStrs = MyStringHelper.ListToStr(columnId_list, "'", ",");

            BLLMenuInfo             bllMenu          = new BLLMenuInfo();
            List <MenuRelationInfo> column_menu_list = bllMenu.GetMenuRelationListByRelationIds(columnRelationIdStrs, 5);

            if (column_menu_list.Count == 0)
            {
                return(result);
            }

            List <long> menuId_list = column_menu_list.Select(p => p.MenuID).ToList();

            result = list.Where(p => menuId_list.Contains(p.MenuID)).ToList();
            return(result);
        }
示例#4
0
        /// <summary>
        /// 检查用户和系统键值
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="pkey"></param>
        /// <returns></returns>
        public bool CheckUserAndPmsKey(string userId, Enums.PermissionSysKey pkey, string websiteOwner = "")
        {
            if (websiteOwner == "")
            {
                websiteOwner = WebsiteOwner;
            }
            UserInfo userInfo;

            if (string.IsNullOrEmpty(websiteOwner))
            {
                websiteOwner = WebsiteOwner;
            }
            if (userId == "jubit")
            {
                //userInfo = Get<UserInfo>(string.Format(" UserID='{0}' ", userId));
                return(true);
            }
            else
            {
                userInfo = Get <UserInfo>(string.Format(" UserID='{0}' AND WebsiteOwner='{1}' ", userId, websiteOwner));
            }
            if (userInfo == null)
            {
                return(false);
            }

            var key = CommonPlatform.Helper.EnumStringHelper.ToString(pkey);
            //先查出对应权限,不存在返回false
            var pms = GetPmsByPmsKey(key);

            if (pms == null)
            {
                return(false);
            }
            //站点权限禁用时返回false
            if (CheckWebsiteOwnerDisabled(websiteOwner, pms.PermissionID))
            {
                return(false);
            }

            //判断是否是配置的管理员
            if (userInfo.PermissionGroupID.HasValue)
            {
                ZentCloud.BLLPermission.Model.PermissionGroupInfo perGroupInfo = Get <ZentCloud.BLLPermission.Model.PermissionGroupInfo>(string.Format(" GroupID={0}", userInfo.PermissionGroupID));
                if (perGroupInfo != null && perGroupInfo.GroupType == 3)//管理员权限跟站点所有者一致
                {
                    userId = userInfo.WebsiteOwner;
                }
            }
            bool result = CheckUserAndPms(userId, pms.PermissionID);

            if (!result && userId == websiteOwner)
            {
                BLLPermission           bllPer      = new BLLPermission();
                List <PermissionColumn> column_list = bllPer.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner);
                if (column_list.Count > 0)
                {
                    string columnIdStrs = MyStringHelper.ListToStr(column_list.Select(p => p.PermissionColumnID).ToList(), "'", ",");
                    List <PermissionRelationInfo> column_per_list = bllPer.GetMultPermissionRelationList(columnIdStrs, 2);
                    result = column_per_list.Exists(p => p.PermissionID == pms.PermissionID);
                }
            }
            return(result);
        }
示例#5
0
        /// <summary>
        /// 获取用户所有权限ID
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <returns>所有权限ID集合</returns>
        public List <long> GetUserAllPmsID(string userId)
        {
            UserInfo userInfo = Get <UserInfo>(string.Format(" UserID='{0}'", userId));

            if (userInfo == null)
            {
                return(new List <long>());
            }
            if (userInfo.PermissionGroupID.HasValue)
            {
                ZentCloud.BLLPermission.Model.PermissionGroupInfo perGroupInfo = Get <ZentCloud.BLLPermission.Model.PermissionGroupInfo>(string.Format(" GroupID={0}", userInfo.PermissionGroupID));
                if (perGroupInfo != null && perGroupInfo.GroupType == 3)//管理员权限跟站点所有者一致
                {
                    userId = userInfo.WebsiteOwner;
                }
            }
            List <long> result = new List <long>();

            //获取 用户-权限 列表
            result.AddRange(GetList <Model.PermissionRelationInfo>(
                                string.Format(" RelationID = '{0}' and RelationType = 1 ", userId)
                                ).Select(p => p.PermissionID));

            //获取 组-权限 列表
            //long groupID = GetPmsGroupIDByUser(userID);

            //if (groupID > 0)
            //{
            //    result.AddRange(GetList<Model.PermissionRelationInfo>(
            //        string.Format(" RelationID = '{0}' and RelationType = 0 ", groupID.ToString())
            //    ).Select(p => p.PermissionID));
            //}

            foreach (long item in GetPmsGroupIDByUser(userId))
            {
                result.AddRange(GetList <Model.PermissionRelationInfo>(
                                    string.Format(" RelationID = '{0}' and RelationType = 0 ", item.ToString())
                                    ).Select(p => p.PermissionID));

                //检查栏目内权限
                foreach (PermissionRelationInfo citem in BaseCacheGetPermissionRelationList(3, item.ToString(), null))
                {
                    List <PermissionRelationInfo> list = BaseCacheGetPermissionRelationList(2, citem.PermissionID.ToString(), null);
                    if (list.Count > 0)
                    {
                        result.AddRange(list.Select(p => p.PermissionID));
                    }
                }
            }

            if (userId == userInfo.WebsiteOwner)
            {
                List <PermissionColumn> column_list = GetListByKey <PermissionColumn>("WebsiteOwner", userId);
                if (column_list.Count > 0)
                {
                    List <long> columnIdList  = column_list.Select(p => p.PermissionColumnID).ToList();
                    List <long> columnIdList1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList();
                    columnIdList.AddRange(columnIdList1);
                    string columnIdStrs = MyStringHelper.ListToStr(columnIdList, "'", ",");

                    BLLPermission bllPer = new BLLPermission();
                    List <PermissionRelationInfo> columnPerList = bllPer.GetMultPermissionRelationList(columnIdStrs, 2);
                    if (columnPerList.Count > 0)
                    {
                        result.AddRange(columnPerList.Select(p => p.PermissionID));
                    }
                }
            }
            return(result.Distinct().ToList());
        }