【问题标题】:How can I check permission a user has on the current record on NetSuite with SuiteScript?如何使用 SuiteScript 检查用户对 NetSuite 上当前记录的权限?
【发布时间】:2018-06-24 19:24:19
【问题描述】:

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

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

我从文档中知道这些是可能的权限值:

  • 创建
  • 编辑
  • 已满
  • 查看

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

var userObj = runtime.getCurrentUser();
var permission = userObj.getPermission('ADMI_ACCOUNTING')`

问题是我需要知道根据我所在的当前记录具体请求什么权限。我在 currentRecord 中找不到可以允许我请求用户对象权限的值能够确定用户对记录的权限级别。

如果有人知道如何实现这一点,我将不胜感激!

【问题讨论】:

    标签: netsuite suitescript suitescript2.0


    【解决方案1】:

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

    看起来您使用的是 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);
    

    【讨论】:

    • 谢谢!我实际上担心这是唯一的方法...您是否碰巧知道在哪里可以至少获得权限到实际记录类型属性的映射?再次感谢您抽出宝贵的时间迈克
    • 对不起。我不知道所有记录类型到权限的现有映射。
    • @MikeRobbins user.getPermission(permissionName);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多