Ejemplo n.º 1
0
        /// <summary>
        /// 获得某个角色的权限
        /// </summary>
        /// <param name="RoleNum"></param>
        /// <returns></returns>
        public List <SysResourceEntity> GetRoleResource(string RoleNum)
        {
            List <SysResourceEntity> ListResult = CacheHelper.Get(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, RoleNum)) as List <SysResourceEntity>;

            if (ListResult.IsNullOrEmpty())
            {
                SysResourceProvider      provider   = new SysResourceProvider();
                List <SysResourceEntity> ListSource = provider.GetList();
                ListSource = ListSource.IsNull() ? new List <SysResourceEntity>() : ListSource;

                ListSource = JsonConvert.DeserializeObject <List <SysResourceEntity> >(JsonConvert.SerializeObject(ListSource));

                List <SysRelationEntity> ListRole = GetList(RoleNum);
                ListRole = ListRole.IsNull() ? new List <SysRelationEntity>() : ListRole;

                ListResult = ListSource.Where(a => ListRole.Exists(b => b.ResNum == a.ResNum)).ToList();

                //超级管理员权限
                if (RoleNum == ResourceManager.GetSettingEntity("Super_AdminRole").Value)
                {
                    ListResult = ListSource;
                }

                if (!ListResult.IsNullOrEmpty())
                {
                    CacheHelper.Insert(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, RoleNum), ListResult, null, DateTime.Now.AddDays(1));
                }
            }
            return(ListResult);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 给某个角色分配权限
        /// </summary>
        /// <param name="roleNum"></param>
        /// <param name="resItems"></param>
        /// <returns></returns>
        public int AllotPower(string roleNum, List<string> resItems)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;
                if (!resItems.IsNullOrEmpty())
                {
                    SysRelationEntity entity = new SysRelationEntity();
                    entity.Where(a => a.RoleNum == roleNum);
                    line = this.SysRelation.Delete(entity);

                    SysResourceProvider provider = new SysResourceProvider();

                    List<SysRelationEntity> list = new List<SysRelationEntity>();
                    foreach (string resNum in resItems)
                    {
                        SysResourceEntity resource = provider.GetResource(resNum);
                        short ResType = resource != null ? resource.ResType : (short)EResourceType.Page;
                        entity = new SysRelationEntity() { RoleNum = roleNum, ResNum = resNum, ResType = ResType };
                        entity.IncludeAll();
                        list.Add(entity);
                    }
                    line += this.SysRelation.Add(list);
                }
                ts.Complete();
                if (line > 0)
                {
                    CacheHelper.Remove(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, roleNum));
                    CacheHelper.Remove(CacheKey.JOOSHOW_ALLOTPOWER_CACHE);
                }
                return line;
            }
        }
Ejemplo n.º 3
0
 public ActionResult AddMenu([ModelBinder(typeof(JsonBinder<SysResourceEntity>))] SysResourceEntity entity)
 {
     SysResourceProvider provider = new SysResourceProvider();
     entity.UpdateTime = DateTime.Now;
     entity.ParentPath = "";
     entity.CreateUser = this.LoginUser.UserCode;
     entity.UpdateUser = this.LoginUser.UserCode;
     entity.CreateIp = "";
     entity.UpdateIp = "";
     entity.Remark = "";
     entity.IsDelete = (int)EIsDelete.NotDelete;
     entity.IsHide = (int)EBool.No;
     int line = 0;
     if (entity.ResNum.IsEmpty())
     {
         entity.CreateTime = DateTime.Now;
         line = provider.AddResource(entity);
     }
     else
     {
         line = provider.UpdateResource(entity);
     }
     if (line > 0)
     {
         this.ReturnJson.AddProperty("d", "success");
     }
     else
     {
         this.ReturnJson.AddProperty("d", "");
     }
     return Content(this.ReturnJson.ToString());
 }
