如何使用 SuiteScript 检查用户对 NetSuite 上当前记录的权限?
How can I check permission a user has on the current record on NetSuite with SuiteScript?
我们正在 NetSuite 上编写脚本以与第三方应用集成。
当您访问记录(无论是查看还是编辑)时,我们需要确定 NetSuite 用户对该记录具有何种权限。
我通过文档知道这些是可能的权限值:
- 创建
- 编辑
- 已满
- NONE
- 查看
我也知道我可以通过以下方式获得用户权限:
var userObj = runtime.getCurrentUser();
var permission = userObj.getPermission('ADMI_ACCOUNTING')`
问题是我需要根据我所在的当前记录知道具体请求什么权限。我在currentRecord中找不到可以让我请求权限的值用户对象,以便能够确定用户对记录的权限级别。
如果有人知道如何实现这一点,我将不胜感激!
我认为最好的办法是创建一个辅助函数,将记录类型映射到它们的匹配权限。您必须手动维护它。
看起来您使用的是 SS2.0,因此假设您有可用的 N/record 模块(或类似的模块),您可以这样做:
function getPermissionName(recordType) {
var objectPermissionMap = {
customer: 'LIST_CUSTJOB',
invoice: 'TRAN_CUSTINVC'
};
return objectPermissionMap[recordType];
}
var user = runtime.getCurrentUser();
var permissionName = getPermissionName(record.type);
var permission = runtime.getPermission(permissionName);
我们正在 NetSuite 上编写脚本以与第三方应用集成。
当您访问记录(无论是查看还是编辑)时,我们需要确定 NetSuite 用户对该记录具有何种权限。
我通过文档知道这些是可能的权限值:
- 创建
- 编辑
- 已满
- NONE
- 查看
我也知道我可以通过以下方式获得用户权限:
var userObj = runtime.getCurrentUser();
var permission = userObj.getPermission('ADMI_ACCOUNTING')`
问题是我需要根据我所在的当前记录知道具体请求什么权限。我在currentRecord中找不到可以让我请求权限的值用户对象,以便能够确定用户对记录的权限级别。
如果有人知道如何实现这一点,我将不胜感激!
我认为最好的办法是创建一个辅助函数,将记录类型映射到它们的匹配权限。您必须手动维护它。
看起来您使用的是 SS2.0,因此假设您有可用的 N/record 模块(或类似的模块),您可以这样做:
function getPermissionName(recordType) {
var objectPermissionMap = {
customer: 'LIST_CUSTJOB',
invoice: 'TRAN_CUSTINVC'
};
return objectPermissionMap[recordType];
}
var user = runtime.getCurrentUser();
var permissionName = getPermissionName(record.type);
var permission = runtime.getPermission(permissionName);