プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

校正確認用ユーザーの追加

いままで本サイトは私一人で運営していたので、記事の追加も削除もその他の管理作業も特に権限とかを意識することはありませんでした。このたび、業務実績のうち、お客様に許可を得られたものを事例紹介としてご紹介することになりました。

そうすると、作成した記事を公開前にお客さんに確認(校正)していただくことが必要になってきました。当然 、校正は一般公開前に行う必要があります。

そこで、新たに校正確認用のユーザーを作り一般公開前にオンラインで確認できるようにしたので、そのときの作業をメモにまとめておきます。

 

なお、使っているJoomla!のバージョンはこの記事を作成時の2.5系の最新版(2.5.16)です。

 

準備:アクセス制御(ACL)と閲覧レベルについて

これは私が改めて説明するより、非常によくまとまった日本語の解説があるので、そちらのサイトを紹介しておきます。作業前にこれを読んで、アクセス制御と閲覧レベルについて理解しておけば怖いもの無しです。

Joomla!2.5チュートリアル 誰に何をさせる? - ユーザ管理とグループ(ACL)

 

校正用ユーザーの追加

さて、最初にやる作業は、校正用ユーザーの追加です。

Joomla!の管理画面にログインして、『ユーザー』→『ユーザー管理』→『ユーザーの追加』を選びます。

『名前』、『ログイン名』、『パスワード』、『メールアドレス』を適切に入力しておきます。また、校正作業は記事を見ることだけできればよいので、所属グループは、Registeredを選択しておきます。

(Registeredについては、前述のリンク先の記事をご覧ください。)

 

ログインページの準備

今までは一人で管理していたので、バックエンド(管理画面)にログイン後、記事編集等をやっておりました。しかし、別の第3者に管理画面にログインしてもらうわけには行きませんので、フロントエンド(HPとして表示される画面)にログインページを追加します。

 

しかし、校正作業以外は今までと同じなので、サイドメニュー等にログインフォームを表示させたくありません。なので、ログインモジュールは使用しません。メニューアイテムを見ると、ログインフォームというのがあります。なので、代わりにこれを使ってログインページを表示させることとします。しかし、通常表示しているメニューに、メニューアイテムを追加すると校正にしか使わないのに、常に『ログイン』のようなメニューが表示されることになります。

そこで、常に表示しているメニューとは別に、メニューモジュールにリンクしないメニュー(一種の隠れたメニュー)をつくり、このメニュー内のメニューアイテムとして作成します。こうすることで、メニューアイテムのエイリアスで決まるURLを知っている人だけがアクセスできるページとすることができます。

 

実際の作業は次のようになります。

管理画面で、『メニュー』→『メニュー管理』を選択します。もし、モジュールにリンクしていないメニューがなければ、メニューそのものを作成します。

この例ではすでに『隠しメニュー』という名前でモジュールにリンクしていないメニューがありますので、これを流用します。この『隠しメニュー』を選択し、『新規』ボタンを押します。

『メニューアイテムの種類』で、『ログインフォーム』を選択し、メニュータイトルとエイリアスを入力しておきます。

 エイリアスは login-test としました。これはログインページのURLを指定する際に使うことになります。

 

一般ユーザーの追加を禁止

さて、これで、http://(サイト名)/login-test でアクセスすると、ログインフォームが表示されます。

 

ログイン画面を見ると、『アカウントをお持ちでないですか?』という選択肢があります。これをクリックすると、自由にユーザーが作成できてしまいます。今回の場合はこれは不適切です。

 

そこで、ユーザーがアカウントを作成するのを禁止したいと思います。

このためには、管理画面から、『ユーザー』→『ユーザー管理』→『オプション』を選択し、

『ユーザー登録の許可』で『いいえ』を選択します(上記画面は変更前のもの)。

設定後、再度、ログイン画面を表示すると、『アカウントをお持ちでないですか?』という選択肢がなくなっており、新しいユーザーの自己登録ができなくなっていることがわかります。


 

ログイン後のリダイレクトURLを追加

さて、実際にログインしてみます。Joomla!のログインページの場合、デフォルトではログイン後、下記のようなプロファイルのページが表示されます。

このページからプロファイルの編集も出来てしまいます。

 

ちょっと調べてみたところ、残念ながら、プロファイル編集ページを表示させないようにすることは、管理画面の設定変更だけではできないようです。もちろん直接phpファイルを編集すればできますが、アップデート/アップグレード時の作業でトラブルになるのも避けたいので、この方法は取りません。

 

もし、やりたい方がいれば、たとえば、

Disable user profile edit?

などをご参考に自己責任で挑戦してください。
 

振り返って今回の目的を思い出すと、校正作業終了後はログインページを非公開にする運用方法が可能なのと、基本的にログインするのはお客様に校正をお願いするときだけになるので、プロファイルページが目に触れないようにだけしておけば十分かと思います。

 

このための設定方法は、次のようになります。

ログインフォームのメニューアイテムを開き、『基本オプション』の『ログインリダイレクト』に/login-test(ログインフォームのURL)を入れておきます。

 

こうすると、ログイン後は、

のようにログアウトボタンだけが表示された画面になり、プロファイル表示/編集画面を意識せずに済みます。

 

記事の作成

これで準備ができました。校正前の記事を作成して、『公開』オプションを『Registered』にしておきます。

ここでは、業務実績カテゴリに対して、サンプル記事を追加しました。

 

表示させたい記事のURLの取得

作成した記事のカテゴリ名のエイリアスと記事のエイリアス及び記事のIDを確認しておきます。上記の例では、業務実績カテゴリのエイリアスが、results、記事のIDが175、記事のエイリアスが2013-11-13-13-22-55になっていました。

 

この記事を表示するためのURLは、

http://(ドメイン名)/(カテゴリのalias)/(記事ID)-(記事のalias)

になります(参考 Search Engine Friendly URLs )。なので、今回試したサーバーにおける表示用URLは、

http://backup.mori-soft.com/results/175-2013-11-13-13-22-55

になります。

 

ログイン後、このURLにアクセスすると

のように正しく記事が表示されることがわかります。この画像中の赤枠で囲った部分が校正ユーザーに対して表示された記事になります。

 

一方、ログインせずにこのURLにアクセスすると下記のように権限がないと表示されます。

 

これで設定は完了です。あとは、確認方法を校正者(今回の場合はお客様)に伝えればOKです。

 

なお、表示された画面の下部に『新着情報』のような部分があると思います。これは下記のような理由のためです。

Joomla!ではメニューを経由せずに直接記事のURLを入力した場合、メニューアイテムのデフォルト指定に従って表示されるようです。現在の設定は、ホーム画面がデフォルトになっており、この表示形式では、上部に記事が表示され、下部に『新着情報』を表示しています。このため、上記例のような形式での表示になりました。

今回は記事の内容についての校正確認用ですので、この表示方法でよいとしました。