如果我在 ServiceNow 的实例上进行开发,并且定义了许多用户角色,而不是关于角色提供的功能的大量文档。
有没有办法检查SNOW实例和确定功能 角色提供最终用户,即使在这种情况下业务或UI规则定义与角色相关的逻辑?
这可以通过后端脚本可靠地完成吗?
答案 0 :(得分:1)
这不是非常直接的文档或编程方式。
您的主要选项是在sys_security_acl_role
表中查询角色并列出相关的ACL。
此外,大多数ACL没有正确的说明,如果没有与ACL关联的角色,高级条件也会要求您阅读这些内容。< / p>
您需要查看ACL的name
和operation
,以了解他们授予的访问权限。
您可以作为后台脚本
运行的示例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);
}
}