/// <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()); }
/// <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); }
/// <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); }
/// <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); }
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); }
/// <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); }
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 = "" })); }
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)); }
//获取角色功能 //返回易绑定的格式 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); }