RITMの項目表示/非表示制御について

kim62
Tera Expert

お世話になっております。
カタログアイテム(RITM)のとある項目の表示制限を行いたいと思います。
やりたいことは、サービスカタログはitil権限持っているユーザ、持っていないユーザには表示されますが
一部の項目をitil権限を持っていないユーザには非表示にしようとしています。

Variableに「Permission」というのがありWrite rolesにitilを追加してみましたが、うまく制御ができずです。

kim62_0-1704335519404.png

Varialbeの表示制御について何かよい方法ある方はご教示いただけますと幸いです。

1 件の受理された解決策

Shota Nakamura
Tera Guru

(試したことがないので参考程度で)

カタログで特定項目の表示・非表示を制御するには、Catalog UI PolicyあるいはCatalog Client Scriptsを使用するのがよいと思います。

操作ユーザーがitilロールを保持しているかどうかはg_user.hasRoleExactlyを使用して判定します

 

OOTBのPDIだと参考になる設定がないかもしれません。

可能ならCSMをPDIに入れてみて、Catalog Client ScriptsのScriptフィールドで「g_user.hasRoleExactly」を含む設定を検索してみてください

添付のよう設定が参考になります

ShotaNakamura_0-1704361543216.png

 

 

元の投稿で解決策を見る

4件の返信4

Sandeep Rajput
Tera Patron
Tera Patron

@kim62 特定のロールを持つユーザーのカタログ アイテムへのアクセスを制限するには、ユーザー基準を使用する必要があります。ユーザー基準の詳細については、

https://www.servicenow.com/community/now-platform-blog/a-deep-dive-to-user-criteria/ba-p/2281285

https://docs.servicenow.com/bundle/vancouver-servicenow-platform/page/product/service-catalog-manage...

@Sandeep Rajput 

お忙しいなか、コメント・確認ありがとうございます。
ユーザ基準を作成し、特定のロール(itil)を持つユーザーのカタログ アイテムへのアクセスを制限はできています。カタログアイテムのアクセス制限ではなく、カタログアイテムに表示されている項目の制御です。

Shota Nakamura
Tera Guru

(試したことがないので参考程度で)

カタログで特定項目の表示・非表示を制御するには、Catalog UI PolicyあるいはCatalog Client Scriptsを使用するのがよいと思います。

操作ユーザーがitilロールを保持しているかどうかはg_user.hasRoleExactlyを使用して判定します

 

OOTBのPDIだと参考になる設定がないかもしれません。

可能ならCSMをPDIに入れてみて、Catalog Client ScriptsのScriptフィールドで「g_user.hasRoleExactly」を含む設定を検索してみてください

添付のよう設定が参考になります

ShotaNakamura_0-1704361543216.png

 

 

お忙しいなか、コメントいただきありがとうございます。そのようなやり方があるのですね。
大変参考になりました。以下のコードで実現したいのに近づけました。
ブラッシュアップしたいと思います。

function
onLoad() {
   //Type appropriate comment here, and begin script below
    if (g_user.hasRoleExactly('itil')){
        g_form.setReadOnly('xxx', false);
    } else{
        g_form.setReadOnly('xxx', true);
    }