配置 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 套件的綱目中,展開記錄類型 - Stateless 節點,然後展開 OSLCLink 節點。
    2. 用滑鼠右鍵按一下欄位節點,再按一下新建欄位。即會開啟「新建欄位」對話框。
    3. 輸入新欄位的名稱,並將類型設為參照
    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. 針對您套用 OSLCLink 套件的每一種記錄類型,更新 OSLC_GetSecurityFieldName 廣域連結鉤中的 %security_fields_hash 表格,以包含記錄類型安全環境定義欄位配對。

    比方說,如果您將 OSLCLink 套件套用至 ALMTask 和 ALMRequest 記錄類型 (其安全環境定義欄位的名稱都是 SecurityPolicy),而您在步驟 2 中新增的「參照」欄位名稱為 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

意見