在 Google App Maker 中保护记录的特定字段

Securing specific fields of a record in Google App Maker

我正在 Google App Maker 中构建一个应用程序,我想知道如何保护记录的特定字段,使其仅对特定用户/角色可见。例如,假设我有一个员工 table,其中包含员工的姓名、姓氏、电子邮件和薪水。我希望所有用户都能看到名字、姓氏和电子邮件,但只有管理员才能看到员工工资。我可以使用用户角色来保护 UI,但是我的问题是,即使员工工资没有出现在 UI 中,它仍然是从服务器获取的,因此如果有人仍然可以访问它他们足够坚定(例如通过观察请求/响应)。 有没有办法根据用户角色保护关系的特定字段?

使用计算模型(基于服务器端脚本)是这里的最佳选择。这样,只会获取您需要显示的数据。因此,在您的情况下,作为示例,我们可以使用名为 EmployeeInfo 的计算模型,其中包含字段 namesalary.该数据源的服务器脚本可以包含如下内容:

return getEmployeeInfo();

然后在你的服务器脚本上你可以有这样的东西:

function getEmployeeInfo(){
  var userRoles = app.getActiveUserRoles(); 
  var query = app.models.Employees.newQuery();
  var allEmployees = query.run();

  var allRecs = [];
  for(var i=0; i<allEmployees.length; i++){
    var empInfo = app.models.EmployeeInfo.newRecord();
    var employee = allEmployees[i];
    empInfo.name = employee.name;
    if(userRoles.indexOf("Admins") > -1){
      empInfo.salary = employee.salary;
    }
    allRecs.push(userInfo);
  }
  return allRecs;
}

这样你就可以控制是否只有管理员才能返还工资