我正在开发票务系统,我有两个仪表板用于提交票证,一个用于管理员,另一个用于用户。管理员应查看所有用户提交的所有票证,而用户应仅查看其提交的票证。我不知道如何根据用户角色检索记录。
答案 0 :(得分:0)
我们是如何使用安全角色来过滤记录的。例如我们的函数使用
var user = convertName(app.user.username);
var role = app.user.role;
var ds = app.datasources.DashFilters;
ds.query.clearFilters();
if (!guestBoolean){
if (role.User || role.Admins){
ds.query.filters.Roles.name._equals = user;
ds.query.filters.event_status._notContains = 'Pending';
ds.query.filters.event_status._notEquals = 'Closed';
}
if (role.QADirector){
ds.query.filters.event_status._notContains = 'Pending';
}
}
if (guestBoolean){
ds.query.filters.event_status._notContains = 'Pending';
}
ds.load();
}
与我的功能的主要区别在于,我们对数据模型中的每个记录都有相关的角色,并且该角色可能有所不同,因此我们检查当前用户是否与记录相关。那部分是!guestBoolean
。 role.Admins
和role.QADirector
使用的是我们分配给应用程序的内置安全角色。
因此,简而言之,请使用查找当前登录用户并根据您的条件进行过滤的函数查询记录。