ServiceNow:列出所有旧版用户角色功能

时间:2017-07-21 01:38:58

标签: servicenow

如果我在 ServiceNow 的实例上进行开发,并且定义了许多用户角色,而不是关于角色提供的功能的大量文档。

有没有办法检查SNOW实例和确定功能 角色提供最终用户,即使在这种情况下业务或UI规则定义与角色相关的逻辑?

这可以通过后端脚本可靠地完成吗?

3 个答案:

答案 0 :(得分:1)

这不是非常直接的文档或编程方式。

您的主要选项是在sys_security_acl_role表中查询角色并列出相关的ACL。

此外,大多数ACL没有正确的说明,如果没有与ACL关联的角色高级条件也会要求您阅读这些内容。< / p>

您需要查看ACL的nameoperation,以了解他们授予的访问权限。

您可以作为后台脚本

运行的示例
var role = 'itil'; // role to check

// query the ACLs with the role related
var gr = GlideRecord('sys_security_acl_role');
gr.addQuery('sys_user_role.name', role);
gr.query();

while (gr.next()) {
    // only show active ACLs
    if (gr.sys_security_acl.active) {
        gs.print(gr.sys_security_acl.name + " (" + gr.sys_security_acl.operation + ") - " + gr.sys_security_acl.description);
    }
}

输出取决于您的实例,但这是个主意。

new_call (create) - Allow create for records in new_call, for users with role itil.
ngbsm_view (create) - Allow create for records in ngbsm_view, for users with roles (itil, ecmdb_admin).
...etc...

答案 1 :(得分:0)

您可以查看此代码可能正在使用

function getUserGroups(user_sys_id) {  
        var theUser = gs.getUser();  
        theUser = theUser.getUserByID(user_sys_id);  
        return theUser.getMyGroups();  
    }  

答案 2 :(得分:0)

同时检查一下

function setGroupFilter(){
    var user = current.variables.user_name;

    //Reset the filter query
    current_groupsg_filter.reset();

    var answer = 'sys_idINjavascript:getMyGroups()';

    current_groupsg_filter.setQuery(answer);
    current_groupsacRequest(null);

    //if remove reqeust display slushbucket
    if (addYN=="remove"){
    g_form.setDisplay('current_groups', true);
    }

    }