去掉没有的权限对应的菜单

一.用户登录页面有三种用户类型选择,分别是超级管理员,职工,用户。这三种不同的类型在登录后通常能看到的会不一样,超级管理员应该能有看到整个后台的权力,其次职工到用户它们都只能看到自己应该看到的部分,这也是我们常说的权限管理设置。

在这里插入图片描述

一个项目都是由一个个的小模块组合而成,就好比模块表这张表里有这个项目里所有的小模块,然而权限表就是根据不同的用户角色明细可以看到对应的模块,好比医院系统里我们这种普通用户看不到财务收钱界面。

     $(document).ready(function () {

            //权限部分

            var dirIdModlarName = {

                "护士工作站": "NurseWork",

                "护嘱管理": "NurseManage",

                
等·····

                       }

 
$.post("/Main/SelectModularJurisdiction", { time:
(newDate()).getTime().toString() }, function (objModulars) {

                console.log(objModulars);

                if (objModulars ==
"") {

                    window.location.href =
"/";

                } else {

                    for (key in objModulars) {

                        var obj = objModulars[key];

                        if (obj.ID == 0) {

                            var modularName =
obj.ModularName;

                            var elId =
dirIdModlarName[modularName];

                            $("#" +
elId).remove();//去掉没有的权限对应的菜单

                        }

                    }

                }

            });

控制器
需要获取到当前登录的是哪个用户,获取到后用用户ID进行条件筛选查询出该用户有的模块权限,则这里的Linq1为35条,通过左连接方法查询出总共模块为45条。说明这个用户有10个模块是没有访问的权限,然后tempTable的id查询不为空就执行查询,为空就直接赋值为0。

    public ActionResultSelectModularJurisdiction()

        { 

            try

            {

                var
userId = Convert.ToInt32(Session["UserID"].ToString());

                var
Linq1 = from tbModual in myModels.S_Modular

                           
join tbModualDetail in myModels.S_ModularDetail on tbModual.ModularID
equals tbModualDetail.ModularID

                           
join tbjdtion in myModels.S_Jdtion on tbModualDetail.ModularDetailID
equals tbjdtion.ModularDetailID

                           
join tbUserType in myModels.S_UserType on tbjdtion.UserTypeID equals
tbUserType.UserTypeID

                           
join tbUserRoleDetail in myModels.R_UserRoleDetail on
tbUserType.UserTypeID equals tbUserRoleDetail.UserTypeID

                           
where tbUserRoleDetail.UserID == userId

                           
select new

                           
{

                               
ID=tbModualDetail.ModularID,

                               
Name=tbModual.ModularName.Trim()

                           
};

   //左连接

 var userModualars =
(from tbModual in myModels.S_Modular

           join
tbTemp in Linq1 on tbModual.ModularID equals tbTemp.ID into tempTable

           select
new  {

                        
ModularID=tbModual.ModularID,

                        
ModularName=tbModual.ModularName,                                 
ID=tempTable.Select(t=>t.ID).FirstOrDefault()!=null?tempTable.Select(t=>t.ID).FirstOrDefault():0

                                     }).ToList();

 

                return Json(userModualars,
JsonRequestBehavior.AllowGet);

            }

            catch (Exception e)

            {

                Console.Write(e);

                return Json("", JsonRequestBehavior.AllowGet);

            }

        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值