Discourse Signatures

ユーザー入力の署名画像URLには全くバリデーションがないのでしょうか?
基本的に、ユーザーは何でも入力でき、それが他のユーザーにプッシュされるということですか?

また、URL署名のDBサイズが32,000に設定されているのはなぜですか?
画像へのURLに32,000文字も必要とする人がいるでしょうか?

不気味ですね :ghost:

CSSを次のように変更して、最大高さと幅をハードコーディングしました。

.signature-img {
  max-width: 600px;
  max-height: 100px;
  width: auto;
  height: auto;
  display: block;
  margin: 5px 0;
}

plugin.rbで署名URLの最大サイズを250に変更しました。

  register_user_custom_field_type("signature_url", :string, max_length: 250)
  register_user_custom_field_type("signature_raw", :string, max_length: 250)

plugin.rbの「on(:user_updated) do |user|」の末尾にこれを追加しました(高度なモードは使用しません)。

    # 高度なモードでない場合はURLを検証する
    if !SiteSetting.signatures_advanced_mode && user.custom_fields["signature_url"]
      url = user.custom_fields["signature_url"]

      # 厳密な検証:HTTPSのみ、特定の画像ファイルタイプのみ
      unless url =~ /\Ahttps:\/\/ [a-zA-Z0-9.\-\/_]+\.(png|jpe?g|gif|webp)(\?[a-zA-Z0-9=\&]+)?\z/
        Rails.logger.warn("[discourse-signatures] ユーザー #{user.id} の無効なsignature_urlを拒否しました: #{url.inspect}")
        user.custom_fields["signature_url"] = nil
        user.save
      end
    end

もし私が何か間違っていること(Discourseでの作業は初めてです)があれば、修正して正しい方法を教えてください。

「いいね!」 1

250では足りないからです…

それが署名の全体的な考え方です。フォーラムでも同じで、人々が何かを入力し、他の人がそれを見るのと同じです。クレイジーな世界ですね?

「いいね!」 5

Discourse が 3.5.0.beta8 (3.5.0.beta9-dev も問題あり) にアップグレードされると、ユーザーが署名を編集しても保存できないことが判明しました (保存されたように表示されても効果がない)。3.5.0.beta7 では正常でした。多くのプラグインが beta7 から beta8 に組み込まれているため、早急な修正を希望します。

「いいね!」 2

署名に関する特定のユースケースがあり、いくつかの変更を比較的簡単に行えるかどうか疑問に思っています。

  1. UIで特定のグループの署名のみを表示したいという点に同意します。私はCSSが得意ではありません。
  2. コミュニティとサポートチケットシステムの両方としてDiscourseを使用しています。「署名をXカテゴリにのみ表示する」という設定を取得する方法はありますか?

主にメール経由でのやり取りが行われるサポートセクションでのみ、署名が必要です。

「いいね!」 2

4件の投稿が新しいトピックに分割されました: Feature request: include sig in email notifications