Пример #1
0
    //加载
    public void LoadDataBind()
    {
        TB_Admin_Resources model = new TB_Admin_Resources();
        int id = CommonClass.ReturnRequestInt("id", 0);

        if (id > 0)
        {
            model = AdminService.ResourcesService.Get(id);
            DDLParent.SelectedValue = model.ParentID.ToStr();
            TbResourceName.Text     = model.ResourceName;
            TbUrl.Text          = model.Url;
            TbOrderBy.Text      = model.OrderBy.ToStr();
            CheckIsShow.Checked = model.IsShow;
            ViewState["id"]     = model.ID;
        }
    }
    //保存
    protected void BtnSave_Click(object sender, EventArgs e)
    {
        TB_Admin_Resources model = new TB_Admin_Resources();

        if (ViewState["id"] != null)
        {
            model = AdminService.ResourcesService.Get(ViewState["id"]);
        }

        model.ResourceName = TbResourceName.Text;
        model.ParentID     = DDLParent.SelectedValue.ToInt();
        model.Url          = TbUrl.Text;
        model.Creater      = AdminUserName;
        model.OrderBy      = TbOrderBy.Text.ToInt();
        model.IsShow       = CheckIsShow.Checked;
        model.AddDate      = DateTime.Now;

        IAdmin_Resources Resources = AdminService.ResourcesService;

        if (ViewState["id"] == null)
        {
            if (Resources.Insert(model) == 1)
            {
                CachesHelper.RemoveCache(DataToCacheHelper.CacheNames.AllResources.ToStr());
                MessageDiv.InnerHtml = CommonClass.Reload("数据修改成功");
            }
            else
            {
                MessageDiv.InnerHtml = CommonClass.Alert("数据添加失败");
            }
        }
        else
        {
            if (Resources.Update(model) == 1)
            {
                CachesHelper.RemoveCache(DataToCacheHelper.CacheNames.AllResources.ToStr());
                MessageDiv.InnerHtml = CommonClass.Reload("数据修改成功");
            }
            else
            {
                MessageDiv.InnerHtml = CommonClass.Alert("数据修改失败");
            }
        }
    }
    /// <summary>
    /// 获取所有权限菜单列表
    /// </summary>
    /// <returns></returns>
    public List <TB_Admin_Resources> Permission()
    {
        List <TB_Admin_Resources> list = new List <TB_Admin_Resources>();
        string result = String.Empty;

        XmlDocument xmldoc = new XmlDocument();

        xmldoc.Load(HttpContext.Current.Server.MapPath("~/App_Data/PermissionDictionaries.xml"));
        XmlNodeList xnl     = xmldoc.SelectSingleNode("Dictionaries").ChildNodes;
        int         orderBy = 0;

        foreach (XmlNode xn in xnl)
        {
            orderBy++;
            TB_Admin_Resources entity = new TB_Admin_Resources();
            entity.ID           = xn.Attributes["ID"].Value.ToInt();
            entity.ResourceName = xn.Attributes["Name"].Value;
            entity.OrderBy      = orderBy;
            entity.ChildTree    = new List <TB_Admin_Resources>();
            entity.IsShow       = xn.Attributes["IsShow"].Value.ToLower() == "true" ? true : false;

            int childOrderBy = 0;

            XmlNodeList childlist = xn.ChildNodes;
            foreach (XmlNode child in childlist)
            {
                childOrderBy++;

                TB_Admin_Resources entity2 = new TB_Admin_Resources();
                entity2.ID           = child.Attributes["ID"].Value.ToInt();
                entity2.ResourceName = child.InnerText;
                entity2.Url          = child.Attributes["Url"].Value;
                entity2.IsShow       = child.Attributes["IsShow"] == null ? false : (child.Attributes["IsShow"].Value.ToLower() == "true" ? true : false);
                entity2.OrderBy      = childOrderBy;

                entity.ChildTree.Add(entity2);
            }

            list.Add(entity);
        }

        return(list);
    }
    /// <summary>
    /// 权限
    /// </summary>
    /// <param name="showMenu">展示菜单导航</param>
    /// <returns></returns>
    public List <TB_Admin_Resources> Permission(bool showMenu)
    {
        return(new CommonHelpers().Permission());

        List <TB_Admin_Resources> modelList = new List <TB_Admin_Resources>();

        //获取以及资源信息
        List <TB_Admin_Resources> resourcesList = DataToCacheHelper.GetPermission();

        resourcesList = resourcesList.Where(r => r.ParentID == 0).ToList();
        if (showMenu == true)
        {
            resourcesList = resourcesList.Where(r => r.IsShow == true).ToList();
        }

        //遍历信息
        foreach (TB_Admin_Resources resource in resourcesList)
        {
            TB_Admin_Resources model = resource;
            model.ChildTree = new List <TB_Admin_Resources>();

            //获取子集
            List <TB_Admin_Resources> childList = DataToCacheHelper.GetPermission();
            childList = childList.Where(r => r.ParentID == resource.ID).ToList();

            if (showMenu == true)
            {
                childList = childList.Where(r => r.IsShow == true).ToList();
            }

            //判断资源编号是否在用户资源列表中
            foreach (var child in childList)
            {
                model.ChildTree.Add(child);
            }

            modelList.Add(model);
        }

        return(modelList);
    }
 //选择
 protected void CheckBoxResourceList_SelectedIndexChanged(object sender, EventArgs e)
 {
     foreach (ListItem li in CheckBoxResourceList.Items)
     {
         int id = li.Value.ToInt();
         TB_Admin_Resources model = AdminService.ResourcesService.Get(id);
         //如果存在父级,才进行选择
         if (model.ParentID > 0)
         {
             li.Attributes.Add("style", "margin-left:20px;");
             //当二级被选择,父级也要被选择
             if (li.Selected == true)
             {
                 foreach (ListItem li2 in CheckBoxResourceList.Items)
                 {
                     if (li2.Value.ToInt() == model.ParentID)
                     {
                         li2.Selected = true;
                     }
                 }
             }
         }
     }
 }
Пример #6
0
    /// <summary>
    /// 权限
    /// </summary>
    /// <param name="moduleList">用户所属角色对应的权限</param>
    /// <param name="showMenu">展示菜单导航</param>
    /// <returns></returns>
    public List <TB_Admin_Resources> Permission(bool showMenu)
    {
        List <int>        resourcesIds = new List <int>();
        int               AdminUserID  = System.Web.HttpContext.Current.Request.Cookies["AdminInfo"].Values["ID"].ToInt();
        List <Expression> expression   = new List <Expression>();

        expression.Add(new Expression("AdminUserID", "=", AdminUserID.ToString()));
        List <TB_Admin_UserInRole> userInRoles = AdminService.UserInRoleService.Search(expression);

        //循环用户角色
        foreach (TB_Admin_UserInRole userRole in userInRoles)
        {
            //通过角色查询出角色对应的资源
            List <Expression> expression2 = new List <Expression>();
            expression2.Add(new Expression("RoleID", "=", userRole.RoleID.ToString()));
            IEnumerable <int> roleInfoResources = AdminService.RoleInResourcesService.Search(expression2).Select(r => r.ResourceID);

            resourcesIds.AddRange(roleInfoResources);
        }

        List <TB_Admin_Resources> modelList = new List <TB_Admin_Resources>();

        //获取以及资源信息
        List <TB_Admin_Resources> resourcesList = DataToCacheHelper.GetPermission();

        resourcesList = resourcesList.Where(r => r.ParentID == 0).ToList();
        if (showMenu == true)
        {
            resourcesList = resourcesList.Where(r => r.IsShow == true).ToList();
        }

        //遍历信息
        foreach (TB_Admin_Resources resource in resourcesList)
        {
            if (resourcesIds.Contains(resource.ID))
            {
                TB_Admin_Resources model = resource;
                model.ChildTree = new List <TB_Admin_Resources>();

                //获取子集
                List <TB_Admin_Resources> childList = DataToCacheHelper.GetPermission();
                childList = childList.Where(r => r.ParentID == resource.ID).ToList();

                if (showMenu == true)
                {
                    childList = childList.Where(r => r.IsShow == true).ToList();
                }

                //判断资源编号是否在用户资源列表中
                foreach (var child in childList)
                {
                    if (resourcesIds.Contains(child.ID))
                    {
                        model.ChildTree.Add(child);
                    }
                }

                modelList.Add(model);
            }
        }

        return(modelList);
    }
    /// <summary>
    /// 用户所属角色对应的权限
    /// </summary>
    /// <param ResourceName="IsShowMenu">是否展示菜单</param>
    /// <returns></returns>
    public List <TB_Admin_Resources> GetUserPermission(bool IsShowMenu)
    {
        List <int>        resourcesIds = new List <int>();
        int               AdminUserID  = System.Web.HttpContext.Current.Request.Cookies["AdminInfo"].Values["ID"].ToInt();
        List <Expression> expression   = new List <Expression>();

        expression.Add(new Expression("AdminUserID", "=", AdminUserID.ToString()));
        List <TB_Admin_UserInRole> userInRoles = AdminService.UserInRoleService.Search(expression);

        //循环用户角色
        foreach (TB_Admin_UserInRole userRole in userInRoles)
        {
            //通过角色查询出角色对应的资源
            List <Expression> expression2 = new List <Expression>();
            expression2.Add(new Expression("RoleID", "=", userRole.RoleID.ToString()));
            IEnumerable <int> roleInfoResources = AdminService.RoleInResourcesService.Search(expression2).Select(r => r.ResourceID);

            resourcesIds.AddRange(roleInfoResources);
        }

        List <TB_Admin_Resources> list = new List <TB_Admin_Resources>();
        string result = String.Empty;

        XmlDocument xmldoc = new XmlDocument();

        xmldoc.Load(HttpContext.Current.Server.MapPath("~/App_Data/PermissionDictionaries.xml"));
        XmlNodeList xnl = xmldoc.SelectSingleNode("Dictionaries").ChildNodes;

        foreach (XmlNode xn in xnl)
        {
            if (IsShowMenu == true)
            {
                if (xn.Attributes["isShow"] == null)
                {
                    continue;
                }
                if (xn.Attributes["isShow"].Value.ToLower() == "false")
                {
                    continue;
                }
            }

            if (resourcesIds.Contains(xn.Attributes["ID"].Value.ToInt().ToInt()))
            {
                TB_Admin_Resources entity = new TB_Admin_Resources();
                entity.ID           = xn.Attributes["ID"].Value.ToInt();
                entity.ResourceName = xn.Attributes["Name"].Value;
                entity.ChildTree    = new List <TB_Admin_Resources>();
                entity.IsShow       = (xn.Attributes["IsShow"].Value.ToLower() == "true" ? true : false);

                XmlNodeList childlist = xn.ChildNodes;
                foreach (XmlNode child in childlist)
                {
                    if (IsShowMenu == true)
                    {
                        if (child.Attributes["isShow"] == null)
                        {
                            continue;
                        }
                        if (child.Attributes["isShow"].Value.ToLower() == "false")
                        {
                            continue;
                        }
                    }

                    if (resourcesIds.Contains(child.Attributes["ID"].Value.ToInt().ToInt()))
                    {
                        TB_Admin_Resources entity2 = new TB_Admin_Resources();
                        entity2.ID           = child.Attributes["ID"].Value.ToInt();
                        entity2.ResourceName = child.InnerText;
                        entity2.Url          = child.Attributes["Url"].Value;
                        entity2.IsShow       = child.Attributes["IsShow"] == null ? false : (child.Attributes["IsShow"].Value.ToLower() == "true" ? true : false);
                        entity.ChildTree.Add(entity2);
                    }
                }

                list.Add(entity);
            }
        }

        return(list);
    }