Example #1
0
        private List <string> PageFlag()
        {
            var area       = RouteData.DataTokens.ContainsKey("area") ? RouteData.DataTokens["area"].ToString() : string.Empty;
            var controller = RouteData.Values["controller"].ToString();

            var pageUrl = string.Format("{0}/{1}/Index", area, controller);

            try
            {
                var listpers = PermissionHelper.GetCurrentUserPageNoPermission(pageUrl, _administratorContract, _moduleContract, _permissionContract)
                               .ToList();

                return(listpers.Where(p => !string.IsNullOrEmpty(p.OnlyFlag))
                       .Select(p => p.OnlyFlag)
                       .ToList());
            }
            catch (Exception ex)
            {
                throw new Exception("error");
            }
        }
        public ActionResult QueryPageFlag(bool isValid)
        {
            var area       = RouteData.DataTokens.ContainsKey("area") ? RouteData.DataTokens["area"].ToString() : string.Empty;
            var controller = RouteData.Values["controller"].ToString();

            var pageUrl         = string.Format("{0}/{1}/Index", area, controller);
            var permisstionList = new List <Permission>();

            try
            {
                if (isValid)  // 获取拥有的权限标识
                {
                    var res = PermissionHelper.GetCurrentUserPagePermission(pageUrl, _adminContract, _moduleContract, _permissionContract);
                    if (res != null && res.Any())
                    {
                        permisstionList.AddRange(res);
                    }
                }
                else  // 获取需要屏蔽的权限标识
                {
                    var res = PermissionHelper.GetCurrentUserPageNoPermission(pageUrl, _adminContract, _moduleContract, _permissionContract);
                    if (res != null && res.Any())
                    {
                        permisstionList.AddRange(res);
                    }
                }


                var flags = permisstionList.Where(p => !string.IsNullOrEmpty(p.OnlyFlag))
                            .Select(p => p.OnlyFlag)
                            .ToList();
                return(Json(new OperationResult(OperationResultType.Success, string.Empty, flags), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                _Logger.Error("权限包含的页面元素加载出错,错误如下:" + ex.Message + "。");
                throw new Exception("error");
            }
        }