Google app maker Appmaker根据用户角色检索记录

Google app maker Appmaker根据用户角色检索记录,google-app-maker,google-workspace,Google App Maker,Google Workspace,我正在开发一个票务系统,我有两个用于提交票务的仪表盘,一个用于管理员,另一个用于用户。管理员应该看到所有用户提交的所有票据,用户应该只看到他提交的票据。我不知道如何根据用户角色检索记录 我们的做法是使用一个函数来过滤使用安全角色的记录。例如,我们的函数使用 var user = convertName(app.user.username); var role = app.user.role; var ds = app.datasources.DashFilters; ds.query.clear

我正在开发一个票务系统,我有两个用于提交票务的仪表盘,一个用于管理员,另一个用于用户。管理员应该看到所有用户提交的所有票据,用户应该只看到他提交的票据。我不知道如何根据用户角色检索记录

我们的做法是使用一个函数来过滤使用安全角色的记录。例如,我们的函数使用

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();
}
my函数的主要区别在于,数据模型中的每个记录都有相关角色,这些角色可能会有所不同,因此我们检查当前用户是否是与记录相关的角色。那部分就是
!访客池
role.Admins
role.QADirector
正在使用我们分配给应用程序的内置安全角色


因此,简而言之,使用一个功能查询记录,该功能会查找当前登录的用户,并根据您的条件进行筛选。

您是否有一个字段记录用户提交票据的电子邮件?您的两个单独的仪表板是基于同一数据源还是运行两个单独的数据源?是的,我有一个报告票据的用户的记录。一个数据源和每个仪表板的两个仪表板显示不同的字段。我想在我的应用程序中得到一些帮助,因为我被困在如何在Appmaker中实现一些功能。如果我们可以联系我,我将非常感激@MarkusMalessa只是一个旁注,但如果你有人知道他们在做什么,他们没有那么好的意图,他们可以绕过这一点,因为这是客户端。如果您真的试图保护记录,您应该通过数据源中的服务器脚本或通过在模型本身中设置适当的安全设置来实现这一点。非常感谢Daniel。我很感激。我找到了一种更简单的方法,将面板的显示更改为:Table1Row“表中的第一行”为binding value,并将这一行@datasource.item.reported_by==@user.email,这样它只显示登录用户报告的记录。