protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (TicketTool.IsLogin()) { CurAuthor = JsonConvert.DeserializeObject <AuthorInfoEntity>(TicketTool.GetUserData()); if (CurAuthor == null) { filterContext.HttpContext.Response.Redirect(SiteConfig.RootPath + "/user/login/", true); } else { string cururl = filterContext.HttpContext.Request.Path.ToLower(); if (!cururl.EndsWith("/")) { cururl = cururl + "/"; } if (CurAuthor.GroupID == (byte)EnumMemberGroup.Editor) { # region check is have access cur url right RoleMenuQuery roleQuery = new RoleMenuQuery(); roleQuery.RoleIDList = CurAuthor.RoleIDList; roleQuery.Url = cururl; roleQuery.JournalID = JournalID; if (!systemFacadeService.IsHaveAccessRight(roleQuery)) { filterContext.HttpContext.Response.Redirect("/?url=" + filterContext.HttpContext.Server.UrlEncode("/home/noright"), true); } CurAuthor.RoleIDList.Add(2); CurAuthor.RoleIDList.Add(3); # endregion ViewBag.SiteTitle = "稿件管理平台"; } else if (CurAuthor.GroupID == (byte)EnumMemberGroup.Expert || CurAuthor.GroupID == (byte)EnumMemberGroup.EnExpert) { # region check is have access cur url right RoleMenuQuery roleQuery = new RoleMenuQuery(); roleQuery.GroupID = CurAuthor.GroupID; roleQuery.Url = cururl; roleQuery.JournalID = JournalID; if (!systemFacadeService.IsHaveAccessRightByGroup(roleQuery)) { filterContext.HttpContext.Response.Redirect("/?url=" + filterContext.HttpContext.Server.UrlEncode("/home/noright"), true); } # endregion
/// <summary> /// 将查询实体转换为Where语句 /// <param name="query">查询实体</param> /// <returns>获取Where语句,不包含Where</returns> /// </summary> public string RoleMenuQueryToSQLWhere(RoleMenuQuery query) { StringBuilder sbWhere = new StringBuilder(" JournalID = " + query.JournalID); if (query.RoleID != null) { sbWhere.Append(" AND RoleID = ").Append(query.RoleID.Value); } if (query.RoleIDList != null) { if (query.RoleIDList.Count > 0) { if (query.RoleIDList.Count == 1) { sbWhere.Append(" AND RoleID = ").Append(query.RoleIDList[0]); } else { sbWhere.Append(" AND RoleID IN (").Append(string.Join(",", query.RoleIDList)).Append(")"); } } } return(sbWhere.ToString()); }
/// <summary> /// 是否有权限访问当前地址,根据分组判断 /// 如果该地址出现在menu表中了,则进行判断,如果没有则不判断 /// </summary> /// <param name="RoleIDList"></param> /// <param name="url"></param> /// <returns></returns> public bool IsHaveAccessRightByGroup(RoleMenuQuery query) { return(RoleMenuDataAccess.Instance.IsHaveAccessRightByGroup(query)); }
/// <summary> /// 获取指定角色拥有权限的菜单ID /// </summary> /// <param name="query"></param> /// <returns></returns> public IDictionary <long, long> GetRoleMenuDict(RoleMenuQuery query) { return(RoleMenuDataAccess.Instance.GetRoleMenuDict(query)); }
/// <summary> /// 获取指定角色拥有的菜单 /// </summary> /// <param name="query"></param> /// <returns></returns> public IList <MenuEntity> GetHaveRightMenuList(RoleMenuQuery query) { return(RoleMenuDataAccess.Instance.GetHaveRightMenuList(query)); }
/// <summary> /// 获取所有符合查询条件的数据 /// </summary> /// <param name="roleMenuQuery">RoleMenuQuery查询实体对象</param> /// <returns>List<RoleMenuEntity></returns> public List <RoleMenuEntity> GetRoleMenuList(RoleMenuQuery roleMenuQuery) { return(RoleMenuDataAccess.Instance.GetRoleMenuList(roleMenuQuery)); }
/// <summary> /// 获取指定角色拥有权限的菜单ID /// </summary> /// <param name="query"></param> /// <returns></returns> public IDictionary <long, long> GetRoleMenuDict(RoleMenuQuery query) { return(RoleMenuBusProvider.GetRoleMenuDict(query)); }
/// <summary> /// 获取指定角色拥有的菜单 /// </summary> /// <param name="query"></param> /// <returns></returns> public IList <MenuEntity> GetHaveRightMenuList(RoleMenuQuery query) { return(RoleMenuBusProvider.GetHaveRightMenuList(query)); }
/// <summary> /// 获取所有符合查询条件的数据 /// </summary> /// <param name="roleMenuQuery">RoleMenuQuery查询实体对象</param> /// <returns>List<RoleMenuEntity></returns> public List <RoleMenuEntity> GetRoleMenuList(RoleMenuQuery roleMenuQuery) { return(RoleMenuBusProvider.GetRoleMenuList(roleMenuQuery)); }
/// <summary> /// 是否有权限访问当前地址,根据分组判断 /// 如果该地址出现在menu表中了,则进行判断,如果没有则不判断 /// </summary> /// <param name="RoleIDList"></param> /// <param name="url"></param> /// <returns></returns> public bool IsHaveAccessRightByGroup(RoleMenuQuery query) { return(RoleMenuBusProvider.IsHaveAccessRightByGroup(query)); }
/// <summary> /// 将查询实体转换为Order语句 /// <param name="query">查询实体</param> /// <returns>获取Order语句,不包含Order</returns> /// </summary> public string RoleMenuQueryToSQLOrder(RoleMenuQuery query) { return(" MapID DESC"); }