hrm_tsk

ウェブサイトにコミュニティブログのサインインの整合性は?

0

現在MT5で、以下の構成でサイトを制作しています。

ウェブサイトA(トップページ) blog_id=1
 ∟クラシックブログB(管理者のブログ) blog_id=2
 ∟コミュニティブログC(一般投稿を受付するブログ) blog_id=3

ウェブサイトAに、B、Cのブログ記事をそれぞれカテゴリ毎に表示させています。

すべてのページ(A、B、C)のサイドメニューに、コミュニティブログCに登録してもらうためのサインインを表示しました。

サインインのテンプレートモジュールを設置しましたが、
「ユーザー情報の編集」「新規ユーザー登録」のリンクには、mt:BlogIDタグが使用されているので、コミュニティブログのIDである3に、強制的に書き換えました。

しかし、「サインイン」「サインアウト」の場合は、その指定はできず、ウェブサイトA(トップページ)に表示された「サインイン」をクリックすると、blog_id=1を含んだログインURLになり、コミュニティブログCのログイン画面になりません。

ウェブサイトA(トップページ)でログインしたときに、ダイレクトにblog_id=3を与えることはできないでしょうか?

実際、問題になっているのは、

ウェブサイトA(トップページ)からログインすると、コミュニティブログCの「ブログ記事の作成」の投稿が「権限がない」といわれ投稿ページに進めません。

しかし、いったんコミュニティブログCの「ユーザ情報の編集」をクリックすると、次に「ブログ記事の作成」の投稿ができるようになります。

→ウェブサイトA(トップページ)でログインしたときに、blog_id=1の情報が保持されているためだと思います。

コミュニティブログCをトップページに切り替えるしかないのでしょうか?
でも、それだとMT5から登場した「ウェブサイト」の意味がなくなりますよね(^^;

わかる方、教えてください。
よろしくお願いします。

返信(5)

| 返信する
  • コメント投稿者に関連する cookie は、ブログ ID 単位で発行されますが、環境変数 SingleCommnunity を設定することで、システム単位に発行されます。

    SingleCommunity を設定してみてください。

  • yagishitaさん、ありがとうございます。

    mt-config.cgiに、

    SingleCommunity 1

    を追加して試してみました。

    しかし、だめでした。

    コメントもクラシックブログBで投稿すると、「エラーが発生しました: 権限がありません。 」とでてきました^^;

    ”ひとつの Movable Type で管理しているブログのうち、いづれかのブログでユーザーを禁止すると、その設定は、同じ Movable Type で管理している全てのブログにも適用されます。”

    と書かれているところで、ウェブサイトA、クラシックブログBでは、禁止しているというよりも、コミュニティブログでのみの投稿仕様になっているためでしょうか。

    コミュニティブログやコミュニティ掲示板だけの複数運営の場合では、うまくいくのでしょうか?

    ただ、MT5では、それをひとつにまとめるウェブサイトがあるので、これも連動するとなると結局、難しい気がします。

    でもSingleCommunity、勉強になりました。
    ありがとうございました

    ほかに解決策があれば、教えてください。
    よろしくお願いします。

  • 以下の方法を試していただけますでしょうか?

    参考サイト
    http://mtdemo17.sixapart.jp/documentation/community/user_permission_setting.html

    1.「コミュニティ参加者」ロールを作成
    2.(新規ユーザー)に「コミュニティ参加者」の権限を付与する掲示板、ブログを設定
    3.管理者以外の既存のユーザーにも「コミュニティ参加者」の権限を付与
    4."SingleCommunity 1"を設定(既に設定済みと思われますが念のため)
    5.新規ユーザーを登録し全てのブログにユーザーが追加されているかと、「コミュニティ参加者」になっているか確認

    ユーザー登録と、権限の設定が正しく行われていないと「ログインは出来るけど、コメントや新規トピックが立てられない状態」になります。

    以上、よろしくお願いします。

  • 情報提供ありがとうございます。

    >5.新規ユーザーを登録し全てのブログにユーザーが追加されているかと、「コミュニティ参加者」になっているか確認

    ここで、すべてのブログには新規ユーザは登録されませんでした。
    コミュニティブログCのみ「コミュニティ参加者」になります。
    コメントだけでも3つのサイトで有効にしたいので、新規ユーザに、A,Bにコメント投稿者の権限を与えてあります。

    できれば、複数コミュニティサイトでの運用事例などがあるといいのですが・・・
    設定がおかしいのでしょうか。

    Movable Type サポートチームから問合せの回答が帰ってきて、
    「ウェブサイトでサインインする場合には、ウェブサイトに対する権限(ロール「ライター」など)をユーザーに付与してください。」ということでした。
    公開しない権限を与えることで影響ないとは思いますが、ちょっとMTに詳しいユーザだと記事投稿のURLはわかるので、下書きにしても書き込みができてしまうというのもいかがなものかなと思っています。

    今回は、ウェブサイトのトップページからのログインはあきらめ、
    コミュニティブログCのウェブページへ誘導(ユーザ登録、ログインなどの説明書きを記述)、ここで登録およびログインすることでなんとか対応しています。

    今後、コミュニティブログの情報が増えることに期待したいです。

    • こちらでhrm_tskさんの環境を構築してみましたが、ウェブサイトAでのユーザー登録で、全てのブログにユーザーが登録され、初期値として設定されている権限が付与された状態になっていました。

      MTのコミュニティ・ソリューションで複数ブログを立ち上げる場合、"SyngleCommunity 1"が設定されていない限り、どのブログや掲示板から登録しても全てのブログや掲示板に自動的にユーザーが登録されます。ですので今回の例では「コミュニティブログCに登録」といった形にならず、「コミュニティシステムに登録」といった形になります。
      ですので、サインイン時のblog_idはサインインする場所のblog_idとなり、特にblog_id=3(コミュニティブログC)へサインイン画面が遷移する訳ではありません。サインインしようとしたブログのblog_idを持ってサインイン画面が表示されます。
      Aのサインイン、サインアウトでblog_id3にせずblog_id1のままで動作させてください。
      ユーザー登録時に正しく全ブログ、全掲示板にユーザーさえ追加できれば運用に問題が出ることは無いと思われます。

      私が条件切り訳をするとしたら、以下のような手順を踏みます。

      1."SingleCommunity 0"になっていないか?
      2.新規ユーザーの権限をライターにする
      3.管理者のログアウト
      4.対象とするブログのCookieを全て削除する
      5.Cで新規ユーザーを登録する
      6.メールで登録リンクが送られるのでクリックする
      7.ユーザー登録完了の画面をみる
      8.管理者としてmt.cgiにログインし、各ブログ・掲示板にユーザーが登録されている事を確認する
      9.管理者をログアウトする
      10.対象サイトのCookieを全部削除する
      11.Bでサインインを実行
      12.サインアウトをする
      13.Aでサインインを実行
      14.サインアウトをする
      15.Cでサインインを実行
      16.サインアウトをする
      17.B, Cでコメントをする
      18.サインアウトをする

      また、権限を持ったユーザーがMTに直接アクセスしエントリーを投稿してしまう懸念については、mt.cgiのリネーム(例:mt-1974.cgi)が効果的です。

      以上、よろしくお願いします。

返信する


OpenID対応しています OpenIDについて