GlideImpersonate - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • GlideImpersonate API を使用すると、アドミニストレーターはテスト目的で別の認証されたユーザーになりすますことができます。

    アプリケーション内の機能をテストするために別のユーザーとして動作する必要がある場合は、この API を使用します。別のユーザーの代理操作を行う場合、アドミニストレーターは、同じメニューやモジュールなど、代理操作されたユーザーがシステム内でアクセスできる内容とまったく同じものにアクセスできます。
    注:
    アドミニストレーターが別のユーザーの代理操作中に行うすべてのことは、そのユーザーによって行われたものとして記録されます。

    GlideImpersonate:canDebug(文字列 userSysId)

    指定されたユーザーがスクリプトのデバッグを実行できるかどうかを検証します。

    ユーザーがスクリプトをデバッグできるようにするには、ユーザーが開発者インスタンス上にいる必要があります。本番インスタンスではデバッグは許可されていません。

    表 : 1. パラメーター
    名前 タイプ 説明
    userSysId 文字列 デバッグ機能を確認するユーザーのsys_Id。
    表 : 2. 戻り値
    タイプ 説明
    ブール True:ユーザーはアプリケーションをデバッグできます。

    False:ユーザーはアプリケーションをデバッグできません。

    userDebug: function(userId) {
      var impUser = new GlideImpersonate();
      impUser.canDebug(userId);
     }

    GlideImpersonate:canImpersonate(文字列 userSysId)

    現在のユーザーが指定されたユーザーの代理操作を行えるかどうかを確認します。

    現在のユーザーに admin ロールが割り当てられていない場合、代理操作するユーザーが非アクティブである場合、または指定されたユーザーの代理操作に他の問題がある場合、このメソッドは「false」を返し、ユーザーを代理操作することはできません。

    表 : 3. パラメーター
    名前 タイプ 説明
    userSysId 文字列 代理操作するユーザーのsys_Id
    表 : 4. 戻り値
    タイプ 説明
    ブール 現在のユーザーが指定されたユーザーの代理操作を行うことができるかどうかを示すフラグ。
    可能な値:
    • true:現在のユーザーは、指定されたユーザーの代理操作を行うことができます。
    • false:現在のユーザーは指定されたユーザーの代理操作を行うことはできません。
    function onlineImpersonate(userSysId) {
      if (!GlideImpersonate().canImpersonate(userSysId)){
        gs.addInfoMessage("No access to impersonate " + userSysId);
      } else {
        GlideImpersonate().impersonate(userSysId);
      }
      return;
    }

    GlideImpersonate - impersonate(文字列 userSysId)

    現在のアドミンのユーザー ID を渡されたユーザー ID に設定し、アドミニストレーターがそのユーザーとして機能できるようにします。

    別のユーザーの代理操作を行う場合、アドミニストレーターは、同じメニューやモジュールなど、代理操作されたユーザーがシステム内でアクセスできる内容とまったく同じものにアクセスできます。この方法は、アプリケーションの機能をテストする場合にのみ使用してください。ユーザーの偽装が完了したら、アドミニストレーター sys_Idを使用してメソッドを再度呼び出して、偽装を停止します。

    表 : 5. パラメーター
    名前 タイプ 説明
    userSysId 文字列 代理操作するユーザーのSys_id。
    表 : 6. 戻り値
    タイプ 説明
    文字列 代理操作要求の前にログインしていたユーザーのSys_id。

    次の例は、現在のユーザーオブジェクトを取得する方法を示しています。

    var user = gs.getUserDisplayName();
    gs.print ("The current user display name is: " + user);
    
    var impUser = new GlideImpersonate();
    impUser.impersonate("62826bf03710200044e0bfc8bcbe5df1");
    var user = gs.getUserDisplayName();
    gs.print ("The impersonated user display name is: " + user);
    出力:
    The current user display name is: System Administrator
    The impersonated user display name is: Abel Tuter

    GlideImpersonate:isImpersonating()

    現在のユーザーが別のユーザーの代理操作を行っているかどうかを判断します。

    表 : 7. パラメーター
    名前 タイプ 説明
    なし
    表 : 8. 戻り値
    タイプ 説明
    ブール True:ユーザーは現在、別のユーザーの代理操作をしています。

    False:ユーザーは現在、別のユーザーの代理操作を行っていません。

    function abortOnImpersonate() {
        if (GlideImpersonate().isImpersonating()){
      current.setAbortAction(true);
      gs.addInfoMessage("Transaction canceled due to Impersonation");
        }
        return;
    }