public JsonResult GetListP()
        {
            TransactionalInformation transaction;

            //SysRightInquiryViewModel sysRightInquiryViewModel = new SysRightInquiryViewModel();

            var account = Session["Account"] as Account;

            //string accountId = "admin";
            string controller = "SysSample";

            SysRightApplicationService sysRightApplicationService = new SysRightApplicationService(sysRightDataService);
            List <Permission>          permissions = sysRightApplicationService.GetPermissions(account.Id, controller, out transaction);

            //SysRightApplicationService sysSampleApplicationService = new SysRightApplicationService(sysSampleDataService);
            //List<SysRightInquiry> sysSamples = sysSampleApplicationService.GetSysRightInquiry(queryStr, paging, out transaction);

            //if (id != string.Empty)
            //{
            //sysRightInquiryViewModel.PermissionLists = permissions;
            //sysRightInquiryViewModel.ReturnStatus = transaction.ReturnStatus;
            //sysRightInquiryViewModel.ReturnMessage = transaction.ReturnMessage;

            //sysSampleInquiryViewModel.TotalPages = paging.TotalPages;
            //sysSampleInquiryViewModel.TotalRows = paging.TotalRows;
            //sysSampleInquiryViewModel.PageSize = paging.PageSize;
            //var json = permissionInquiryViewModel.TotalRows;

            var json = new
            {
                //total = paging.TotalRows,

                rows = (from r in permissions
                        select new Permission()
                {
                    //Id  = r.Id,
                    //Name = r.Name,
                    KeyCode = r.KeyCode,
                    IsValid = r.IsValid
                }).ToArray()
            };

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public bool ValiddatePermission(Account account, string controller, string action, string filePath)
        {
            bool   bResult    = false;
            string actionName = string.IsNullOrEmpty(ActionName) ? action : ActionName;

            if (account != null)
            {
                List <Permission> perm = null;

                //测试当前controller是否已赋权限值,如果没有从
                //如果存在区域,Seesion保存(区域+控制器)
                if (!string.IsNullOrEmpty(Area))
                {
                    controller = Area + "/" + controller;
                }

                perm = (List <Permission>)HttpContext.Current.Session[filePath];

                if (perm == null)
                {
                    TransactionalInformation transaction;

                    SysRightApplicationService sysRightApplicationService = new SysRightApplicationService(new AdoSysRightService());

                    perm = sysRightApplicationService.GetPermissions(account.Id, controller, out transaction); //获取当前用户的权限列表
                    HttpContext.Current.Session[filePath] = perm;                                              //获取的权限列表放入会话由Controller调用


                    //using (SysUserBLL userBLL = new SysUserBLL()
                    //{
                    //    sysRightRepository = new SysRightRepository()
                    //})

                    //{
                    //    perm = userBLL.GetPermission(account.Id, controller);//获取当前用户的权限列表
                    //    HttpContext.Current.Session[filePath] = perm;//获取的劝降放入会话由Controller调用
                    //}
                }
                //当用户访问index时,只要权限>0就可以访问
                if (actionName.ToLower() == "index")
                {
                    if (perm.Count > 0)
                    {
                        return(true);
                    }
                }
                //查询当前Action 是否有操作权限,大于0表示有,否则没有
                int count = perm.Where(a => a.KeyCode.ToLower() == actionName.ToLower()).Count();
                if (count > 0)
                {
                    bResult = true;
                    HttpContext.Current.Response.Write("你没有操作权限xxx,请联系管理员!");
                }
                else
                {
                    bResult = false;
                    HttpContext.Current.Response.Write("你没有操作权限,请联系管理员!");
                }
            }
            return(bResult);
        }