セキュリティ コンテキスト用の OSLCLinks パッケージの構成

例えば未許可のユーザーからのリンクを非表示にする場合など、Rational® ClearQuest® OSLCLinks パッケージが ClearQuest セキュリティ コンテキスト システムに加わるよう構成することができます。

このタスクについて

OSLCLinks パッケージがセキュリティ コンテキスト システムで機能するよう構成するには、パッケージをスキーマに適用した後に追加のステップが必要です。

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 で、新規参照フィールドを OSLCLink レコード タイプに追加します。
    1. OSLCLinks パッケージを適用したスキーマで、[レコード タイプ – 状態なし] ノードを展開し、次に [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. OSLC_GetSecurityFieldName グローバル フックの %security_fields_hash テーブルを更新し、OSLCLinks パッケージを適用したすべてのレコード タイプに対して、それぞれ 1 対のレコード タイプ セキュリティ コンテキスト フィールドを組み込みます。

    例えば、OSLCLinks パッケージをレコード タイプ ALMTask と ALMRequest (セキュリティ コンテキスト フィールド名はいずれも SecurityPolicy) に適用し、ステップ 2 で追加した参照フィールドの名前が oslc_SecurityPolicy である場合、その %security_fields_hash テーブルは次のようになります。

    my %security_fields_hash = (
        "OSLCLink" => "oslc_SecurityPolicy",
        "ALMTask"  => "SecurityPolicy",
        "ALMRequest" => "SecurityPolicy"
  5. スキーマ リビジョンをチェックインしてユーザー データベースをアップグレードします。
  6. OSLCLink レコードの他の部分が変更されないようにするには、-modifiablebyowner オプションを使用して packageutil setaccess サブコマンドを実行し、編集を使用不可にします。以下に、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

フィードバック