Maximo 自动化脚本获取用户安全组
Maximo automation script get user securityGroup
我想在 Maximo 自动化脚本中获取用户的安全组,以便进行比较。我需要知道 MaxAdmin 或 UserUser 组中的用户是否执行我的脚本的 reste。我的脚本在 Python
我如何获得该信息?
自动化脚本中有一些隐式变量可供您使用(查看 IBM Automation Script 指南),其中之一是当前用户的用户名。还有 :&USERNAME& 特殊绑定变量,它被替换为当前用户名。您可以使用其中之一作为查询的一部分来获取 GroupUser MBO,然后检查它的计数。
我在这里忘记了记忆,所以确切的名称和语法可能有所不同,但类似于:
groupUserSet = MXServer.getMXServer().getMboSet("GROUPUSER", MXServer.getMXServer().getSystemUserInfo())
groupUserSet.setWhere("userid = :&USERNAME& and groupname in ('MAXADMIN', 'USERUSER')")
# Not really needed.
groupUserSet.reset()
if groupUserSet.count() > 0:
# The current user is in one of the relevant groups.
else:
# The current user is not in one of the relevant groups.
groupUserSet.close()
值得注意的是,像这样与逻辑相关的事情通常不需要自动化脚本。通常条件表达式、正常的安全权限或报告可以代替您在这里做您需要的事情。即使需要 这样的自动化脚本,您仍然不应该仅根据组来执行,而应该根据用户是否具有特定权限来执行。
编辑
要使用权限执行此操作,您可以向应用程序添加一个新的 sigoption,其 ID 为 "CANCOMPPERM"(具有更详细的描述),并将其授予这两个组。确保这些组中的每个人同时注销(这样这两个组中的任何人都不会在给定时间登录到系统)否则权限缓存将不会更新。您的代码将如下所示:
permissionsSet = MXServer.getMXServer().getMboSet("APPLICATIONAUTH", MXServer.getMXServer().getSystemUserInfo())
permissionsSet.setWhere("optionname = 'CANCOMPPERM' and groupname in (select groupname from groupuser where userid = :&USERNAME& )")
# Not really needed.
permissionsSet.reset()
if permissionsSet.count() > 0:
# The current user has the necessary permission.
else:
# The current user does not have the necessary permission.
permissionsSet.close()
我认为 Maximo 的代码库中甚至有一些辅助方法,您可以调用它们来为您执行上述操作,并且 return true/false 是否授予权限。
我想在 Maximo 自动化脚本中获取用户的安全组,以便进行比较。我需要知道 MaxAdmin 或 UserUser 组中的用户是否执行我的脚本的 reste。我的脚本在 Python
我如何获得该信息?
自动化脚本中有一些隐式变量可供您使用(查看 IBM Automation Script 指南),其中之一是当前用户的用户名。还有 :&USERNAME& 特殊绑定变量,它被替换为当前用户名。您可以使用其中之一作为查询的一部分来获取 GroupUser MBO,然后检查它的计数。
我在这里忘记了记忆,所以确切的名称和语法可能有所不同,但类似于:
groupUserSet = MXServer.getMXServer().getMboSet("GROUPUSER", MXServer.getMXServer().getSystemUserInfo())
groupUserSet.setWhere("userid = :&USERNAME& and groupname in ('MAXADMIN', 'USERUSER')")
# Not really needed.
groupUserSet.reset()
if groupUserSet.count() > 0:
# The current user is in one of the relevant groups.
else:
# The current user is not in one of the relevant groups.
groupUserSet.close()
值得注意的是,像这样与逻辑相关的事情通常不需要自动化脚本。通常条件表达式、正常的安全权限或报告可以代替您在这里做您需要的事情。即使需要 这样的自动化脚本,您仍然不应该仅根据组来执行,而应该根据用户是否具有特定权限来执行。
编辑
要使用权限执行此操作,您可以向应用程序添加一个新的 sigoption,其 ID 为 "CANCOMPPERM"(具有更详细的描述),并将其授予这两个组。确保这些组中的每个人同时注销(这样这两个组中的任何人都不会在给定时间登录到系统)否则权限缓存将不会更新。您的代码将如下所示:
permissionsSet = MXServer.getMXServer().getMboSet("APPLICATIONAUTH", MXServer.getMXServer().getSystemUserInfo())
permissionsSet.setWhere("optionname = 'CANCOMPPERM' and groupname in (select groupname from groupuser where userid = :&USERNAME& )")
# Not really needed.
permissionsSet.reset()
if permissionsSet.count() > 0:
# The current user has the necessary permission.
else:
# The current user does not have the necessary permission.
permissionsSet.close()
我认为 Maximo 的代码库中甚至有一些辅助方法,您可以调用它们来为您执行上述操作,并且 return true/false 是否授予权限。