如何使用SuiteScript在NetSuite上检查用户对当前记录的权限?

nac*_*ina 2 netsuite suitescript suitescript2.0

我们正在NetSuite上编写脚本,以与第三方应用程序集成。

当您访问记录时(无论是查看还是编辑),我们需要确定NetSuite用户对该记录具有哪种权限。

通过文档,我知道这些是可能的权限值:

  • 创建
  • 编辑
  • 充分
  • 没有
  • 视图

我也知道我可以通过以下方式获得用户权限:

var userObj = runtime.getCurrentUser();
var permission = userObj.getPermission('ADMI_ACCOUNTING')`
Run Code Online (Sandbox Code Playgroud)

问题是我需要根据我当前所在的记录知道要具体要求的权限。我无法在currentRecord中找到一个值,该值可以让我请求对用户对象的权限以使其能够确定用户对记录的权限级别。

任何对如何实现这一目标有想法的人,我将非常感谢!

Mik*_*ins 5

我认为您最好的选择是创建一个将记录类型映射到其匹配权限的辅助函数。您必须手动维护它。

看起来您正在使用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);
Run Code Online (Sandbox Code Playgroud)