Movable Type 4 のコミュニティ機能(その1:プロフィール画面)
Movable Type 4 のコミュニティ機能について、少しずつ紹介していきます。
1.動作を確認するときの注意事項
コミュニティ機能は、プロフィールページなど、ログイン状態をチェックして表示を変更するようになっています。
インストールしたコミュニティの動作確認や実験を行うときは、異なるブラウザを2つ以上開き、
- ひとつは管理画面を操作するために使用する
- 他はコミュニティ機能を確認する(例えばプロフィールページなどの参照)ために使用する
としてください。
同じ種類のブラウザを2枚開いたり、異なるタブで開いても、同一のクッキーを参照するので、期待する動作にならない可能性があります。
2.プロフィールページの動作
まず、プロフィールのページから調べていきます。
2.1 サインインしている状態の自分のプロフィールページ
自分のプロフィールページには、ユーザー名とプロフィール画像と「ユーザー情報の編集」というリンクを表示します。
プロフィール画像は、これまではシステム管理画面からのアップロードが必要でしたが、「ユーザー情報の編集」をクリックした次の画面の「プロフィール画像」からアップロードできます。
アップロード直後の画面です。
プロフィールのページにも反映されます。
サイドバーの「注目」「被注目」は、「お気に入り」への追加、あるいは mixi の「マイミク」のようなものです。他のユーザーを注目している場合、あるいは注目されている場合に、そのユーザーがこの欄に表示されます(表示方法は後述)。初期状態は誰も注目、被注目していないので、このように表示されます。
2.2 サインインしている状態の他のユーザーのプロフィールページ
プロフィールページには、「注目する」というリンクが表示されます。このリンクをクリックすると、先ほどのサイドバーの「注目」に注目したユーザーが表示されます。
「注目」をクリックすると、Ajax によって即座に表示が変わります。
自分のプロフィールページのサイドバーもこのように表示が変わります。
2.3 サインインしていない状態のすべてのユーザーのプロフィールページ
プロフィールのページにはユーザー名と画像のみが表示されます。
3 注意事項
コミュニティのテンプレートセット(コミュニティブログ・コミュニティ掲示板)で新たにブログを作成した場合、新たに作成したブログにも他のユーザーのプロフィールが表示されるようです。
- Movable Typeの記事をお気に入り順に並べて表示する方法
- Movable Typeのコミュニティ機能で投票できない不具合を解消する
- Movable Typeのコミュニティ機能でCKEditorを利用する
- コミュニティ機能のテンプレートのインクルード関係図
- コミュニティのカスタムフィールドの表示順序を入れ替える
- Movable Typeでコミュニティ機能のプロフィールページにタブを追加する方法
- コミュニティソリューションのプロフィールページに関する Tips
- Movable Type 4 のコミュニティ機能(その2:サインアップユーザーの権限自動付与とロールのカスタマイズ)
MTを使うようになってこちらのサイトでいろいろ情報を得て利用させていただいています。
この記事へのコメントで失礼致しますが、質問があります。
現在MT4.23日本語版(ライセンス購入しています)で検証をおこなっていますが、ユーザー情報をログインしたユーザー自身が変更できないようにすることは可能でしょうか。
ある団体でまとまった数のユーザー名を作成して管理をおこなおうと考えているのですが、ログインしたユーザー自身が自分のユーザー名(ユーザーID)を変更できてしまい、今後の管理に運用上支障が出てしまうことが考えられます。
可能であれば、管理画面からログインしたユーザーのシステム権限をチェックして、システム管理者でなければユーザー名の部分は変更不可のフィールドとして表示できるような方法があればと考えています。
あるいは、システム管理者でなければ ユーザー情報の編集 画面を表示できないような設定も考えています。
よろしくお願い致します。
>motta01さん
こんにちは。
ご質問の件ですが、まずどのような手順でユーザーを追加されているかをご教示ください。また、「ログインしたユーザー自身が自分のユーザー名(ユーザーID)を変更でき
てしまい、」も、どのような手順かをお知らせください。
なお、追加したユーザーにシステム権限を与えていない(=ユーザー作成画面の「システム管理者」に何もチェックをしない)のであれば、システム管理画面からユーザー情報は変更できない(その画面への移動もできない)ように思われます。
認識誤りがありましたらご指摘ください。
それではよろしくお願い致します。
>yujiroさま
返信ありがとうございます。
こちらの説明が不足して申し訳ありませんでした。
ユーザーを追加した手段ですが、管理画面(....../cgi-bin/mt/mt.cgi)からシステム管理者でサインインをおこない、システムメニュー > 一覧 > ユーザーで表示される画面より +新しいユーザーを作成 をクリックし、システム権限は何も付与せず、適切なロールを適切なブログに付与してユーザーを作成しました。システム管理者が明示的にユーザーを作成した手順となります。
上記で作成したユーザーが、管理画面(....../cgi-bin/mt/mt.cgi)からログインをおこない こんにちはxxxxxさん の部分、あるいは右側に表示される ユーザー情報の編集 をクリックすると ユーザー情報の編集 画面が表示されるかと思います。ここで ユーザー名 の部分が自分で変更できてしまう点がご確認頂けると思います。
こちらの運用では、この ユーザー名 をユニークなIDとして管理することを考えています。ユーザー自身でこの ユーザー名(=ユーザーID)を変更されてしまうと、ユーザー管理の部分で今後支障が発生することが考えられるため、ユーザー自身ではこの部分は変更できないようにすることはできないか、調査をおこなっているところです。
具体的には、ログインしたユーザー本人が表示した場合(こんにちはxxxxxさん の部分か ユーザー情報の編集 をクリックした場合)は ユーザー名 のフィールド部分は表示のみとし、管理者であれば編集も可能、ということができればと考えています。
現段階で、以下の点が判明しています。
1.システム管理者が管理画面からサインインし ユーザーA を表示する画面とユーザーA が管理画面からサインインして自分の情報を表示する画面で差異がある(状態 の項目と WEBサービスパスワード の部分)
=>ここで表示したユーザーの条件分岐(ログインした本人の表示か、管理者の表示か)
で該当のフィールドを 編集可能/表示のみ とわけることができる可能性あり
2.ネットでいろいろ検索したところ プロフィールの編集フォーム テンプレートがあるようだが、システム管理者で システムメニュー > デザイン > テンプレートで グローバルテンプレート の画面をみても表示上記のテンプレートは表示されて いない
=>このテンプレートの修正、変更により対応可能の可能性あり
サーバーも自分達の部門で使用しているものなので(管理者は別のためサーバー側にファイルを転送する作業は多少手続が必要となりますが)、いろいろテストすることは可能です。
お手数おかけしますがよろしくお願い致します。
>yujiroさま
連続投稿で失礼致します。
こちらでいくつか確認した内容もあわせて掲載させて頂きます。
*************************************************************
A:URL 情報の確認
システム管理者がサインインして ユーザーA を表示した際の URL
http://(xxx.xxx.xx)/cgi-bin/mt/mt.cgi?__mode=view&_type=author&id=9
ユーザーA がサインインして自分を表示した際の URL
http://(xxx.xxx.xx)/cgi-bin/mt/mt.cgi?__mode=view&_type=author&id=9
=>URL 情報に相違は無
内部で動的に表示のための html ファイルが作成されており、ここで何らかの条件分岐がおこなわれている可能性が考えられる。
ちなみに上記 URL をそのままコピーして表示させようとするとサインイン画面が表示される。
ここで ユーザーB (システム管理権限のないユーザ)でサインインしようとすると権限がないというメッセージが表示される。
B:表示されるページのソースの確認
ユーザーの編集 画面にて、ブラウザ(Internet Explorer 6.0)から 表示 > ソースより、同一ユーザー(ユーザーA)におけるシステム管理者と自身でおこなった際に表示されている画面のそれぞれのソースを確認。
相違部分が確認できたが、if 文等で条件分岐されている部分は確認できない。
ユーザー名 部分より ユーザーA を表示している input タグの内容は以下。
<input name="name" id="name" class="full-width" value="user003" />
ここに diabled="disabled" あるいは readonly="readonly" という属性が、システム管理者表示の場合と自分表示の場合で条件分岐して挿入されるような手法があれば可能となる。
システム管理者が表示する場合と自分で表示する場合に、表示内容が異なる(状態と WEBサービスパスワード のように)点があることから、その条件分岐部分を解析することにより、何らかのコーディングを追加すれば今回の要望が実現できると考
えられる。
*************************************************************
ご参考になれば幸いです。
たびたびスミマセン。。
タグ部分が表示されていませんでした。
>ユーザー名 部分より ユーザーA を表示している input タグの内容は以下。
<input name="name" id="name" class="full-width" value="user003" />
ここに diabled="disabled" あるいは readonly="readonly" という属性が、システ
ム管理者表示の場合と自分表示の場合で条件分岐して挿入されるような手法があれ
ば可能となる。
>motta01さん
こんばんは。
ご連絡&情報ありがとうございました。
知りたかったのは、システム管理者以外がユーザー情報を変更できるリンクの場所でしたので、それだけ分かれば後は解決できると思います(右上のリンクは完全に見落としてました)。
それではよろしくお願い致します。
>yujiroさま
UserNameEditController プラグイン の記事にてプラグインを作成して頂い
た点を確認致しました。
当方にて検証テスト等をおこない、何かありましたら、該当の記事にてコメントさ
せて頂きたいと思います。
ありがとうございました。