GlideImpersonate - グローバル

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間: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;
    }