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



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

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

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

这在文档方面或编程方式上并不是非常简单。

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

此外,大多数 ACL 没有适当的描述,如果没有与 ACL 关联的角色,高级条件也会要求您阅读这些描述。

您需要查看 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...

你可以检查这个代码可能使用

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

也检查一下这个

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);
}
}

最新更新