protected override bool AuthorizeCore(HttpContextBase httpContext) { if (CurrentUser.IsAdmin) { return(true); } try { CurrentUser user = CurrentUser.GetCurrentUser(); // 得所有配置的权限 var permissions = ActionPermission.GetAllPermission(); bool validating = true; // 只有已配置的权限才是需要验证的权限,否则不验证 if (permissions.ExistsPermissions(areaName, controllerName, actionName)) { validating = user.Permissions.ExistsPermissions(areaName, controllerName, actionName); } } catch { return(false); } //return validating; return(true); }
public virtual ActionResult GetPermissionFunction(string actionName) { //ViewContext.RouteData.DataTokens["area"].ToString().ToLower(); //ControllerContext.RouteData.DataTokens["area"] var areaName = Convert.ToString(ControllerContext.RouteData.DataTokens["area"]); var controllerName = this.RouteData.Values["controller"].ToString(); //var actionName = this.RouteData.Values["action"].ToString(); if (string.Equals(controllerName, "Account", StringComparison.CurrentCultureIgnoreCase)) { return(JavaScript("")); } var user = CurrentUser.GetCurrentUser(); var userFunList = user.Permissions.GetFunctionList(areaName, controllerName, actionName); if (userFunList == null) { userFunList = new List <Entities.TabelEntities.IMS_UP_MKGN>(); } // 得所有配置的权限 var permissions = ActionPermission.GetAllPermission(); var allFunList = permissions.GetFunctionList(areaName, controllerName, actionName); //var controlsDisabledDictionary = new Dictionary<string, bool>(); if (allFunList == null) { return(JavaScript("")); } StringBuilder scriptBuilder = new StringBuilder(); foreach (var fun in allFunList) { // 为true时禁用按钮。 var disabled = !userFunList.Exists(n => n.GNID == fun.GNID); //controlsDisabledDictionary.Add(fun.KJID, disabled); if (disabled) { scriptBuilder.AppendFormat("$('{0}').hide();\r\n", fun.KJID); } } return(JavaScript(scriptBuilder.ToString())); }
public PartialViewResult _MenuPartial() { var menuList = new List <IMS_UP_MK>(); var rootModuleList = dalModule.GetRootModule(); if (rootModuleList == null) { return(PartialView(null)); } var rootMenus = rootModuleList.OrderBy(n => n.PXID); PermissionViewModule permissionModule = null; if (CurrentUser.IsAdmin) { //dalPermission.GetAllEntites permissionModule = ActionPermission.GetAllPermission(); } else { if (!User.Identity.IsAuthenticated) { permissionModule = null; } else { var user = CurrentUser.GetCurrentUser(); permissionModule = user.Permissions; } } if (permissionModule == null) { return(PartialView(menuList)); } foreach (var m in rootMenus) { var perList = permissionModule.Modules.Where(n => n.FMKID == m.MKID).OrderBy(n => n.PXID); //var userPermissionList = user.Permissions.Modules.Where(n => n.ParentID == m.ModuleID); // 有子项菜单才需要显示 if (perList.Count() > 0) { menuList.Add(m); menuList.AddRange(perList); //foreach (var p in perList) // menuList.Add(p); } //var x = dalModule.GetChildModuleList(m.ModuleID); //menuList.AddRange(x); } foreach (var m in menuList) { // 根节点不需要url地址 if (m.FMKID == -1) { continue; } if (string.IsNullOrEmpty(m.QY)) { m.URL = Url.Action(m.HDMC, m.KZMC); } else { m.URL = Url.Action(m.HDMC, m.KZMC, new { area = m.QY }); } } return(PartialView(menuList)); }