public ActionResult HeaderTopMenu() { try { var results = new List <SYS_MENU_ROLE>(); var tmpLstRoles = SysBaseInfor.GetListSysMenu(); if (!String.IsNullOrEmpty(tmpLstRoles)) { results = JsonConvert.DeserializeObject <List <SYS_MENU_ROLE> >(tmpLstRoles); } return(PartialView("~/Views/Shared/_HeaderTopMenu.cshtml", results)); } catch (Exception ex) { return(PartialView("~/Views/Shared/_Error.cshtml", ex)); } }
public override void OnAuthorization(AuthorizationContext filterContext) { try { var controllerName = filterContext.RouteData.Values["controller"]; var actionName = filterContext.RouteData.Values["action"]; var tmpAuth = PermissionsRequired; var tmpLstRoles = SysBaseInfor.GetListSysMenu(); var lstConvert = JsonConvert.DeserializeObject <List <SYS_MENU_ROLE> >(tmpLstRoles); var tmpSysMenu = lstConvert.Find(x => x.Controller == controllerName.ToString()); bool userOk = true; if (tmpSysMenu != null) { foreach (UserPermissions tmpPermission in tmpAuth) { int noR = (int)tmpPermission; if (tmpSysMenu.ACCESS_RIGHT[noR] == '0') { userOk = false; break; } } } if (tmpSysMenu != null && userOk) { base.OnAuthorization(filterContext); } else { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "WarningAndError" }, { "action", "NeedPermissionWarning" } }); } } catch (Exception ex) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "WarningAndError" }, { "action", "NeedPermissionWarning" } }); } base.OnAuthorization(filterContext); }