예제 #1
0
        /// <summary>
        /// 通过controller,action,method获取功能模型
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="action"></param>
        /// <param name="method"></param>
        /// <returns></returns>
        public Model.gn getGnModelByName(string controller, string action)
        {
            DAL.gn          gndal = new DAL.gn();
            List <Model.gn> gns   = gndal.getModelList("");

            return(gns.Where(b => (b.controller == controller && b.action == action && b.ispublic == false)).FirstOrDefault());
        }
예제 #2
0
        /// <summary>
        /// 获取controller列表
        /// </summary>
        /// <returns></returns>
        public List <ViewModels.KeyValueDTO> getControllers()
        {
            List <ViewModels.KeyValueDTO> kvs = new List <ViewModels.KeyValueDTO>();

            DAL.gn gndal = new DAL.gn();

            List <Model.gn> gns = gndal.getModelList("");

            var query = from r in gns
                        where r.islock == false
                        where r.ispublic == false
                        orderby r.controller
                        group r by new { c = r.controller, cn = r.controllername } into g
                select new
            {
                g.Key.c,
                g.Key.cn
            };

            foreach (var item in query)
            {
                kvs.Add(new ViewModels.KeyValueDTO
                {
                    key   = item.c,
                    value = item.cn
                });
            }

            return(kvs);
        }
예제 #3
0
        /// <summary>
        /// 获取用户有权限的菜单
        /// </summary>
        /// <param name="yhsession"></param>
        /// <returns></returns>
        public static List <Model.cd> getAuthCd(YhSession yhsession)
        {
            DAL.gn gndal = new DAL.gn();
            //获取用户有权限的功能
            int[] gnids = gndal.getGnidsByYhmc(yhsession.yh.yhmc);
            //string gnidsStr = String.Join(",", gnids);
            List <int> gnidList = gnids.ToList();

            //通过用户有权限的功能得到用户有权限的菜单
            DAL.cd cddal = new DAL.cd();
            //List<Model.cd> cds = cddal.getModelList(" gnid in(" + gnidsStr + ")");
            List <Model.cd> cds = cddal.getModelList("");

            List <Model.cd> yhcds = cds.FindAll(delegate(Model.cd cd)
            {
                if (cd.gnid.HasValue)
                {
                    return(gnidList.Contains(cd.gnid.Value));
                }
                else
                {
                    return(false);
                }
            });
            //获取上级菜单并添加菜单记录
            List <Model.cd> x1 = cds.FindAll(delegate(Model.cd cd)
            {
                return(yhcds.FindAll(b => b.sjcdid == cd.cdid).Count > 0);
            });

            yhcds.AddRange(x1);


            return(yhcds);
        }
예제 #4
0
        /// <summary>
        /// 校验用户权限
        /// </summary>
        /// <param name="yhmc"></param>
        /// <param name="ctrl"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        public bool checkYhqx(string yhmc, string ctrl, string action)
        {
            DAL.gn gndal = new DAL.gn();

            int[] gnids = gndal.getGnidsByYhmc(yhmc);

            Model.gn gn = gndal.getModelByName(ctrl, action);

            if (gnids.Contains(gn.gnid))
            {
                return(true);
            }

            return(false);
        }
예제 #5
0
        string getUrlByGnid(int gnid, HtmlHelper htmlHelper)
        {
            DAL.gn   gndal = new DAL.gn();
            Model.gn gn    = gndal.GetModel(gnid);

            string contentUrl = UrlHelper.GenerateContentUrl("~/", htmlHelper.ViewContext.HttpContext);
            var    url        = contentUrl + gn.controller;

            if (!string.IsNullOrEmpty(gn.action))
            {
                url += "/" + gn.action;
            }

            return(url);
        }
예제 #6
0
        /// <summary>
        /// 通过controller获取aciton列表
        /// </summary>
        /// <param name="controller"></param>
        /// <returns></returns>
        public List <ViewModels.KeyValueDTO> getActionByController(string controller)
        {
            List <ViewModels.KeyValueDTO> kvs = new List <ViewModels.KeyValueDTO>();

            DAL.gn          gndal = new DAL.gn();
            List <Model.gn> gns   = gndal.getModelList("");
            var             query = gns.Where(b => b.controller == controller).Where(b => b.ispublic == false).Where(b => b.islock == false);

            foreach (var item in query)
            {
                kvs.Add(new ViewModels.KeyValueDTO
                {
                    key   = item.action,
                    value = item.actionname
                });
            }
            return(kvs);
        }
예제 #7
0
        public ActionResult Init()
        {
            DAL.gn gndal = dal as DAL.gn;

            //清空现有功能表
            gndal.DeleteAll();

            //利用反射获取程序功能写入到t_gn表中
            ActionPermissionService aps = new ActionPermissionService();
            IList <Model.gn>        gns = aps.GetAllActionByAssembly();

            foreach (Model.gn gn in gns)
            {
                gndal.Add(gn);
            }
            return(Json(new ViewModels.Message {
                sno = 1, msg = ""
            }));
        }
예제 #8
0
        public ActionResult List()
        {
            List <Model.gn> gns = new List <Model.gn>();

            DAL.gn gndal = dal as DAL.gn;
            if (gndal != null)
            {
                DataSet ds = gndal.GetList("");

                if (ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        Model.gn gn = gndal.DataRowToModel(dr);

                        gns.Add(gn);
                    }
                }
            }
            return(View(gns));
        }
예제 #9
0
        //获取角色功能
        //返回易绑定的格式
        public List <ViewModels.JsgnDTO> getJsgnDTO(int jsid)
        {
            //返回易绑定的格式
            List <ViewModels.JsgnDTO> jsgndtos = new List <ViewModels.JsgnDTO>();

            //获取系统所有功能(去除公共功能)
            List <Model.gn> gns = new List <Model.gn>();

            DAL.gn  gndal = new DAL.gn();
            DataSet ds    = gndal.GetList("");

            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    Model.gn gn = gndal.DataRowToModel(dr);
                    if (!gn.ispublic)
                    {
                        gns.Add(gn);
                    }
                }
            }

            //获取角色拥有的功能权限
            DAL.jsgn          jsgndal = new DAL.jsgn();
            List <Model.jsgn> jsgns   = jsgndal.getGnsByJsid(jsid);


            var query = from r in gns
                        orderby r.controller
                        group r by new { c = r.controller, cn = r.controllername } into g
                select new
            {
                g.Key.c,
                g.Key.cn,
                actions = from r1 in g
                          orderby r1.action
                          select new
                {
                    r1.gnid,
                    r1.action,
                    r1.actionname
                }
            };

            foreach (var item in query)
            {
                ViewModels.JsgnDTO jsgndto = new ViewModels.JsgnDTO();
                jsgndto.controller     = item.c;
                jsgndto.controllername = item.cn;

                foreach (var action in item.actions)
                {
                    ViewModels.JsAction jsaction = new ViewModels.JsAction
                    {
                        gnid       = action.gnid,
                        action     = action.action,
                        actionname = action.actionname
                    };

                    //绑定角色是否拥有该功能
                    if (jsgns.FindAll(b => b.gnid == action.gnid).Count > 0)
                    {
                        jsaction.isallow = true;
                    }

                    jsgndto.actions.Add(jsaction);
                }
                jsgndtos.Add(jsgndto);
            }

            return(jsgndtos);
        }