Movable Type 4 のコミュニティ機能(その2:サインアップユーザーの権限自動付与とロールのカスタマイズ)
コミュニティブログ・コミュニティ掲示板では、新規ユーザーはブログ画面上からサインアップすることができます。
そしてサインアップしたユーザーは、管理画面ではなく、ブログのページ上からブログ記事の投稿やトピックの作成が行なえます。
その前段として、新規ユーザーがサインアップしたときに、自動的に必要な権限を与える設定を行なっておけば、管理者は登録ユーザーの権限を手動jで毎回与える必要はなくなります。
上記の権限の自動付与のために必要な設定を紹介します。なお、Movable Type のインストール時にメールの設定が行なわれていることが前提です(メールは環境変数を利用すれば後で設定することも可能ですがここでは割愛します)。
1.システムのメールアドレスを設定する
まず、前提として、システム管理画面の「設定」→「全般」でシステムのメールアドレスを設定します。この設定を行なわないと、ユーザー登録時に、登録ユーザーが入力したメールアドレスに確認用のメールが送信されないようです。
2.サインアップユーザーに権限を自動付与する
システム管理画面の「一覧」→「ユーザー」→「権限」、またはブログ管理画面の「システムメニュー」→「ユーザー」→「権限」で権限設定画面に進み、「ユーザーに権限を付与」をクリック。
「(新規ユーザー)」を選択して「次へ」をクリック。
ここでは「ライター」を選択して、「確認」をクリック。
登録後の権限画面はこのように表示されます。
サインアップしたユーザーがサインインすればブログ記事投稿画面が表示されます。
3.ロールのカスタマイズ
ただし、「ライター」の権限には「ブログ記事の公開」という権限がありません。つまりブログ記事を投稿しても、管理者の承認がなければブログ記事は公開されません。投稿後は「投稿を受付ました」となります。
ブログ記事一覧画面上は承認待ちになります。自分で公開状態を変更することはできません。
下の画面は、公開権限のないユーザーでサインインしたときのブログ記事編集画面です。
ちなみにこれは、公開権限のあるユーザーでサインインしたときのブログ記事編集画面です。
コミュニティユーザーの権限は「ブログ記事の作成」「ブログ記事の公開」「コメント投稿」のようですが、この3つを同時に与え、なおかつ他の権限を与えないというロールは、デフォルトでは用意されていないようです。
ということで、「コミュニティ」という新しいロールを作り、そのロールで権限の自動付与を行なうようにカスタマイズします。
システム管理画面の「一覧」→「ユーザー」→「ロール」で「新しいロールを作成」をクリック。
ロール名に「コミュニティ」、権限の一覧にある「ブログ記事の作成」「ブログ記事の公開」「コメントの送信」をチェックして、「変更を保存」をクリック。
これで「コミュニティ」というロールができたので、「新規ユーザーに権限を自動付与する設定をする」の作業をやり直し、作成作業の中で、「コミュニティ」を選択します。
権限画面はこうなります。
新規ユーザーでサインアップして、サインイン後、ブログ記事を投稿すると「投稿を公開しました」と表示されます。
ブログ記事が自動的に公開されました。
ちなみにこの権限であればブログ記事の編集もできます。「すべてのブログ記事の編集」という権限を与えてしまうと、ブログ管理画面にログインしたときに、他のユーザーのブログ記事も編集できてしまうので気をつけましょう。
Movable Type 4 のコミュニティ機能(その1:プロフィール画面)
Movable Type 4 のコミュニティ機能について、少しずつ紹介していきます。
1.動作を確認するときの注意事項
コミュニティ機能は、プロフィールページなど、ログイン状態をチェックして表示を変更するようになっています。
インストールしたコミュニティの動作確認や実験を行うときは、異なるブラウザを2つ以上開き、
- ひとつは管理画面を操作するために使用する
- 他はコミュニティ機能を確認する(例えばプロフィールページなどの参照)ために使用する
としてください。
同じ種類のブラウザを2枚開いたり、異なるタブで開いても、同一のクッキーを参照するので、期待する動作にならない可能性があります。
2.プロフィールページの動作
まず、プロフィールのページから調べていきます。
2.1 サインインしている状態の自分のプロフィールページ
自分のプロフィールページには、ユーザー名とプロフィール画像と「ユーザー情報の編集」というリンクを表示します。
プロフィール画像は、これまではシステム管理画面からのアップロードが必要でしたが、「ユーザー情報の編集」をクリックした次の画面の「プロフィール画像」からアップロードできます。
アップロード直後の画面です。
プロフィールのページにも反映されます。
サイドバーの「注目」「被注目」は、「お気に入り」への追加、あるいは mixi の「マイミク」のようなものです。他のユーザーを注目している場合、あるいは注目されている場合に、そのユーザーがこの欄に表示されます(表示方法は後述)。初期状態は誰も注目、被注目していないので、このように表示されます。
2.2 サインインしている状態の他のユーザーのプロフィールページ
プロフィールページには、「注目する」というリンクが表示されます。このリンクをクリックすると、先ほどのサイドバーの「注目」に注目したユーザーが表示されます。
「注目」をクリックすると、Ajax によって即座に表示が変わります。
自分のプロフィールページのサイドバーもこのように表示が変わります。
2.3 サインインしていない状態のすべてのユーザーのプロフィールページ
プロフィールのページにはユーザー名と画像のみが表示されます。
3 注意事項
コミュニティのテンプレートセット(コミュニティブログ・コミュニティ掲示板)で新たにブログを作成した場合、新たに作成したブログにも他のユーザーのプロフィールが表示されるようです。