/// <summary>
        /// 区域黑名单
        /// </summary>
        //List<string> blackAreaNames = new List<string>() { "admin" };

        public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
        {
            string strCurAreaName = null;

            if (filterContext.RouteData.DataTokens.ContainsKey("area"))
            {
                strCurAreaName = filterContext.RouteData.DataTokens["area"].ToString().ToLower();
            }


            if (!IsDefind <Apps.Common.Attrs.SkipLoginAttribute>(filterContext))
            {
                if (IsLogin())
                {
                    Apps.Models.PermissionModel curPer = LoadMenuBtns(filterContext);
                    if (!IsDefind <Apps.Common.Attrs.SkipPermissionAttribute>(filterContext))
                    {
                        if (curPer == null)
                        {
                            filterContext.Result = SendMsg(AjaxMsgStatu.NoPermission, "您没有进行此项操作的权限");
                        }
                    }
                }
                else
                {
                    filterContext.Result = SendMsg(AjaxMsgStatu.NoLogin, "您尚未登录", "/Account/Index");
                }
            }
        }
        Apps.Models.PermissionModel LoadMenuBtns(System.Web.Mvc.AuthorizationContext filterContext)
        {
            string strCurAreaName = null;

            if (filterContext.RouteData.DataTokens.ContainsKey("area"))
            {
                strCurAreaName = filterContext.RouteData.DataTokens["area"].ToString().ToLower();
            }
            string strControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            string strActionName     = filterContext.ActionDescriptor.ActionName;

            Apps.Models.PermissionModel curPer = opeCur.GetUsrPermission(strCurAreaName, strControllerName, strActionName, opeCur.Request.HttpMethod);
            if (curPer != null)
            {
                var sonBtns = opeCur.UsrNowPers.Where(o => o.ParentId == curPer.Id && o.OperationType == 3).OrderBy(o => o.Sort).ToList();
                //if (sonBtns.Count==0) {
                if (curPer.OperationType == 3)
                {
                    sonBtns.Add(curPer);
                    //}
                    filterContext.Controller.ViewBag.sonBtns = sonBtns;
                    //filterContext.Controller.ViewBag.sonBtns = emptyBtns;
                }
                else
                {
                    filterContext.Controller.ViewBag.sonBtns = sonBtns;
                }
                return(curPer);
            }
            else
            {
                filterContext.Controller.ViewBag.sonBtns = emptyBtns;
                return(curPer);
            }
        }
示例#3
0
 public static MvcHtmlString ToolButtonModel(this HtmlHelper helper, string id, string icon, string text, List <Apps.Models.PermissionModel> perm, string keycode, bool hr)
 {
     Apps.Models.PermissionModel curPerm = perm.Where(a => a.ActionName == keycode).FirstOrDefault();
     if (curPerm != null)
     {
         StringBuilder sb = new StringBuilder();
         sb.AppendFormat("<a class=\"searchbtn\" id=\"{0}\" style=\"float: left;\" class=\"l-btn l-btn-plain\">", id);
         sb.AppendFormat("<span class=\"l-btn-left\"><span class=\"l-btn-text {0}\" style=\"font-size:14px;\">", curPerm.Iconic);
         sb.AppendFormat("</span><span style=\"font-size:12px\">{0}</span></span></a>", text);
         if (hr)
         {
             sb.Append("<div class=\"datagrid-btn-separator\"></div>");
         }
         return(new MvcHtmlString(sb.ToString()));
     }
     else
     {
         return(new MvcHtmlString(""));
     }
 }