Enhancement(機能追加・改善) #626
未完了Enable open communities to outwards of SNS (コミュニティを外部公開できるようにする)
0%
説明
コミュニティにpublic_flagを追加し、外部公開できるようにする。その際、opCommunityTopicPluginのトピック公開範囲を廃止し、トピック・イベントの公開範囲はコミュニティの公開範囲に準じるものにする。
Eitarow Fukamachi さんが14年以上前に更新
- 題名 を Enabled open communities to outwards of SNS (コミュニティを外部公開できるようにする) から Enable open communities to outwards of SNS (コミュニティを外部公開できるようにする) に変更
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
http://github.com/fukamachi/OpenPNE3/tree/open-community にコミットしました。
opCommunityTopicPlugin側は http://trac.openpne.jp/changeset/13373 で実装しました
Shinichi Urabe さんが約14年前に更新
- ステータス を Pending Review(レビュー待ち) から Accepted(着手) に変更
- 担当者 を Eitarow Fukamachi から Itsuro Tajima に変更
- 進捗率 を 50 から 90 に変更
田島さん #1546 のチケットでオーナつけてもらっているのですが、こちらで対応をお願いします
Itsuro Tajima さんが約14年前に更新
当該ブランチを反映したところ、
コミュニティ設定を「コミュニティ参加者のみ公開」にするとコミュニティ参加者(作成者)にもアクセスできなくなりました。
Itsuro Tajima さんが約14年前に更新
現状で
- 非ログイン、Web全体に公開→表示
- 非ログイン、全員に公開→表示せず
- 非ログイン、コミュニティ参加者のみ公開→表示せず
- 非メンバー、Web全体に公開→表示
- 非メンバー、全員に公開→表示
- 非メンバー、コミュニティ参加者のみ公開→表示せず
- メンバー、Web全体に公開→表示
- メンバー、全員に公開→表示
- メンバー、コミュニティ参加者のみ公開→表示
のように正常な振る舞いをしています。ただし、文言に不自然なところがあることと、本来あるべき選択肢がない(「SNS参加者のみ公開」がない)などの問題があるため、これを解消します。
Itsuro Tajima さんが約14年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 90 から 50 に変更
選択肢の問題は今調べたところありませんでした。
■コミュニティ参加者のみ公開
■SNS参加者のみ公開
■Web全体に公開
の3つとなっています。
一番上の選択肢の「コミュニティ」の部分でtermが使われていませんが、opCommunityTopicPlugin側の問題のため、本チケットでは対応しませんでした。
Kiwa Sakai さんがほぼ14年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
コミュニティの公開範囲は「トピックの公開範囲」という項目で扱われています。
まず、コミュニティの公開範囲 = トピックの公開範囲 という認識で問題ないのか確認させてください。
コミュニティの公開範囲 = トピックの公開範囲 の場合¶
トピックの公開範囲を「コミュニティ参加者のみ公開」に変更するとコミュニティトップすら閲覧できないという現象が発生してしいまいます。
以下のような変更をお願いします。
diff --git a/lib/acl/opCommunityAclBuilder.class.php b/lib/acl/opCommunityAclBuilder.class.php index e54daac..d58bee8 100644 --- a/lib/acl/opCommunityAclBuilder.class.php +++ b/lib/acl/opCommunityAclBuilder.class.php @@ -59,7 +59,7 @@ class opCommunityAclBuilder extends opAclBuilder } else if ('auth_commu_member' === $resource->getConfig('public_flag')) { - $acl->allow('member', null, 'view'); + $acl->allow('alien', null, 'view'); } else {
コミュニティの公開範囲 ≠ トピックの公開範囲 の場合¶
- コミュニティ公開範囲のフラグを「public_flag」ではなく、別のフラグを使ってください
- もしくは、トピック公開範囲用のフラグを作成し、現在の公開範囲をそのフラグに変更するためのスクリプトを提供してください
- コミュニティ公開範囲が「コミュニティ参加者のみ公開」のコミュニティがコミュニティ検索に表示されています。除外する処理を追加してください
- コミュニティ公開範囲が「コミュニティ参加者のみ公開」の場合にコミュニティに参加するための導線がありません
Itsuro Tajima さんがほぼ14年前に更新
- ステータス を Rejected(差し戻し) から Accepted(着手) に変更
基本的に、「コミュニティの公開範囲 ≠ トピックの公開範囲」という認識です。
つまり、トピックの公開範囲の制御はopCommunityTopicPluginで行うという方針です。
■フラグの問題
現在のopCommunityTopicPluginと同じフラグを見ている、ということが問題の焦点だと認識します。
このチケットには「opCommunityTopicPluginのトピック公開範囲を廃止し」とあるのですが、
これはopCommunityTopicPluginで扱うべき事項なので、このチケットの範囲ではpublic_flagがトピックで使われることは避けられません。
このため、別のフラグを使う方針に変更します。
■検索に表示される問題
除外処理を実装します。
■導線の問題
「コミュニティ参加者のみ公開」の場合は「管理人の承認」を求めるような処理を実装します。