開発者向けサポート

CASE.08 ショップ管理ツールにログインしているユーザのロールが管理者ではない場合に一部の会員を表示できないようにしたい

概要

会員データ検索/一覧画面にて、ログインしているユーザのロールが管理者ではない場合
一部のレコードを検索結果に表示させないようにしたいという場合のカスタマイズ例をご紹介します。

利用するAPI

処理カスタマイズAPI

カスタマイズ例

APPCASE_22フロー図

今回の例は、会員の自由項目1にチェックボックスを一つ設定し管理者のみ閲覧可能な会員の場合チェックを入れるといった仕様で、
ショップ管理ツールにて会員データ検索/一覧画面を開いた際にログインしているユーザのロールが管理者か確認後、
ロールが管理者でない場合、会員一覧の検索条件に「会員の自由項目1に値が入っていない」という条件を追加したものになります。

共通パラメータについて

処理カスタマイズAPIのリクエストには共通して送られてくるパラメータが存在します。
その中に、ログインしているユーザのロールが「role_id」という要素で含まれています。
例えば「テスト」という利用者名でロールが「管理者」のユーザが、
会員検索条件カスタマイズを実行した際、次のようなリクエストが送られてきます。

{
	"originalArg": {},
	"requestAttr": {},
	"session": {},
	"arg": {},
	"context": {
		"member_id": null,
		"request": "admin_menu",
		"admin_user_name": "テスト",
		"admin_user_id": "2",
		
		~~~

		"role_id": "1",
		"function_name": "admin/member/search/get_search_condition",

		~~~

	},
	"requestParams": {},
	"cart": [],
	"cookies": []
}

今回の例では、上記のcontextに含まれるrole_idを見て、値が1なら検索条件を追加しない、
それ以外なら検索条件を追加するといった形で処理を制御しています。

他の共通で取得可能なパラメータについては 共通パラメーター をご確認ください。

search_conditionについて

一部の処理カスタマイズAPIには一部戻り値にarray<SearchCondition>と記載されているものがあります。
上記の型が指定されている場合は 検索条件 を指定できます。

今回の例では、検索結果から会員の自由項目1に値が入っていないものだけ表示したいので、
そのような場合は次のような値を返すことで実現できます。

"result": [
	{
		"column": "FREE_ITEM1",
		"operator": "is_null"
	}
]

なお、今回は会員検索条件の追加方法をご紹介しましたが、この他にもSearchConditionを利用して
検索条件を追加することができる処理カスタマイズAPIについて多数ご用意させていただいております。
SearchConditionを利用する処理カスタマイズAPIは こちら からご確認頂けます。