Appmaker根据用户角色检索记录

时间:2019-12-06 11:49:31

标签: google-app-maker gsuite

我正在开发票务系统,我有两个仪表板用于提交票证,一个用于管理员,另一个用于用户。管理员应查看所有用户提交的所有票证,而用户应仅查看其提交的票证。我不知道如何根据用户角色检索记录。

1 个答案:

答案 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();
}

与我的功能的主要区别在于,我们对数据模型中的每个记录都有相关的角色,并且该角色可能有所不同,因此我们检查当前用户是否与记录相关。那部分是!guestBooleanrole.Adminsrole.QADirector使用的是我们分配给应用程序的内置安全角色。

因此,简而言之,请使用查找当前登录用户并根据您的条件进行过滤的函数查询记录。