在 Google App Maker 中保护记录的特定字段
Securing specific fields of a record in Google App Maker
我正在 Google App Maker 中构建一个应用程序,我想知道如何保护记录的特定字段,使其仅对特定用户/角色可见。例如,假设我有一个员工 table,其中包含员工的姓名、姓氏、电子邮件和薪水。我希望所有用户都能看到名字、姓氏和电子邮件,但只有管理员才能看到员工工资。我可以使用用户角色来保护 UI,但是我的问题是,即使员工工资没有出现在 UI 中,它仍然是从服务器获取的,因此如果有人仍然可以访问它他们足够坚定(例如通过观察请求/响应)。
有没有办法根据用户角色保护关系的特定字段?
使用计算模型(基于服务器端脚本)是这里的最佳选择。这样,只会获取您需要显示的数据。因此,在您的情况下,作为示例,我们可以使用名为 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;
}
这样你就可以控制是否只有管理员才能返还工资
我正在 Google App Maker 中构建一个应用程序,我想知道如何保护记录的特定字段,使其仅对特定用户/角色可见。例如,假设我有一个员工 table,其中包含员工的姓名、姓氏、电子邮件和薪水。我希望所有用户都能看到名字、姓氏和电子邮件,但只有管理员才能看到员工工资。我可以使用用户角色来保护 UI,但是我的问题是,即使员工工资没有出现在 UI 中,它仍然是从服务器获取的,因此如果有人仍然可以访问它他们足够坚定(例如通过观察请求/响应)。 有没有办法根据用户角色保护关系的特定字段?
使用计算模型(基于服务器端脚本)是这里的最佳选择。这样,只会获取您需要显示的数据。因此,在您的情况下,作为示例,我们可以使用名为 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;
}
这样你就可以控制是否只有管理员才能返还工资