現在のところ、gusuku Everysite のページ生成時処理では、ユーザー認証を利用して、ウィジェット「レコードスタック」に表示するレコードを制御することはできません。


ただし、ページ内処理であれば、ユーザーの認証状態に応じて、ウィジェット「レコードスタック」に表示するレコードを制御することができます。


このページでは、その方法をご紹介します。


表示制御例

認証済みユーザーによるページ表示例

こちらは、ログインページでユーザー認証を行ってから、お知らせ一覧ページでkintoneアプリのレコードを取得し、表示した場合の例です。


未認証のユーザーによるページ表示例

こちらは、ログインページでのユーザー認証を行わずに、URLを指定するなどしてお知らせ一覧ページに直接アクセスした場合の表示例です。

レコードは表示されず、エラーダイアログが表示されるよう設定してあります。


kintoneアプリ

ウィジェット「レコードスタック」にて表示するkintoneアプリのレコードの内容の例はこちらです。


エブリサイトでのページ構成

用意するのは以下の2ページになります。

  • ユーザー認証を行う「ログインページ」

  • kintoneアプリのレコードを「レコードスタック」で表示する「お知らせ一覧ページ」


ログインページ

ログインページでは、入力されたメールアドレスをキーにしてレコードを取得し、1件以上あるのか(登録されたメールアドレスなのか)のチェックを行います。(あらかじめkintoneアプリにメールアドレスがセットされたレコードを用意しておきます)


また、メールアドレスを入力すると、そのメールアドレス宛に6桁のワンタイムパスワードを記載したメールが送信されるので、そのパスワードを入力してユーザー認証を行い、お知らせ一覧ページに遷移します。


上記内容の実現のため、「ページ内処理」でレコード取得による存在チェックやユーザー認証、認証後の画面遷移などの設定を行います。


具体的な設定例についてはこちらのページを参考にしてみてください。

エブリサイト図鑑 2-3 会員向けサイト(ログインページ)


お知らせ一覧ページ

お知らせ一覧ページでは、kintoneアプリからレコードを取得し、ウィジェット「レコードスタック」で取得した複数レコードの内容を縦に並べて表示します。


ウィジェット・アイテムの設定例

ウィジェットに「レコードスタック」を指定し、各設定項目を以下のように設定します。


「表示するレコード」では事前に「ページ生成時処理」で設定しておいたレコード取得のアクションを指定します。

詳細については本ページの「ページ生成時処理」の箇所をご覧ください。


「アイテム」には、「テキスト」や「リッチテキスト」を配置します。

各アイテムのアイテムIDは「日付」、「タイトル」、「連絡詳細」です。


接続設定

今回はkintoneアプリのレコードを表示するので、kintoneアプリと接続するための接続設定を行います。


「ページ生成時処理」と「ページ内処理」にてkintoneアプリと接続してレコードを取得するアクションを設定するため、以下のように2つの接続設定を行います。

  • 「認証可否」が「ページ生成時のみ利用可」

  • 「認証可否」が「認証が必要/ユーザー指定なし」


なお、接続設定画面の操作・概要については次の記事を併せてご覧下さい。

ページ画面の接続設定タブについて


また、「認証可否」の詳細については次の記事の「接続設定における4種類の接続可否とは」節を併せてご覧下さい。

ページ生成時処理とページ内処理 ・ログイン・接続設定について


ページ生成時処理

やること「クエリで条件を指定して kintone からレコードを取得する」でレコードを取得します。

「検索条件」には以下のように設定します。


レコード番号 = 0


「レコード番号 = 0」と設定する理由は、ウィジェット「レコードスタック」の「表示するレコード」には、「ページ生成時処理」でレコードを取得したアクションを必ず指定する必要があるためです。


今回は、実際に表示するレコードを「ページ内処理」で取得するため、「ページ生成時処理」ではレコードを取得する必要がありません。そこで、「レコード番号 = 0」と設定し、取得するレコードを0件にしています。


「ページ内処理」でレコードを取得し、「レコードスタック」に表示する方法については、本ページの「ページ内処理」の箇所をご覧ください。



ページ内処理

続いてページ内処理の設定例です。

まずはユーザー認証が行われている場合の設定例です。


認証済みの場合

やること「処理中表示を行う」で処理中画面を表示します。今回はログインページでユーザー認証後に、お知らせ一覧ページを表示する想定なので、お知らせ一覧ページを表示した時に、条件「ユーザーが認証済みならば」で判定を行い、認証済みであればアクションを実行します。


その後、やること「クエリで条件を指定して kintone からレコードを取得する」でレコードを取得します。

「検索条件」には、ウィジェット「レコードスタック」に表示するレコードを取得するための条件を設定します。

今回は以下の内容を設定しています。


レコード番号 > 0


やること「リストウィジェットの表示内容を追加する」や「リストウィジェットの表示内容をセットする」で、「表示内容」で設定したマッピングに基づいて、ウィジェット「レコードスタック」にて直前のアクションで取得しておいたレコードの内容を表示します。


そして、やること「処理中表示を終了する」で処理中表示を終了します。


上記のアクションを実行すると、ユーザーが認証済みの場合は以下のように、kintoneアプリのレコードの内容がウィジェット「レコードスタック」にて表示されます。


未認証の場合

続いて、ユーザー認証が行われていない場合の設定例です。


やること「エラーダイアログを表示する」で、エラーダイアログを表示します。条件「ユーザーが認証済みならば」を反転した「ユーザーが未認証ならば」で判定を行い、未認証であればアクションを実行します。


このアクションにより、URLを指定するなどしてお知らせ一覧ページに直接アクセスした場合など、ユーザーが未認証の場合は、以下のように表示されます。


なお、未認証時の処理としては、セキュリティ面を考慮して、やること「ページを遷移する」で、未認証なら何も見せずにログインページへ遷移する、という動きにすることも可能です。


終わりに

このページでは、gusuku Everysite のページ内処理で、ユーザーの認証状態に応じて、ウィジェット「レコードスタック」に表示するレコードを制御する方法をご紹介しました。


エブリサイトのドキュメントページやサポートページもぜひご活用ください。