Ejemplo n.º 4
0
 public ActionResult Delete(string ResNum)
 {
     SysResourceProvider provider = new SysResourceProvider();
     int line = provider.DeleteResource(ResNum);
     if (line > 0)
     {
         this.ReturnJson.AddProperty("d", "success");
     }
     return Content(this.ReturnJson.ToString());
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 给某个角色分配权限
        /// </summary>
        /// <param name="roleNum"></param>
        /// <param name="resItems"></param>
        /// <returns></returns>
        public int AllotPower(string roleNum, List <string> resItems)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;
                if (!resItems.IsNullOrEmpty())
                {
                    List <string>            listInfo   = new List <string>();
                    List <SysResourceEntity> ListSource = new SysResourceProvider(this.CompanyID).GetList();
                    ListSource = ListSource.IsNull() ? new List <SysResourceEntity>() : ListSource;

                    resItems.ForEach(a =>
                    {
                        SysResourceEntity res = ListSource.FirstOrDefault(b => b.ResNum == a);
                        if (res != null && res.ParentNum.IsNotEmpty())
                        {
                            SysResourceEntity parent = ListSource.FirstOrDefault(b => b.ResNum == res.ParentNum);
                            listInfo.Add(parent.ResNum);
                        }
                        listInfo.Add(a);
                    });

                    SysRelationEntity entity = new SysRelationEntity();
                    entity.Where(a => a.RoleNum == roleNum);
                    line = this.SysRelation.Delete(entity);

                    SysResourceProvider provider = new SysResourceProvider(this.CompanyID);

                    List <SysRelationEntity> list = new List <SysRelationEntity>();
                    foreach (string resNum in listInfo)
                    {
                        SysResourceEntity resource = provider.GetResource(resNum);
                        short             ResType  = resource != null ? resource.ResType : (short)EResourceType.Page;
                        entity = new SysRelationEntity()
                        {
                            RoleNum = roleNum, ResNum = resNum, ResType = ResType, CompanyID = this.CompanyID
                        };
                        entity.SnNum = entity.SnNum.IsEmpty() ? ConvertHelper.NewGuid() : entity.SnNum;
                        entity.IncludeAll();
                        list.Add(entity);
                    }
                    line += this.SysRelation.Add(list);
                }
                ts.Complete();
                if (line > 0)
                {
                    CacheHelper.Remove(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, roleNum));
                    CacheHelper.Remove(CacheKey.JOOSHOW_ALLOTPOWER_CACHE);
                }
                return(line);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 添加菜单
        /// </summary>
        /// <returns></returns>
        public ActionResult AddMenu()
        {
            string resNum = WebUtil.GetQueryStringValue<string>("resNum");

            if (resNum.IsEmpty())
            {
                ViewBag.RoleList = BaseHelper.GetParentMenu(string.Empty);
                SysResourceEntity entity = new SysResourceEntity();
                ViewBag.Menu = entity;
                ViewBag.ResourceType = EnumHelper.GetOptions<EResourceType>(EResourceType.Page,"请选择菜单类型");
                return View();
            }
            else
            {
                SysResourceProvider provider = new SysResourceProvider();
                SysResourceEntity entity = provider.GetResource(resNum);
                entity = entity == null ? new SysResourceEntity() : entity;
                ViewBag.RoleList = BaseHelper.GetParentMenu(entity.ParentNum);
                ViewBag.Menu = entity;
                ViewBag.ResourceType = EnumHelper.GetOptions<EResourceType>(entity.ResType, "请选择菜单类型");
                return View();
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 给某个角色分配权限
        /// </summary>
        /// <param name="roleNum"></param>
        /// <param name="resItems"></param>
        /// <returns></returns>
        public int AllotPower(string roleNum, List <string> resItems)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;
                if (!resItems.IsNullOrEmpty())
                {
                    SysRelationEntity entity = new SysRelationEntity();
                    entity.Where(a => a.RoleNum == roleNum);
                    line = this.SysRelation.Delete(entity);

                    SysResourceProvider provider = new SysResourceProvider();

                    List <SysRelationEntity> list = new List <SysRelationEntity>();
                    foreach (string resNum in resItems)
                    {
                        SysResourceEntity resource = provider.GetResource(resNum);
                        short             ResType  = resource != null ? resource.ResType : (short)EResourceType.Page;
                        entity = new SysRelationEntity()
                        {
                            RoleNum = roleNum, ResNum = resNum, ResType = ResType
                        };
                        entity.IncludeAll();
                        list.Add(entity);
                    }
                    line += this.SysRelation.Add(list);
                }
                ts.Complete();
                if (line > 0)
                {
                    CacheHelper.Remove(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, roleNum));
                    CacheHelper.Remove(CacheKey.JOOSHOW_ALLOTPOWER_CACHE);
                }
                return(line);
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 获得某个角色的权限
        /// </summary>
        /// <param name="RoleNum"></param>
        /// <returns></returns>
        public List<SysResourceEntity> GetRoleResource(string RoleNum)
        {
            List<SysResourceEntity> ListResult = CacheHelper.Get(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, RoleNum)) as List<SysResourceEntity>;
            if (ListResult.IsNullOrEmpty())
            {
                SysResourceProvider provider = new SysResourceProvider();
                List<SysResourceEntity> ListSource = provider.GetList();
                ListSource = ListSource.IsNull() ? new List<SysResourceEntity>() : ListSource;

                ListSource = JsonConvert.DeserializeObject<List<SysResourceEntity>>(JsonConvert.SerializeObject(ListSource));

                List<SysRelationEntity> ListRole = GetList(RoleNum);
                ListRole = ListRole.IsNull() ? new List<SysRelationEntity>() : ListRole;

                ListResult = ListSource.Where(a => ListRole.Exists(b => b.ResNum == a.ResNum)).ToList();

                //超级管理员权限
                if (RoleNum == ResourceManager.GetSettingEntity("Super_AdminRole").Value)
                {
                    ListResult = ListSource;
                }

                if (!ListResult.IsNullOrEmpty())
                {
                    CacheHelper.Insert(string.Format(CacheKey.JOOSHOW_ROLEPOWER_CACHE, RoleNum), ListResult, null, DateTime.Now.AddDays(1));
                }
            }
            return ListResult;
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 获得权限分配
        /// </summary>
        /// <param name="roleNum"></param>
        /// <returns></returns>
        public Params<List<SysResourceEntity>, List<SysResourceEntity>, List<SysResourceEntity>> GetRole(string roleNum)
        {
            Params<List<SysResourceEntity>, List<SysResourceEntity>, List<SysResourceEntity>> param = new Params<List<SysResourceEntity>, List<SysResourceEntity>, List<SysResourceEntity>>();
            SysResourceProvider provider = new SysResourceProvider();
            param.Item1 = provider.GetList();
            param.Item2 = GetRoleResource(roleNum);

            param.Item1 = param.Item1.IsNull() ? new List<SysResourceEntity>() : param.Item1;
            param.Item2 = param.Item2.IsNull() ? new List<SysResourceEntity>() : param.Item2;
            param.Item3 = param.Item1.Where(a => !param.Item2.Exists(b => b.ResNum == a.ResNum)).ToList();
            param.Item3 = param.Item3.IsNull() ? new List<SysResourceEntity>() : param.Item3;
            List<SysResourceEntity> listTemp = new List<SysResourceEntity>();
            foreach (SysResourceEntity item in param.Item2)
            {
                if (!item.ParentNum.IsEmpty() && !param.Item2.Exists(a => a.ResNum == item.ParentNum))
                {
                    SysResourceEntity entity = param.Item1.First(a => a.ResNum == item.ParentNum);
                    if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                    {
                        listTemp.Add(entity);
                    }

                    if (!entity.ParentNum.IsEmpty() && !param.Item2.Exists(a => a.ResNum == entity.ParentNum))
                    {
                        entity = param.Item1.First(a => a.ResNum == entity.ParentNum);
                        if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                        {
                            listTemp.Add(entity);
                        }
                    }
                }
            }
            param.Item2.AddRange(listTemp);

            listTemp = new List<SysResourceEntity>();
            if (!param.Item3.IsNullOrEmpty())
            {
                foreach (SysResourceEntity item in param.Item3)
                {
                    if (!item.ParentNum.IsEmpty() && !param.Item3.Exists(a => a.ResNum == item.ParentNum))
                    {
                        SysResourceEntity entity = param.Item1.First(a => a.ResNum == item.ParentNum);
                        if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                        {
                            listTemp.Add(entity);
                        }

                        if (!entity.ParentNum.IsEmpty() && !param.Item3.Exists(a => a.ResNum == entity.ParentNum))
                        {
                            entity = param.Item1.First(a => a.ResNum == entity.ParentNum);
                            if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                            {
                                listTemp.Add(entity);
                            }
                        }
                    }
                }
            }
            param.Item3.AddRange(listTemp);

            return param;
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 获得权限分配
        /// </summary>
        /// <param name="roleNum"></param>
        /// <returns></returns>
        public Params <List <SysResourceEntity>, List <SysResourceEntity>, List <SysResourceEntity> > GetRole(string roleNum)
        {
            Params <List <SysResourceEntity>, List <SysResourceEntity>, List <SysResourceEntity> > param = new Params <List <SysResourceEntity>, List <SysResourceEntity>, List <SysResourceEntity> >();
            SysResourceProvider provider = new SysResourceProvider();

            param.Item1 = provider.GetList();
            param.Item2 = GetRoleResource(roleNum);

            param.Item1 = param.Item1.IsNull() ? new List <SysResourceEntity>() : param.Item1;
            param.Item2 = param.Item2.IsNull() ? new List <SysResourceEntity>() : param.Item2;
            param.Item3 = param.Item1.Where(a => !param.Item2.Exists(b => b.ResNum == a.ResNum)).ToList();
            param.Item3 = param.Item3.IsNull() ? new List <SysResourceEntity>() : param.Item3;
            List <SysResourceEntity> listTemp = new List <SysResourceEntity>();

            foreach (SysResourceEntity item in param.Item2)
            {
                if (!item.ParentNum.IsEmpty() && !param.Item2.Exists(a => a.ResNum == item.ParentNum))
                {
                    SysResourceEntity entity = param.Item1.First(a => a.ResNum == item.ParentNum);
                    if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                    {
                        listTemp.Add(entity);
                    }

                    if (!entity.ParentNum.IsEmpty() && !param.Item2.Exists(a => a.ResNum == entity.ParentNum))
                    {
                        entity = param.Item1.First(a => a.ResNum == entity.ParentNum);
                        if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                        {
                            listTemp.Add(entity);
                        }
                    }
                }
            }
            param.Item2.AddRange(listTemp);

            listTemp = new List <SysResourceEntity>();
            if (!param.Item3.IsNullOrEmpty())
            {
                foreach (SysResourceEntity item in param.Item3)
                {
                    if (!item.ParentNum.IsEmpty() && !param.Item3.Exists(a => a.ResNum == item.ParentNum))
                    {
                        SysResourceEntity entity = param.Item1.First(a => a.ResNum == item.ParentNum);
                        if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                        {
                            listTemp.Add(entity);
                        }

                        if (!entity.ParentNum.IsEmpty() && !param.Item3.Exists(a => a.ResNum == entity.ParentNum))
                        {
                            entity = param.Item1.First(a => a.ResNum == entity.ParentNum);
                            if (!listTemp.Exists(a => a.ResNum == entity.ResNum))
                            {
                                listTemp.Add(entity);
                            }
                        }
                    }
                }
            }
            param.Item3.AddRange(listTemp);

            return(param);
        }
Ejemplo n.º 11
0
 public ActionResult GetMenuList(int pageIndex, int pageSize, string resName, string parentNum)
 {
     SysResourceProvider provider = new SysResourceProvider();
     List<SysResourceEntity> list = provider.GetList();
     if (!list.IsNullOrEmpty())
     {
         List<SysResourceEntity> listResult = list;
         if (!resName.IsEmpty())
         {
             listResult = listResult.Where(a => a.ResName.Contains(resName)).ToList();
         }
         if (!parentNum.IsEmpty())
         {
             listResult = listResult.Where(a => a.ParentNum.Contains(parentNum)).ToList();
         }
         List<SysResourceEntity> returnList = listResult.Skip((pageIndex - 1) * pageSize).Take(pageSize).OrderByDescending(a => a.ID).ToList();
         this.ReturnJson.AddProperty("Data", ConvertJson.ListToJson<SysResourceEntity>(returnList, "List"));
         this.ReturnJson.AddProperty("RowCount", listResult.Count);
     }
     return Content(this.ReturnJson.ToString());
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 设置导航信息
        /// </summary>
        private void SetNav()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<ul class=\"breadcrumb\">");
            sb.Append("<li>");
            sb.Append("<i class=\"icon-home\"></i>");
            sb.Append("<a href=\"/Home/Welcome\">首页</a>");
            sb.Append("<i class=\"icon-angle-right\"></i>");
            sb.Append("</li>");
            if (IsLogin() && !this.LoginUser.RoleNum.IsEmpty())
            {
                PowerProvider provider = new PowerProvider();
                SysResourceProvider SysResourceProvider = new SysResourceProvider();
                List<SysResourceEntity> listSource = SysResourceProvider.GetList();
                List<SysResourceEntity> list = provider.GetRoleResource(this.LoginUser.RoleNum);
                if (!list.IsNullOrEmpty())
                {
                    SysResourceEntity item = list.SingleOrDefault(a => a.Url.ToLower() == this.Path.ToLower());
                    List<SysResourceEntity> listResult = new List<SysResourceEntity>();
                    while (item != null)
                    {
                        listResult.Insert(0, item);

                        if (item.ParentNum.IsEmpty())
                        {
                            break;
                        }
                        else
                        {
                            if (listSource.Exists(a => a.ResNum == item.ParentNum))
                            {
                                item = listSource.First(a => a.ResNum == item.ParentNum);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    for (int i = 0; i < listResult.Count; i++)
                    {
                        if (i != listResult.Count - 1)
                        {
                            sb.Append("<li>");
                            sb.AppendFormat("<a href=\"{0}\">{1}</a>", listResult[i].Url.IsEmpty() ? "javascript:void(0)" : listResult[i].Url, listResult[i].ResName);
                            sb.Append("<i class=\"icon-angle-right\"></i>");
                            sb.Append("</li>");
                        }
                        else
                        {
                            sb.Append("<li>");
                            sb.AppendFormat("<a href=\"javascript:void(0)\">{0}</a>", listResult[i].ResName);
                            sb.Append("</li>");
                        }
                    }
                }
            }
            sb.Append("</ul>");
            ViewBag.NavMenu = sb.ToString();
        }
Ejemplo n.º 13
0
 /// <summary>
 /// 获得父类菜单
 /// </summary>
 /// <param name="parentNum"></param>
 /// <returns></returns>
 public static string GetParentMenu(string parentNum)
 {
     SysResourceProvider sysRes = new SysResourceProvider();
     List<SysResourceEntity> list = sysRes.GetList();
     StringBuilder sb = new StringBuilder();
     string menuTemplate = "<option value='{0}' {1}>{2}</option>";
     sb.AppendFormat(menuTemplate, "", "", "请选择");
     if (!list.IsNullOrEmpty())
     {
         foreach (SysResourceEntity entity in list.Where(a => a.ResType == (short)EResourceType.Page))
         {
             sb.AppendFormat(menuTemplate, entity.ResNum, entity.ResNum == parentNum ? "selected='selected'" : string.Empty, entity.ResName);
         }
     }
     return sb.ToString();
 }