WebLogin

2012.7.25 WebLogin の後継としてWebLoginPEが開発されたようだが、その後停滞している模様。なお、MODx Revolution用としてLoginを使うことにされている模様。

会員専用ページの作り方の一つとしてWebLoginを使う方法について(というテーマで整理していこうと思います、そのうちにね。なお、ここで言う会員というのはアプリケーションでの用語であって、MODxの用語ではないことにご注意下さい)。

会員としてログインする機能、ログアウトする機能、パスワードのリマインド機能、この三つの機能を持たせるフォームを手軽に作成するためのスニペットがWebLogin、ということかな。

会員というのはMODxコアの機能の中でのユーザー機能の中で規定するのであるが、ユーザーには二通りあり、Manager Users、Web Usersの二通りであるが、この二つはセキュリティのために別のものである。ここではウェブユーザーが対象になる。
会員はウェブユーザーのユーザーグループの一つとして規定することになる。
ウェブユーザーはユーザーアカウント作成時にユーザーグループに割り当てられる。なお、Manager Usersは日本語版では「ユーザー管理」と訳されているようだが、「管理ユーザー」の方が分かりやすいと思う。また、管理画面のタブで英語版で「Security」タブが日本語版で「ユーザー」タブと訳されているのも、「セキュリティ」の方が分かりやすいと思う。

ドキュメントは対応するユーザーグループに割り当てられることで秘密が達成されることになる。そのドキュメントはそのユーザーグループだけが読み込む権限を持つように設定できるのである。具体的には更に、個別のドキュメントはドキュメントグループに割り当てられ、そのドキュメントグループがユーザーグループに割り当てられることにより権限が付与されることになる。

個別会員 
ユーザーは自分が特定のウェブユーザーであるとしてログインすればそのドキュメントを読み込む権限を持てることになる。そのログインを行うのに使えるのがWebLoginスニペットである。(これらは、MODx Evolution1のドキュメントWhy Web Users and Groups – MODx Documentationあたりが参考になる)

会員専用ページでは
ページの作成・編集での「アクセス許可」で、許可するグループにチェックを入れる。全リソースグループ(Public)にチェックすれば制限なしになり、別のグループにチェックするとそのグループだけが許可されることになる。

ユーザーで、ウェブユーザーにおいて、ウェブでアクセスできるグループを、リソースグループ、ウェブユーザーグループ、その二つを関係づけるグループリンクという各設定によって、ユーザーとリソースグループとを関係づける。

で、WebLogin であるが、これは最初から入っており、エレメントー>エレメント管理ー>スニペットー>Login->WebLogin と開くと、スニペットコード編集画面からパラメータの意味を説明している。それを一部以下に引用する、
# Params:
#
# &loginhomeid – (Optional)
# redirects the user to first authorized page in the list.
# If no id was specified then the login home page id or
# the current document id will be used
#
# &logouthomeid – (Optional)
# document id to load when user logs out
#
# &pwdreqid – (Optional)
# document id to load after the user has submited
# a request for a new password
#
# &pwdactid – (Optional)
# document id to load when the after the user has activated
# their new password
#
# &logintext – (Optional)
# Text to be displayed inside login button (for built-in form)
#
# &logouttext – (Optional)
# Text to be displayed inside logout link (for built-in form)
#
# &tpl – (Optional)
# Chunk name or document id to as a template
#
# Note: Templats design:
# section 1: login template
# section 2: logout template
# section 3: password reminder template
#
# See weblogin.tpl for more information
#
# Examples:
#
# [[WebLogin? &loginhomeid=`8` &logouthomeid=`1`]]
#
# [[WebLogin? &loginhomeid=`8,18,7,5` &tpl=`Login`]]
なお、この部分はLet’s enjoy MODx|WebLogin 1.0
で詳しい解説がされている。

さて、ユーザーがログイン以前だとして、会員専用ページを見ようと試みると、その段階では権限外なので、ツールー>グローバル設定ー>権限外告知のページ
で指定するIDのページに飛ぶことになる。
なお、 ユーザーがアクセスを許可されていないリソースを要求したとき表示するリソースのID を入力してください。
注意: 既に存在するリソースのIDを入力してください。リソースは公開されている必要があります。また、Publicなアクセスが可能であるものに限ります。
となっている。

さて、WebLoginをどのように使うか。サイトの例でデフォルトの例によれば、ほとんどのページのテンプレートになっているMODxHostテンプレートで右側にWebLoginが使われており、これならどこからでもログインできるし、ログアウトできる。これが望ましいと思われる。今までは会員専用ページをクリックして現れる権限外告知ページにだけWebLoginを置いていたので、そこからしかログインできないし、一旦ログインしてからはログオフができないようになっていた。

コメントを残す