帖子
帖子
用户
博客
课程
显示全部楼层
143
帖子
2
勋章
4万+
Y币

案例-特殊数据权限控制

[复制链接]
发表于 2024-2-3 17:59:44
本帖最后由 yonyouhmm 于 2024-2-4 09:59 编辑

一、说明
客户实际场景如下:希望在全局联查中能够点击单据进入详情页查看,但是不能通过工作台菜单打开此单据列表。
    实现思路:通过查询当前用户的角色,如果是指定的角色就在列表页前端脚本中jDiwork.closeWin();关闭菜单。
二、前端脚本
viewModel.on('customInit', function(data) {
//采购合同列表--页面初始化
  let result = cb.rest.invokeFunction("ycContractManagement.api.getRole", {},
            function(err, res) {},viewModel, {async:false});
  if(result.result.limit==true)
{     cb.utils.alert("您没有从菜单进入节点的权限");     jDiwork.closeWin();   }
});


三、后端脚本

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
     let code = ["nishch"]; //角色编码
     let userId = ObjectStore.user().id;
     let sql = "select * from sys.auth.UserRole where role.code in ("join(code,",")") and yhtUser='"userId"'";
     var res = ObjectStore.queryByYonQL(sql,"u8c-auth");
     let isLimit = false;
     if(res.length>0)

{        //说明没有权限        isLimit = true;      }
     return {"limit":isLimit};
}
}
exports({"entryPoint":MyAPIHandler});

您需要登录后才可以回帖 登录

本版积分规则