ログアウト後の遷移先を変更できますか?

 
ユーティリティメニューの「ログアウト」メニューを選択した場合の遷移先を変更することが可能です。

ログアウト時の遷移先を変更する場合は、リクエストパラメータ「im_url」を付与します。

例えば、ホーム画面に遷移させる場合は、以下のように指定することで、ログアウト後にホーム画面に遷移します。

 http://<サーバホスト名>/imart/logout?im_url=/home
  ■ intra-mart Accel Platform 認証仕様書 - 各機能の詳細 - ログアウト - ログアウトの機能 - ログアウト後の遷移先の指定
   https://document.intra-mart.jp/library/iap/public/im_certification/im_certification_specification/texts/components/logout.html#logout-target-page


ユーティリティメニューの「ログアウト」メニュー選択時に「im_url」を付与するには、以下の設定およびプラグインの作成を行う必要があります。

(1) 以下の設定ファイルにて、「リクエストパラメータによる画面遷移サポートの有無(ログアウト時)」(enable_requested_target_url) を有効にします。

 WEB-INF/conf/certification-config/im_login.xml
 (参考)
   ■ intra-mart Accel Platform 設定ファイルリファレンス - 認証機能 - 認証設定(一般ユーザ用) - リクエストパラメータによる画面遷移サポートの有無(ログアウト時)
    https://document.intra-mart.jp/library/iap/public/configuration/im_configuration_reference/texts/im_certification/im_login/index.html

IM-Jugglingで編集する場合は、以下の方法で設定ファイルを出力します。

a. IM-Jugglingプロジェクト/juggling.im を開きます。
b. エディタ右下の「設定ファイル」タブを押下します。
c. 「認証機能」-「認証設定(一般ユーザ用)(certification-config/im_login.xml)」を選択し、出力ボタンを押下します。
d. IM-Jugglingプロジェクト/conf/certification-configに im_login.xml が出力されます。
e. im_login.xml を編集します。 

 -- 例 --
  <!-- ログアウトで使用する設定 -->
  <category name="im_logout">

    <!-- (略) -->

    <!-- リクエストパラメータによる画面遷移サポートの有無 -->
    <param>
      <param-name>enable_requested_target_url</param-name>
      <param-value>true</param-value>
    </param>
  </category>


(2) LoginLogoutItemProvider クラス [*1] を継承したクラスにて、 getUrl() メソッドをオーバーライドし、任意の条件に応じて im_url 付きの URL を返却するように実装します。
[*1] UtilityItemProvider インタフェースを実装した製品標準のログインログアウト用クラス

-- 参考 --
 ■ intra-mart Accel Platform テーマ仕様書 - テーマの詳細 - テーマモジュール
  https://document.intra-mart.jp/library/iap/public/im_ui/im_theme_specification/texts/components/ThemeModule.html?highlight=LoginLogoutItemProvider
 ■ intra-mart Accel Platform テーマ仕様書 - ユーティリティプラグイン
  https://document.intra-mart.jp/library/iap/public/im_ui/im_theme_specification/texts/appendix/utility_plugin.html

-- 例 --
package sample;

import jp.co.intra_mart.foundation.context.Contexts; 
import jp.co.intra_mart.foundation.context.model.AccountContext;

public class LoginLogoutItemWithExternalLinkProvider extends jp.co.intra_mart.foundation.ui.tags.theme.utility.LoginLogoutItemProvider {

    @Override
    public String getUrl() {
        final AccountContext context = Contexts.get(AccountContext.class); 
        if (context.isAuthenticated()) {
            return "logout?im_url=/home";
        } else {
            return "login";
        } 
    }
}


(3) 以下の plugin.xml にて、プラグインクラス名を前項 (2) で作成したクラスへ変更します。

WEB-INF/plugin/jp.co.intra_mart.foundation.ui.theme.utility.item.loginlogout/plugin.xml

-- 例 --
<extension point="jp.co.intra_mart.foundation.ui.theme.utility.item">
  <item
    id="loginlogout" 
    name="loginlogout" 
    classname="sample.LoginLogoutItemWithExternalLinkProvider" 
    version="1.0" 
    rank="100"/> 
</extension>

*上記に記載の(例)につきましては、あくまでサンプルです。
実装を行う場合は、お客様にて、十分な検証をお願いします。


(参考事項)
IM-BloomMaker の「サイドメニューコンテナ」エレメントを使用して作成された画面において、サイドメニューの「ログアウト」メニューを選択した場合にも、ログイン画面へ遷移します。
こちらにつきましては遷移先を変更することはできません。

 ■ IM-BloomMaker for Accel Platform IM-BloomMaker ユーザ操作ガイド - 付録 - エレメント一覧 - 標準部品 - レイアウト - サイドメニューコンテナ
  https://document.intra-mart.jp/library/bloommaker/public/im_bloommaker_user_guide/texts/appendix/elements/regular.html#imsidemenucontainer

-- 対象 ------------------------------------------------------------------------
iAP/Accel Platform/全アップデート
--------------------------------------------------------------------------------



FAQID:1243
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk