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

时间:2019-02-27 09:56:21

标签: security google-app-maker

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

1 个答案:

答案 0 :(得分:0)

使用计算的模型(基于服务器端脚本)是此处的最佳选择。这样,将只提取您需要显示的数据。因此,以您的情况为例,我们可以使用一个名为 EmployeeInfo 的计算模型,该模型具有字段 name salary 。该数据源的服务器脚本可以包含以下内容:

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;
}

这样,您可以控制是否仅当管理员时才退还工资。