[ABI 5.2] 如何获取当前用户是否有查看某个主题表的权限(不考虑数据级次权限)

534
2

ArneEleven 初学数据Lv2

发表于2024-1-9 11:40

悬赏8

已解决

楼主
我看到了【login.check】函数,但是这个函数必须设置第三个参数--数据级次。可是一般每个用户的数据级次都不同啊,我怎么在报表里写死?
需求:报表上有个【查看更多】的按钮,用来跳转查看主题表,但不是所有人都能看具体主题表,有些人仅能看报表,所以这里需要一个权限判断。
问题1:为啥万能式钻取里用这个函数会报【Uncaught SyntaxError: Unexpected token '<'】这样的错误呢?
问题2:login.check 函数可以用来判断当前用户有没有某资源view权限吗(就是不管第三个参数数据级次权限)?毕竟,这个报表是给不同用户看的,他们的数据级次是不同的,报表里也不能写死啊。
问题3:login.check 和login.getDataLevel为啥不能嵌套使用?login.check('xxx','view',login.getDataLevel('xxx')),执行的结果不对!
我尝试了以下方法,都不能完美解决我的问题。
尝试1:在全局变量里分别用 login.getDataLevel,和 login.check,但是不行。login.getDataLevel求出的值无法在 login.check 中使用
尝试2:在万能式下钻中使用 login.check ,直接报错
尝试3:我尝试建立虚拟表,直接取系统数据库里的表有筛选条件的查询。可以实现功能,但是跟我给全局分析表加的过滤条件冲突,报表跟表之间没有关联关系(当然没关联啊,一个是业务库,一个是系统权限库。。。)
所以,求问大神们有什么办法没?

最近看过此主题的会员

iluna

gaoxg

esen_4YNPQEX87K

zly_2960

esen_4QBPI1VXAV

lingzed

不如相忘

陈平安

hand

sunmeiling

chestnut

最佳答案
login.check(rid, oper, datalevel),3个函数缺一不可。
函数可以嵌套使用,第三个参数如果是引用其他表达式,前后需要加单引号。
一般数据级次和机构id相通,可以用login.orgid获取。
2个回答

只看楼主

chestnut 数据领袖Lv6

发表于2024-1-9 11:40

只看该作者

取消 关注该作者的回复

沙发

login.check(rid, oper, datalevel),3个函数缺一不可。
函数可以嵌套使用,第三个参数如果是引用其他表达式,前后需要加单引号。
一般数据级次和机构id相通,可以用login.orgid获取。

ArneEleven 初学数据Lv2

发表于2024-1-10 11:12

只看该作者

取消 关注该作者的回复

板凳

chestnut 发表于 2024-1-9 19:26
login.check(rid, oper, datalevel),3个函数缺一不可。
函数可以嵌套使用,第三个参数如果是引用其他表达 ...

使用单引号,确实完美解决了问题,这样使用login.check和login.getDataLevel组合使用解决了问题。
我想再问一个问题,如果给某个人配置某个资源多个数据级次权限(毕竟配置数据权限可以多选),login.getDataLevel 如何返回全部的单位?我本来怕返回数组影响login.check的使用,但测试后发现,login.getDataLevel 只返回第一个单位,所以不影响。但是,我好奇如何获取全部数据级次?

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号