我正在考虑基于组创建一组权限角色,然后根据这些角色细节过滤他们从数据源看到的数据,但我似乎无法按照我的意愿继续前进。
要获得概念证明,我只是试图过滤名册数据源并拥有以下服务器端脚本:
function roleCheckAgents(user)
{
var userRoles = app.getActiveUserRoles();
var query = app.models.Agents.newQuery();
if(userRoles.indexOf(app.roles.testRole) >= 1){
if(app.models.Agents.getRecords().filter().
query.filters.strRelatedCompany._equals === "sampleCompany");
return query.run();
}
}
该群组本身包含我的和其他一些电子邮件,并列为testRole
。在Agents数据源安全性中,我将Load列为脚本:roleCheckAgents(user)
。
实际上,我想在一个角色中设置多个过滤器,例如Company === "sampleCompany" && Site === "sampleSite"
等等。
任何帮助将不胜感激,因为我目前无法看到它将如何以我需要/想要的方式运作。
谢谢!
更新
我能够使多个过滤器工作,但只能作为数据源的查询脚本。创建的问题是我已经在该部分中有查询构建器条件,并且您只能拥有查询构建器或查询脚本。
查询脚本的工作原理如下:
var query = app.models.Audits.newQuery();
if(app.getActiveUserRoles().indexOf(app.roles.Test) > -1)
{ query.filters.field1._contains = "center";
query.filters.field2._contains = "status";
return query.run();}
else
{}
当前查询构建器项目为:
field1 contains? :searchText OR
field2 contains? :searchText OR
field3 contains? :searchText OR
field4 contains? :searchText OR
field5 contains? :searchText
有关如何将两者作为查询构建器或查询脚本的一部分的任何想法吗?
谢谢。 Kristopher
答案 0 :(得分:0)
为什么不使用"模型权限"您可以在其中指定每个角色的访问权限(数据源上的安全选项卡)。如果您是GCP超级管理员,则可以创建自定义角色。