はじめに
普段検証環境に使っているVM環境が壊れてしまったため、これを機会にCentOSからScientific Linux(SL)に切り替えてみました。MODxに関して言えば、どのディストリビューションで動かしても見た目の変化があるわけではありませんが、少しずつSLにも慣れていきたいと考えている今日この頃です。
さて、前回の内容は、少しプログラマ向けだったため、デザイナーや従来のコンテンツ作成者の皆さんはイマイチと感じられたかもしれません。今回はプログラムのことはいったん忘れて、認証が必要なページ、いわゆる会員限定などに使えるページの作成方法を紹介します。こちらも商用サイトを構築する上では大変便利な機能のひとつです。
ログインフォームの作成
今回は、会員用にユーザー名とパスワードを提供することで、限定ページのアクセスを許可します。まずはログイン用のページを作成してみましょう。ログインページを設置するためには、「Login」というスニペットが必要になりますので、パッケージマネージャーより導入を行っておいてください。
ログインページ自体は一般ユーザーから見える形にしても良いですし、セキュリティ上の理由からページ自体の存在を隠したい場合には、リソース作成時に「メニューに表示しない」を選択しておくことで、直接URLを叩かれた場合のみログインページを表示させることもできます。今回はテストですので、誰にでも見える形でログインページを作成してみましょう。
下表のような内容で、会員専用コンテンツとログインページの2つのリソースを作成します。ログインリソースで用いているloginResourceIdというパラメータには「秘密のページ」のリソースIDを指定してください。これにより、ログインが成功すると、「秘密のページ」にリダイレクトされるようになります。
表1 会員限定コンテンツ
タイトル | 秘密のページ |
エイリアス | secret |
公開する | チェック |
内容 | これは会員限定の秘密のページです。 |
表2 ログインフォーム
タイトル | ログイン |
エイリアス | login |
公開する | チェック |
内容 | [[Login? &loginResourceId=`100`]] |
以上の設定の後、http://www.example.com/login.html を表示すると、シンプルなログイン画面が表示されます。ちなみに、前回までに紹介したよう、このあたりのスニペットの表示はチャンクを使うことでカスタマイズすることができるのですが、詳しくはMODxドキュメントの「Login」の項などをご覧ください。
現状ではユーザーやパスワードなどを作成していませんので、http://www.example.com/secret.htmlの内容は誰にでも表示されてしまいます。ユーザーとパスワードの作成「権限管理」→「ユーザー管理」より、
- ユーザー名:himitsu
- パスワード:himitsu123
というユーザーを作成します。ユーザーを作成したあとは、グループを作成します。
ユーザーグループの作成
ユーザーグループとはユーザーが所属するためのグループです。ユーザーとリソースを直接関連付けることはできませんので、仮にユーザーがひとりだけであっても、必ずユーザーグループを作成しなければなりません。
「権限管理」→「ユーザーグループとロールの管理」より、「himitsu-ug」というグループを作成し、その中に「himitsu」ユーザーを加えます。その際、「ロール(役割)」は「Member」と設定してください。
リソースグループの作成
リソースグループとは、文字通りいくつかのリソースをグループ化したものです。例えば会員用コンテンツが複数ある場合は、それらを同じリソースグループに追加することになります。
「権限管理」→「リソースグループ」に進み、「himitsu-rg」というリソースグループを作成します。次に、画面右側に表示されている「秘密のページ」というリソースをドラッグ&ドロップで「himitsu-rg」の中に登録します。
次にユーザーグループとリソースグループの関連付けを行います。再び「権限管理」→「ユーザーグループとロールの管理」に進み、「himitsu-ug」を右クリック、「ユーザーグループを編集」を選択し、「リソースグループのアクセス」より「himitsu-rg」を選択してください。その際、「アクセスポリシー」が必須ですので、とりあえず「Resource」を選択しておきます。例のごとく、詳しい解説は次回以降とさせてください 。(^^;
では、この状態でトップページなどいつものページを表示してみてください。先ほど作っていた「秘密のページ」というメニューは見えなくなっているはずです。
しかし、http://www.example.com/login.htmlを経由して、himitsuユーザーでログインすると、次のように秘密のページを読むことができるようになります。秘密のコンテンツが表示されると共に、「秘密のページ」というメニュー自体も表示されるのが特徴です。
最後に
このように、MODxを使えば、会員用や自分用などの限定ページを簡単に作成することができます。MODx用にユーザーをひとりひとり追加しなければならないのが今後の課題とも言えるかもしれませんが、既存データベースとスクリプトを使うことで、半自動的にアカウントを登録する、というのもひとつの手かもしれません。
次回は、今回触れることのできなかった「ロール」や「ポリシー」などに触れていきたいと思います。