为安全上下文配置 OSLCLink 软件包

您可能希望将 Rational® ClearQuest® OSLCLink 软件包配置为 ClearQuest 安全上下文系统的一部分,例如,针对未授权用户隐藏链接。

关于此任务

在将 OSLCLink 软件包应用到模式后,需要执行其他步骤来配置该软件包以与安全上下文系统一起工作。

有关 ClearQuest 安全的更多信息,请参阅创建安全模型

过程

  1. 以具有模式设计者特权的用户身份运行 packageutil setaccess 子命令,启用 OSLCLink 记录以执行编辑。 以下是 packageutil setaccess 子命令的命令行叙述:

    packageutil setaccess -dbset dbset_name user_name password schema_name -record -modifiablebyothers OSLCLink

    例如:

    packageutil setaccess –dbset 7.0.0 admin "" ALM -record -modifiablebyothers OSLCLink

    显示输出可能与以下类似:

    --- Checked out revision 3 of schema 'ALM'
    +++ Set access policy for OSLCLink to -modifiablebyothers
    +++ Set access policy for select records, fields, and actions
  2. 在 ClearQuest Designer 中,将新的 REFERENCE 字段添加到 OSLCLink 记录类型:
    1. 在应用了 OSLCLink 软件包的模式中,展开记录类型 - 无状态节点,然后展开 OSLCLink 节点。
    2. 右键单击字段节点,然后单击新建字段。这会打开“新建字段”对话框。
    3. 为新建字段输入名称并将类型设置为 REFERENCE
    4. 单击完成。这会打开新字段的属性选项卡。
    5. 属性选项卡的“引用信息”部分,将引用至属性设置为您的安全上下文记录类型。
    6. 选择安全上下文选项。
  3. 仍然使用 ClearQuest Designer,将以下 OSLC_GetSecurityFieldName 全局挂钩添加到模式:
    sub OSLC_GetSecurityFieldName
    {
        my $security_fieldname = "";
        my ($entitydef_name) = @_;
        
        # A hash table to keep security field name of each
        # entitydef, using entitydef name as the key and security
        # field name as the value.
        
        my %security_fields_hash = (
            #add entitydef and security context field pairs here
            #For example, "ALMTask"  => "SecurityPolicy"
            );
        
        if (exists $security_fields_hash{$entitydef_name}) {
            my $temp_security_fieldname = $security_fields_hash{$entitydef_name};
            if ( 
            $::session->GetEntityDef($entitydef_name)->IsSecurityContextField($temp_security_fieldname)) {
                $security_fieldname = $temp_security_fieldname;
                }
            }
        
        return $security_fieldname;
    }

    挂钩将返回指定记录类型的安全上下文字段名称。

  4. 更新 OSLC_GetSecurityFieldName 全局挂钩中的 %security_fields_hash 表,以向应用了 OSLCLink 软件包的每种记录类型包含记录类型安全上下文字段对。

    例如,如果向 ALMTask 和 ALMRequest 记录类型(其安全上下文字段均命名为 SecurityPolicy)应用了 OSLCLink 软件包,并且在步骤 2 中添加的 REFERENCE 字段命名为 oslc_SecurityPolicy,那么您的 %security_fields_hash 表看起来可能如下:

    my %security_fields_hash = (
        "OSLCLink" => "oslc_SecurityPolicy",
        "ALMTask"  => "SecurityPolicy",
        "ALMRequest" => "SecurityPolicy"
  5. 检入模式修订版并升级用户数据库。
  6. 为避免更改 OSLCLink 记录的其他部分,请运行 packageutil setaccess 子命令并使用 -modifiablebyowner 选项以禁用编辑。 以下同样是 packageutil setaccess 子命令的命令行叙述:

    packageutil setaccess -dbset dbset_name user_name password schema_name -record -modifiablebyothers OSLCLink

    例如:

    packageutil setaccess –dbset 7.0.0 admin "" ALM -record -modifiablebyowner OSLCLink

    显示输出可能与以下类似:

    --- Checked out revision 4 of schema 'ALM'
    +++ Set access policy for OSLCLink to -modifiablebyowner
    +++ Set access policy for select records, fields, and actions

反馈