Discourseカテゴリーのロックダウン

設定が非常に簡単で、正しく動作していると思います。

余談ですが、カスタムアイコン(フォント Awesome のアイコンの代わりに使用するサイトロゴなど)を注入することは可能でしょうか?現在は PNG 形式のみです。

「いいね!」 1

CSSを使えば可能です。私も似たようなものを作りましたが、コードは保存していません。

私の記憶では、2つの手順が必要です。まず、カスタムアイコンを非表示にします。私はカスタムテーマで星アイコンを使用していました。次に、タイトル前にカスタム画像を追加します。

.topic-list .category-idofyourcategory {
    .topic-status .d-icon-star {
        display: none;
    }
    .title::before {
        content: url("/your_image.png");
    }
}

実際に再現はしていないので、いくつか調整が必要かもしれませんが、方向性は示せるはずです。

「いいね!」 4

WordPress のページ(OAuth プロバイダー)にリダイレクトしており、ユーザーはそこでコンテンツ閲覧用のサブスクリプションに登録するか、またはログインできます。

問題は、ログイン後にフォーラムに戻っても、フォーラム側で自動的にログイン状態にならない(フォーラムの「ログイン」ボタンを再度クリックする必要がある)ことです。自動的にログイン状態にするために何を変更すればよいでしょうか?リンクに何か追加できるものはありますか?

URL へのリダイレクトが可能であれば、Discourse の URL の末尾に /session/sso?return_path=/top を追加してください。リダイレクト先のパスは変更できますが、これによりユーザーが自動的にログインされます。

「いいね!」 2

素晴らしい!以前は Xenforo でこれをできていたので、Discourse にも同様の機能があることを期待していました。有料コミュニティにとって、ユーザーをフォーラムのプレミアム部分に誘導するのに最適です。

心より感謝いたします、
レイ

P.S. @davidkingham デビッドさん、あなたのコミュニティを拝見しました。私がこれまで見た中で最高峰の一つです。共有いただき、感謝と称賛を申し上げます。

レイ

「いいね!」 3

このプラグインは 2.6 ベータ 2 で動作を停止しているようです。@fzngagan 有効化すると Discourse でトピックを読み込めません。以下のエラーをご覧ください。

メッセージ(204 件報告)

ArgumentError(引数の数が不正です(1 が与えられましたが、0 が期待されています))
lib/topic_view.rb:59:in `initialize'
app/controllers/topics_controller.rb:81:in `new'
app/controllers/topics_controller.rb:81:in `show'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:334:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'

バックトレース

plugins/discourse-category-lockdown/plugin.rb:41:in `check_and_raise_exceptions'
lib/topic_view.rb:59:in `initialize'
app/controllers/topics_controller.rb:81:in `new'
app/controllers/topics_controller.rb:81:in `show'
actionpack (6.0.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.0.3.2) lib/abstract_controller/base.rb:195:in `process_action'
actionpack (6.0.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.0.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.0.3.2) lib/active_support/callbacks.rb:112:in `block in run_callbacks'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'

Env
「いいね!」 1

これも私が解決しようと思っていたリストに含まれていました。この変更(4 日前)で壊れたようです

「いいね!」 5

@RGJ さん、原因を指摘してくださりありがとうございます。
これを優先的に扱い、朝の時間帯に確認いたします。

「いいね!」 4

@davidkingham @RGJ@dylanb
修正をプッシュしました。更新して確認をお願いします。

「いいね!」 5

@fzngagan 正常に動作しているようです。迅速な修正をありがとうございます。

「いいね!」 4

プラグインは現在クラッシュしませんが、tests-passed 環境では機能しなくなっています。

アイコンは表示されますが、カテゴリ内のトピックには通常通りアクセスできます。

2.5 で動作するプラグインを使用し、その後 tests-passed に移行すると動作が停止することを確認しました。

編集:これはマルチサイト環境の問題のようです。check_and_raise_exceptions 関数は、マルチサイトのマスターでプラグインが有効化された場合のみ先頭に挿入されます。また、プラグインを有効化した後は Discourse の再起動が必要です。

「いいね!」 3

質問とリクエストがあります。

質問:クローラーがコンテンツを表示できるようにするのはどのくらい難しいでしょうか?匿名ユーザーのガード内で、リクエストがクローラーによって行われたものかどうか(またはユーザーエージェント文字列)を確認する方法が見つかりません。何かヒントはありませんか?この情報にアクセスする方法が分かれば、喜んで PR を作成します。

リクエスト:@fzngagan さん、最近導入されたマルチサイトの問題をご確認いただけませんか?PR を作成することもできますが、些細な変更になるはずです。

「いいね!」 2

ブラウザで JavaScript を無効にすると、クローラー用のレイアウトが表示されます(したがって、ユーザーも同様に見ることができます :wink: )。
検証用のブランチ crawl を作成しましたので、テストして強化してみてください。動作すれば、デフォルトでオフになっているサイト設定の背後に配置します。

注:ブランチはテストしていませんが、お手伝いできます :slight_smile:

この件については喜んで PR を受け入れます。マルチサイト関連のことはまだ詳しくありません :slight_smile:

「いいね!」 2

プルリクエストを作成しました。

「いいね!」 1

Discourse のバージョンを 2.6.0.beta5 にアップグレードしたところ、このプラグインでまた問題が発生しているようです。何かご存知でしょうか、@fzngagan?

ログインしていないユーザーが「ロックされたカテゴリ」に移動しようとすると、読み込み中のインジケーターが回転するだけで(リダイレクトされません)。URL に「You are not permitted to view the requested resource」が追加されているようです。

参考のトピックは以下の通りです:

「いいね!」 1

何かアイデアはありませんか?

「いいね!」 1

@dylanb
はい、これがしばらくの間壊れた状態になっていることは承知しています。リファクタリングの必要があるでしょう。おそらく今週の終わりに確認します。

「いいね!」 2

わかりました、素晴らしいですね。ありがとうございます!

「いいね!」 1

@dylanb
修正のための PR です。マージする前に @RGJ にレビューを依頼しました。

https://github.com/paviliondev/discourse-category-lockdown/pull/10

「いいね!」 4

素晴らしい – マージされたらここで教えていただけますか?

「いいね!」 1