長妻紀之のブログ

長妻紀之のブログ

ブログの説明を入力します。

Amebaでブログを始めよう!
今回は各ユーザーごとに、閲覧させるページを制限させる方法を備忘として記載します。
前々回の記事で紹介した、会員制サイト構築の方法と組み合わせで使用する前提です。


今回実現のために「User Access Manager」というプラグインを使用しました。

手順は以下の通りです。


0) ユーザー作成

事前準備として、設定したい権限の分だけユーザが作成されている必要があります。

今回は管理者側で全てユーザーを作成する形だったのでよいのですが、
各利用者側でユーザー登録を行わせる場合は、
ユーザー承認をする前に、権限の設定を行う必要があると思います。
(じゃないと権限設定するまでの間は全部見れちゃうので・・・)


1) ユーザーグループ設定

「User Access Manager」をインストールすると、メニューに「UAM」というのが増えているので、
その中の「Manage user user groups」を選択し、各項目を設定します。

User group name:任意のグループ名
User group description:グループ名に対する説明
IP range:IPで権限を制限する場合は設定。(今回未使用)
Read access:デフォルト(only group users)のまま
Write access:デフォルト(only group users)のまま
Role affiliation:チェックなし!

※Role affiliationに関して、ここで例えば、「購読者」にチェック入れると
 権限「購読者」でユーザ作成時に、
 かならずこのユーザグループに所属させなければいけなくなる
 (グレイアウトされててチェック外せない)ので
 ユーザーごとに権限設定する場合は、
 ここではチェックをいれず、ユーザ設定の方でチェック入れる。


2) 各ユーザーを作成したユーザーグループに所属させる

ユーザーの編集画面の一番下に、
ユーザーグループを選択するチェックボックスがあるので、
ユーザーごとに所属させたいグループにチェックを入れていく。


3) 各投稿ページ、固定ページごとに、閲覧可能グループを設定

各投稿ページ、固定ページの編集画面に、
閲覧を許可させるグループを選ぶチェックボックスがあるので、
それを設定していく。

ちなみに、一つもチェックを入れなければ全ユーザが閲覧可能な状態となる。


以上です。


なお、User Access Managerを有効化すると
管理者でページを閲覧する際に、
固定ページタイトルの後ろに[L]という文字が入る仕様のようです。

管理者以外のユーザで閲覧している場合はつかないので
まぁいいか、とそのままにしてます。
前回の記事で、会員制サイト構築について書きましたが、
登録したユーザでログインしてサイトを見ると、
画面上部に編集バー?みたいなのが出てきてました。

各ユーザごとのプロフィールとか設定する画面に
飛べるんですけど、特に今回プロフィールとか使用しないので、
スタイルシートから非表示にしてやりました。


style.cssに以下を追記することで非表示にできました。


#wpadminbar{
display: none;
}


うちのクライアント用の会員制サイトを作りました。
サイト構築にあたっては以下の2つのプラグインを使用。

・Absolute Privacy
・Sidebar Login


今回は、クライアント自らにユーザ登録を行わせる形だったので
2つのプラグインインストール後、
まず「設定」メニュー「一般」より
「だれでもユーザー登録ができるようにする」にチェック。

その後、Absolute Privacyの管理画面より
設定項目「Privacy Method」の中の「Complete Lockdown」をチェック。

ちなみに、「Privacy Method」の各項目の意味は次の通り。(多分)

・Complete Lockdown
 ⇒サイトを丸々会員制に。
  会員以外にも閲覧許可したいページがあれば、
  「Allowed Pages」の項目にpageIDを設定。
  PageIDはカンマで区切ることで複数ページ指定可能。

・Members Area
 ⇒一部のページのみ会員制に。
  会員のみ閲覧可能のページに対して、
  「Members Only Page」の項目にpageIDを設定。
  ただ、なぜか複数ページ指定できない><

これだけで、一応ユーザ登録しないと、
中身が見れないサイトが出来上がりました。簡単!

なお、登録したユーザでログインしてサイトを見れるようにするには、
管理者が「Moderate Users」より「approve users」を選択して承認してあげる必要があります。

で、今回はトップの画面だけは登録してなくても見られるようにしたかったので、
「Allowed Pages」に「home」と入力。

あとは、ウィジェットから「Sidebar Login」をドラッグ&ドロップで
サイドバーに追加すれば、ログイン画面がサイドバーに表示されるようになります。