A platform for community discussion. Free, open, simple.
3777 matches across 13 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/models/user_api_key_client.rb | 21 | end |
| LOW | app/models/draft.rb | 341 | end |
| LOW | app/models/draft.rb | 361 | # |
| LOW | app/models/tag_group_membership.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/sidebar_url.rb | 81 | def set_external |
| LOW | app/models/single_sign_on_record.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/single_sign_on_record.rb | 21 | # created_at :datetime not null |
| LOW | app/models/child_theme.rb | 21 | |
| LOW | app/models/user_custom_field.rb | 21 | # Table name: user_custom_fields |
| LOW | app/models/user_ip_address_history.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/user_ip_address_history.rb | 21 | # |
| LOW | app/models/directory_item.rb | 241 | # == Schema Information |
| LOW | app/models/directory_item.rb | 261 | # |
| LOW | app/models/topic_group.rb | 81 | # |
| LOW | app/models/group_history.rb | 41 | records = records.where("#{filter}_id" => id) |
| LOW | app/models/group_history.rb | 61 | # acting_user_id :integer not null |
| LOW | app/models/directory_column.rb | 61 | # |
| LOW | app/models/onceoff_log.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/topic_tag.rb | 41 | counters_to_update[:public_topic_count] = -1 |
| LOW | app/models/topic_tag.rb | 61 | # |
| LOW | app/models/topic_allowed_group.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/topic_allowed_group.rb | 21 | # index_topic_allowed_groups_on_topic_id_and_group_id (topic_id,group_id) UNIQUE |
| LOW | app/models/user_profile.rb | 221 | # bio_cooked_version :integer |
| LOW | app/models/user_profile.rb | 241 | # |
| LOW | app/models/topic_view_item.rb | 61 | ) |
| LOW | app/models/topic_view_item.rb | 81 | # uniq_ip_or_user_id_topic_views (user_id,ip_address,topic_id) UNIQUE |
| LOW | app/models/user_profile_view.rb | 61 | profile_views.joins("INNER JOIN users ON users.id = user_profile_views.user_id") |
| LOW | app/models/user_profile_view.rb | 81 | # |
| LOW | app/models/category.rb | 1341 | def on_custom_fields_change |
| LOW | app/models/category.rb | 1361 | # default_top_period :string(20) default("all") |
| LOW | app/models/category.rb | 1381 | # read_only_banner :string |
| LOW | app/models/category.rb | 1401 | # latest_post_id :integer |
| LOW | app/models/tag.rb | 321 | errors.add(:name, :invalid) if name.present? && RESERVED_TAGS.include?(name.strip.downcase) |
| LOW | app/models/tag.rb | 341 | # Indexes |
| LOW | app/models/user_required_fields_version.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/ignored_user.rb | 21 | SQL |
| LOW | app/models/backup_draft_post.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/backup_draft_post.rb | 21 | # index_backup_draft_posts_on_post_id (post_id) UNIQUE |
| LOW | app/models/color_scheme_color.rb | 21 | # id :integer not null, primary key |
| LOW | app/models/user_badge.rb | 141 | # badge_id :integer not null |
| LOW | app/models/user_action.rb | 481 | ) |
| LOW | app/models/user_action.rb | 501 | # target_user_id :integer |
| LOW | app/models/user_avatar.rb | 221 | # user_id :integer not null |
| LOW | app/models/group_mention.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/group_mention.rb | 21 | # index_group_mentions_on_post_id_and_group_id (post_id,group_id) UNIQUE |
| LOW | app/models/reviewable_score.rb | 101 | |
| LOW | app/models/reviewable_score.rb | 121 | # |
| LOW | app/models/reviewable_post.rb | 141 | # payload :json |
| LOW | app/models/reviewable_post.rb | 161 | # |
| LOW | app/models/application_request.rb | 81 | # == Schema Information |
| LOW | app/models/skipped_email_log.rb | 81 | # custom_reason :text |
| LOW | app/models/given_daily_like.rb | 41 | # |
| LOW | app/models/user_stat.rb | 321 | # |
| LOW | app/models/user_stat.rb | 341 | # posts_read_count :integer default(0), not null |
| LOW | app/models/tag_user.rb | 241 | .joins(:tag) |
| LOW | app/models/tag_user.rb | 261 | # Indexes |
| LOW | app/models/user_warning.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/user_warning.rb | 21 | # |
| LOW | app/models/incoming_email.rb | 81 | # error :text |
| LOW | app/models/incoming_email.rb | 101 | # index_incoming_emails_on_imap_sync (imap_sync) |
| 1705 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/mailers/invite_mailer.rb | 71 | def send_password_instructions(user) |
| LOW | app/mailers/user_notifications.rb | 242 | def account_second_factor_disabled(user, opts = {}) |
| LOW | app/mailers/user_notifications.rb | 454 | def user_invited_to_private_message(user, opts) |
| LOW | app/mailers/user_notifications.rb | 875 | def build_user_email_token_by_template(template, user, email_token) |
| LOW | app/models/topic_posters_summary.rb | 72 | def shuffle_last_poster_to_back_in(summary) |
| LOW | app/models/user_profile.rb | 77 | def upload_profile_background(upload) |
| LOW | app/models/category.rb | 1300 | def check_permissions_compatibility(parent_permissions, child_permissions) |
| LOW | app/models/reviewable_post.rb | 100 | def perform_reject_and_keep_deleted(performed_by, _args) |
| LOW | app/models/reviewable_post.rb | 104 | def perform_approve_and_restore(performed_by, _args) |
| LOW | app/models/reviewable_post.rb | 110 | def perform_approve_and_unhide(performed_by, _args) |
| LOW | app/models/reviewable_post.rb | 117 | def perform_reject_and_delete(performed_by, _args) |
| LOW | app/models/reviewable_post.rb | 123 | def perform_reject_and_suspend(performed_by, _args) |
| LOW | app/models/reviewable_user.rb | 146 | def perform_delete_user_block(performed_by, args) |
| LOW | app/models/reviewable_flagged_post.rb | 159 | def perform_ignore_and_do_nothing(performed_by, args) |
| LOW | app/models/reviewable_flagged_post.rb | 194 | def perform_delete_and_block_user(performed_by, args) |
| LOW | app/models/reviewable_flagged_post.rb | 203 | def perform_agree_and_restore(performed_by, args) |
| LOW | app/models/reviewable_flagged_post.rb | 253 | def perform_delete_and_ignore(performed_by, args) |
| LOW | app/models/reviewable_flagged_post.rb | 259 | def perform_delete_and_ignore_replies(performed_by, args) |
| LOW | app/models/reviewable_flagged_post.rb | 272 | def perform_delete_and_agree_replies(performed_by, args) |
| LOW | app/models/topic_user.rb | 73 | def auto_notification_for_staging( |
| LOW | app/models/topic_user.rb | 152 | def notification_level_change(user_id, topic_id, notification_level, reason_id) |
| LOW | app/models/discourse_connect.rb | 120 | def lookup_or_create_user_unsafe(ip_address) |
| LOW | app/models/discourse_connect.rb | 243 | def match_email_or_create_user(ip_address) |
| LOW | app/models/discourse_connect.rb | 338 | def change_external_attributes_and_override(sso_record, user) |
| LOW | app/models/topic.rb | 63 | def filtered_topic_thumbnails(extra_sizes: []) |
| LOW | app/models/topic.rb | 1432 | def participant_groups_summary(options = {}) |
| LOW | app/models/topic.rb | 1623 | def inherit_auto_close_from_category(timer_type: :close) |
| LOW | app/models/topic.rb | 1964 | def convert_to_private_message(user) |
| LOW | app/models/topic.rb | 2048 | def update_category_topic_count_by(num) |
| LOW | app/models/topic.rb | 2124 | def rate_limit_topic_invitation(invited_by) |
| LOW | app/models/topic.rb | 2144 | def cannot_permanently_delete_reason(user) |
| LOW | app/models/topic.rb | 2219 | def invite_to_private_message(invited_by, target_user, guardian) |
| LOW | app/models/topic.rb | 2277 | def apply_per_day_rate_limit_for(key, method_name) |
| LOW | app/models/group.rb | 459 | def filter_posts_for_guardian(result, guardian, opts = nil) |
| LOW | app/models/group.rb | 860 | def trigger_user_removed_event(user) |
| LOW | app/models/group.rb | 1187 | def send_membership_notification(user) |
| LOW | app/models/category_list.rb | 284 | def categories_with_descendants(categories = @categories) |
| LOW | app/models/user_notification_schedule.rb | 20 | def create_do_not_disturb_timings(delete_existing: false) |
| LOW | app/models/theme_modifier_set.rb | 81 | def add_theme_setting_modifier(modifier_name, setting_name) |
| LOW | app/models/theme_modifier_set.rb | 86 | def refresh_theme_setting_modifiers(target_setting_name: nil, target_setting_value: nil) |
| LOW | app/models/remote_theme.rb | 435 | def update_theme_color_schemes(theme, schemes) |
| LOW | app/models/remote_theme.rb | 509 | def create_theme_site_settings(theme, theme_site_settings) |
| LOW | app/models/reviewable_queued_post.rb | 140 | def perform_approve_post_closed(performed_by, args) |
| LOW | app/models/reviewable_queued_post.rb | 153 | def perform_revise_and_reject_post(performed_by, args) |
| LOW | app/models/reviewable_queued_post.rb | 204 | def perform_delete_and_block_user(performed_by, args) |
| LOW | app/models/post_action.rb | 114 | def add_moderator_post_if_needed(moderator, disposition, delete_post = false) |
| LOW | app/models/theme.rb | 1033 | def convert_list_to_json_schema(setting_row, setting) |
| LOW | app/models/unsubscribe_key.rb | 31 | def get_unsubscribe_strategy_for(key) |
| LOW | app/models/upload.rb | 511 | def sync_optimized_videos_secure_status(mark_secure) |
| LOW | app/models/post.rb | 575 | def sync_category_description(category = nil) |
| LOW | app/models/post.rb | 1121 | def update_uploads_secure_status(source:) |
| LOW | app/models/post.rb | 1204 | def cannot_permanently_delete_reason(user) |
| LOW | app/models/post.rb | 1233 | def parse_quote_into_arguments(quote) |
| LOW | app/models/post.rb | 1240 | def add_to_quoted_post_numbers(num) |
| LOW | app/models/post.rb | 1246 | def create_reply_relationship_with(post) |
| LOW | app/models/user.rb | 392 | def secured_sidebar_category_ids(user_guardian = nil) |
| LOW | app/models/user.rb | 604 | def enqueue_staff_welcome_message(role) |
| LOW | app/models/user.rb | 685 | def unread_notifications_of_type(notification_type, since: nil) |
| LOW | app/models/user.rb | 702 | def unread_notifications_of_priority(high_priority:) |
| LOW | app/models/user.rb | 857 | def publish_reviewable_counts(extra_data = nil) |
| 1331 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | frontend/discourse-i18n/src/index.js | 402 | // I18n.prepareOptions({name: "John Doe"}, {name: "Mary Doe", role: "user"}); |
| LOW | frontend/discourse-i18n/src/index.js | 403 | // #=> {name: "John Doe", role: "user"} |
| LOW | frontend/discourse/tests/unit/models/composer-test.js | 535 | { name: "foo@bar.com", type: "email" }, |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 143 | <p>Lorem ipsum <span>dolor sit amet, consectetur</span> <strike>elit.</strike></p> |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 143 | <p>Lorem ipsum <span>dolor sit amet, consectetur</span> <strike>elit.</strike></p> |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 146 | const markdown = `Lorem ipsum dolor sit amet, consectetur ~~elit.~~\n\nUt minim veniam, quis nostrud laboris ut aliq |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 146 | const markdown = `Lorem ipsum dolor sit amet, consectetur ~~elit.~~\n\nUt minim veniam, quis nostrud laboris ut aliq |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 286 | let html = `Lorem ipsum dolor sit amet, |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 286 | let html = `Lorem ipsum dolor sit amet, |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 293 | let output = `Lorem ipsum dolor sit amet, \n\n\`\`\`\nvar helloWorld = () => {\n alert(' hello \t\t world '); |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 293 | let output = `Lorem ipsum dolor sit amet, \n\n\`\`\`\nvar helloWorld = () => {\n alert(' hello \t\t world '); |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 297 | html = `Lorem ipsum dolor sit amet, <code>var helloWorld = () => { |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 297 | html = `Lorem ipsum dolor sit amet, <code>var helloWorld = () => { |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 302 | output = `Lorem ipsum dolor sit amet, \`var helloWorld = () => { alert(' hello world '); return; } helloWorld();\`co |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 302 | output = `Lorem ipsum dolor sit amet, \`var helloWorld = () => { alert(' hello world '); return; } helloWorld();\`co |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 308 | let html = "<blockquote>Lorem ipsum</blockquote>"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 309 | let output = "> Lorem ipsum"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 313 | "<blockquote>Lorem ipsum</blockquote><blockquote><p>dolor sit amet</p></blockquote>"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 313 | "<blockquote>Lorem ipsum</blockquote><blockquote><p>dolor sit amet</p></blockquote>"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 314 | output = "> Lorem ipsum\n\n> dolor sit amet"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 314 | output = "> Lorem ipsum\n\n> dolor sit amet"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 318 | "<blockquote>\nLorem ipsum\n<blockquote><p>dolor <blockquote>sit</blockquote> amet</p></blockquote></blockquote>"; |
| LOW | frontend/discourse/tests/unit/lib/to-markdown-test.js | 319 | output = "> Lorem ipsum\n>\n> > dolor\n> >\n> > > sit\n> >\n> > amet"; |
| LOW | frontend/discourse/tests/unit/lib/build-quote-test.js | 49 | buildQuote(post, "lorem ipsum", { full: true }), |
| LOW | frontend/discourse/tests/unit/lib/build-quote-test.js | 50 | '[quote="eviltrout, post:1, topic:2, full:true"]\nlorem ipsum\n[/quote]\n\n', |
| LOW | …ourse/tests/acceptance/create-account-external-test.js | 102 | setupAuthData({ name: "John Doe", name_from_provider: true }); |
| LOW | …nd/discourse/tests/acceptance/composer-actions-test.js | 562 | '[quote="bianca, post:1, topic:130, full:true"]\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Maecen |
| LOW | …nd/discourse/tests/acceptance/composer-actions-test.js | 562 | '[quote="bianca, post:1, topic:130, full:true"]\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Maecen |
| LOW | …ourse/tests/acceptance/invite-show-user-fields-test.js | 52 | await fillIn("#new-account-name", "John Doe"); |
| LOW | …tend/discourse/tests/acceptance/create-account-test.js | 126 | Session.current().email = "foo@bar.com"; |
| LOW | …tend/discourse/tests/acceptance/create-account-test.js | 130 | assert.strictEqual(email, "foo@bar.com"); |
| LOW | …e/tests/acceptance/group-manage-email-settings-test.js | 154 | email_username: "test@test.com", |
| LOW | …e/tests/acceptance/group-manage-email-settings-test.js | 172 | .hasValue("test@test.com", "email username is prefilled"); |
| LOW | …ntend/discourse/tests/acceptance/invite-accept-test.js | 138 | await fillIn("#new-account-name", "John Doe"); |
| LOW | …/javascripts/acceptance/chat-channel-reactions-test.js | 13 | message: "Lorem ipsum!", |
| LOW | …/javascripts/acceptance/chat-channel-reactions-test.js | 14 | cooked: `<p>Lorem ipsum!</p>`, |
| LOW | plugins/chat/spec/models/chat/direct_message_spec.rb | 84 | new_user = Fabricate.build(:user, username: "johndoe", name: "John Doe") |
| LOW | plugins/chat/spec/models/chat/direct_message_spec.rb | 88 | I18n.t("chat.channel.dm_title.single_user", username: "John Doe"), |
| LOW | plugins/chat/spec/models/chat/direct_message_spec.rb | 93 | user2.update!(name: "John Doe") |
| LOW | plugins/chat/spec/models/chat/direct_message_spec.rb | 108 | new_user = Fabricate.build(:user, username: "johndoe", name: "John Doe") |
| LOW | …discourse_workflows/data_table_rows_controller_spec.rb | 41 | fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com") } |
| LOW | …discourse_workflows/data_table_rows_controller_spec.rb | 54 | expect(json["rows"][0]["email"]).to eq("test@test.com") |
| LOW | …discourse_workflows/data_table_rows_controller_spec.rb | 75 | filters: [{ columnName: "email", condition: "invalid", value: "test@test.com" }], |
| LOW | …course_workflows/data_table_columns_controller_spec.rb | 38 | fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com") } |
| LOW | …course_workflows/data_table_columns_controller_spec.rb | 58 | "email" => "test@test.com", |
| LOW | …course_workflows/data_table_columns_controller_spec.rb | 71 | fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com") } |
| LOW | …course_workflows/data_table_columns_controller_spec.rb | 92 | expect(row_data["contact_email"]).to eq("test@test.com") |
| LOW | …course_workflows/data_table_columns_controller_spec.rb | 107 | fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com", "score" => 7) } |
| LOW | …pec/lib/discourse_workflows/data_tables/facade_spec.rb | 499 | row = facade.insert(build_row_input({ "email" => "test@test.com" }, fill_missing: true)) |
| LOW | …pec/lib/discourse_workflows/data_tables/facade_spec.rb | 501 | expect(row["email"]).to eq("test@test.com") |
| LOW | …ices/discourse_workflows/data_table_row/update_spec.rb | 22 | fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com", "score" => 1) } |
| LOW | …ices/discourse_workflows/data_table_row/update_spec.rb | 27 | "filters" => [{ "columnName" => "email", "condition" => "eq", "value" => "test@test.com" }], |
| LOW | …ices/discourse_workflows/data_table_row/update_spec.rb | 85 | "email" => "test@test.com", |
| LOW | …scourse_workflows/data_table_row/update_single_spec.rb | 23 | fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com", "score" => 1) } |
| LOW | …scourse_workflows/data_table_row/update_single_spec.rb | 78 | "email" => "test@test.com", |
| LOW | …ices/discourse_workflows/data_table_row/insert_spec.rb | 23 | { data_table_id: data_table.id, data: { "email" => "test@test.com", "score" => "42" } } |
| LOW | …ices/discourse_workflows/data_table_row/insert_spec.rb | 70 | expect(row.slice("email", "score")).to eq("email" => "test@test.com", "score" => 42) |
| LOW | …ices/discourse_workflows/data_table_row/insert_spec.rb | 75 | "email" => "test@test.com", |
| LOW | …est/javascripts/unit/controllers/subscriptions-test.js | 27 | this.currentUser.email = "user@example.com"; |
| LOW | …est/javascripts/unit/controllers/subscriptions-test.js | 39 | 'customer-email="user@example.com"' |
| 345 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | app/models/topic_link.rb | 382 | # Create the reflection if we can |
| MEDIUM | app/models/topic_link_click.rb | 14 | # Create a click from a URL and post_id |
| MEDIUM | app/models/private_message_topic_tracking_state.rb | 3 | # This class is used to mirror unread and new status for private messages between |
| MEDIUM | app/models/topic_list.rb | 104 | # Create a lookup for all the user ids we need |
| MEDIUM | app/models/reviewable.rb | 122 | # Create a new reviewable, or if the target has already been reviewed return it to the |
| MEDIUM | app/models/topic_tracking_state.rb | 3 | # This class is used to mirror unread and new status back to end users |
| MEDIUM | app/models/post.rb | 966 | # Create a reply relationship between quoted posts and this new post |
| MEDIUM | app/models/concerns/reviewable_action_builder.rb | 169 | # Create a result object. |
| MEDIUM | app/jobs/regular/group_smtp_email.rb | 79 | # Create an incoming email record for tracking purposes. |
| MEDIUM | app/controllers/application_controller.rb | 615 | # This method is intended to be a no-op. |
| MEDIUM | app/services/theme_settings_migrations_runner.rb | 7 | # Defining a method `get_category_id_by_name` will result in the `getCategoryIdByName` function being made available |
| MEDIUM | app/services/post_alerter.rb | 696 | # Create the notification |
| MEDIUM | …services/video_conversion/aws_media_convert_adapter.rb | 310 | # Create a temporary upload object to leverage FileStore::BaseStore path generation |
| MEDIUM | …ervices/notifications/delete_previous_notifications.rb | 3 | # Create a new notification while deleting previous versions of it. |
| MEDIUM | config/locales/transliterate.bg.yml | 2 | # This file contains content for the i18n transliteration map from |
| MEDIUM | config/locales/transliterate.de.yml | 3 | # This file contains transliteration rules for German |
| MEDIUM | config/locales/transliterate.ru.yml | 2 | # This file contains content for the i18n transliteration map from |
| MEDIUM | config/locales/transliterate.en.yml | 3 | # This file contains default transliteration rules and configures stringex |
| MEDIUM | config/locales/transliterate.vi.yml | 3 | # This file contains transliteration rules for Vietnamese |
| MEDIUM | config/locales/transliterate.ug.yml | 3 | # This file contains transliteration rules for Uyghur based on |
| MEDIUM | config/locales/transliterate.ar.yml | 3 | # This file contains transliteration rules for Arabic |
| MEDIUM | config/initializers/100-wrap_parameters.rb | 5 | # This file contains settings for ActionController::ParamsWrapper which |
| MEDIUM | …ration/app/jobs/onceoff/migrate_from_slack_official.rb | 88 | # Create the rule, with clever logic for avoiding duplicates |
| MEDIUM | …ugins/discourse-chat-integration/app/helpers/helper.rb | 151 | # Create a rule for a specific channel |
| MEDIUM | …scourse-chat-integration/spec/services/manager_spec.rb | 292 | # Create a group & user |
| MEDIUM | …scourse-chat-integration/spec/services/manager_spec.rb | 300 | # Create a category |
| MEDIUM | …/discourse-adplugin/spec/system/admin_house_ad_spec.rb | 30 | # Create a new ad |
| MEDIUM | …s/chat/app/queries/chat/tracking_state_report_query.rb | 4 | # This class is responsible for querying the user's current tracking |
| MEDIUM | plugins/chat/spec/system/uploads_spec.rb | 23 | # Define the JavaScript to simulate dragging an external image |
| MEDIUM | plugins/chat/spec/lib/chat/message_processor_spec.rb | 22 | # Create a message with an image in a onebox (common when posting URLs with images) |
| MEDIUM | …at/spec/services/video_conversion/chat_message_spec.rb | 10 | # Create a chat message with video upload |
| MEDIUM | plugins/chat/lib/chat_sdk/message.rb | 33 | # This method is a convenience wrapper around `create` with `streaming: true` set by default. |
| MEDIUM | …s/discourse-assign/spec/components/topic_query_spec.rb | 108 | # Create a new topic with only a post assignment (no topic assignment) |
| MEDIUM | plugins/discourse-assign/lib/assigner.rb | 364 | # Create a webhook event |
| MEDIUM | plugins/discourse-assign/lib/assigner.rb | 425 | # Create a webhook event |
| MEDIUM | plugins/discourse-ai/app/models/ai_artifact.rb | 85 | # Create the version record |
| MEDIUM | …iscourse-ai/spec/models/shared_ai_conversation_spec.rb | 76 | # Create a post with an AI artifact |
| MEDIUM | …se-ai/spec/requests/admin/ai_agents_controller_spec.rb | 332 | # Create the agent |
| MEDIUM | …se-ai/spec/requests/ai_bot/topic_serialization_spec.rb | 17 | # Create a bot post with the custom field set |
| MEDIUM | …se-ai/spec/lib/discourse_automation/llm_triage_spec.rb | 207 | # Create a post and capture its topic |
| MEDIUM | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 21 | # Create the user for this agent |
| MEDIUM | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 221 | # Create a category and tags for the test |
| MEDIUM | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 226 | # Create a topic with category and tags |
| MEDIUM | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 236 | # Create a post in that topic |
| MEDIUM | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 293 | # Create a private message topic |
| MEDIUM | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 305 | # Create a follow-up post |
| MEDIUM | …scourse-ai/spec/lib/completions/cancel_manager_spec.rb | 72 | # Create a model that points to our hanging server |
| MEDIUM | …i/spec/lib/completions/prompt_messages_builder_spec.rb | 83 | # Create a topic with tags |
| MEDIUM | …se-ai/spec/lib/completions/endpoints/anthropic_spec.rb | 825 | # Create a mock prompt with tool results in messages (simulating what dialect produces) |
| MEDIUM | …/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb | 102 | # Create a private message post with an upload |
| MEDIUM | …/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb | 106 | # Create an upload associated with the private post |
| MEDIUM | …/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb | 130 | # Create a private message post with an upload |
| MEDIUM | …/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb | 134 | # Create an upload associated with the private post |
| MEDIUM | …/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb | 159 | # Create a tool that raises an error |
| MEDIUM | …/discourse-ai/spec/lib/agents/tools/researcher_spec.rb | 28 | # Create a second LLM model to test the researcher_llm option |
| MEDIUM | …iscourse-ai/spec/lib/agents/tools/create_image_spec.rb | 81 | # Create a tool that raises an error |
| MEDIUM | …ourse-ai/spec/lib/utils/ai_staff_action_logger_spec.rb | 51 | # Create a agent with a large system prompt |
| MEDIUM | …ourse-ai/spec/lib/utils/ai_staff_action_logger_spec.rb | 412 | # Create a quota for the model |
| MEDIUM | …ourse-ai/spec/lib/utils/research/llm_formatter_spec.rb | 27 | # Create a post with content that will exceed our token limit |
| MEDIUM | …ns/discourse-ai/spec/lib/automation/llm_tagger_spec.rb | 216 | # Create an additional tag that's not in manual list |
| 39 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | …d/discourse/app/static/prosemirror/extensions/quote.js | 164 | const paragraph = view.state.schema.nodes.paragraph.create(); |
| CRITICAL | …nd/discourse/app/static/prosemirror/extensions/link.js | 342 | tr.addMark(from, to, view.state.schema.marks.link.create({ href: text })); |
| CRITICAL | …p/static/prosemirror/extensions/override-drag-ghost.js | 62 | const wrappedNode = view.state.schema.nodes.paragraph.create( |
| CRITICAL | …urse/app/static/prosemirror/extensions/link-toolbar.js | 202 | this.#view.state.schema.nodes.paragraph.create( |
| CRITICAL | …/discourse/app/static/prosemirror/extensions/onebox.js | 372 | view.state.schema.nodes.onebox_inline.create({ |
| CRITICAL | …/discourse/app/static/prosemirror/extensions/onebox.js | 386 | const oneboxNode = view.state.schema.nodes.onebox.create({ |
| CRITICAL | frontend/discourse/app/lib/flag-targets/topic-flag.js | 29 | flagModal.args.model.flagModel.actions_summary.forEach((a) => { |
| CRITICAL | frontend/discourse/app/lib/flag-targets/topic-flag.js | 37 | return flagModal.args.model.flagModel.actions_summary.some((a) => { |
| CRITICAL | frontend/discourse/app/lib/flag-targets/post-flag.js | 48 | return flagModal.args.model.flagModel.actions_summary.find( |
| CRITICAL | config/initializers/assets.rb | 12 | Rails.application.config.assets.paths.push( |
| CRITICAL | config/initializers/assets.rb | 19 | Rails.application.config.assets.paths.push( |
| CRITICAL | config/initializers/assets.rb | 24 | Rails.application.config.assets.excluded_paths.push( |
| CRITICAL | …g/assets/javascripts/discourse/lib/post-voting-flag.js | 26 | return flagModal.args.model.flagModel.availableFlags.includes( |
| CRITICAL | …/assets/javascripts/discourse/lib/chat-message-flag.js | 52 | flagModal.args.model.flagModel.availableFlags.includes(flag.name_key) && |
| CRITICAL | spec/requests/invites_controller_spec.rb | 1244 | expect(invite.invited_users.first.user.groups.pluck(:name)).to contain_exactly( |
| CRITICAL | lib/middleware/default_headers.rb | 17 | Rails.application.config.action_dispatch.default_headers.to_h.except(*EXCLUDED_HEADERS) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 3 | // ── Top-level nested view ────────────────────────────────────────── |
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 311 | // ── Nested post (single comment in tree) ─────────────────────────── |
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 844 | // ── Children container ───────────────────────────────────────────── |
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 880 | // ── Context view ────────────────────────────────────────────────── |
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 924 | // ── Deep-link highlight animation ────────────────────────────────── |
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 939 | // ── Activity log modal ──────────────────────────────────────────── |
| MEDIUM | app/assets/stylesheets/common/nested-view.scss | 994 | // ── Mobile layout ───────────────────────────────────────────────── |
| MEDIUM | plugins/chat/lib/chat/message_mover.rb | 8 | # ------------------- |
| MEDIUM | plugins/chat/lib/chat/transcript_service.rb | 311 | # ---------------------------------------- |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 41 | # ── Root view assertions ────────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 59 | # ── Context view assertions ─────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 77 | # ── Post assertions ─────────────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 294 | # ── Actions ─────────────────────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 442 | # ── Deletion/recovery assertions ───────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 477 | # ── Ignored-user placeholder assertions ────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 494 | # ── Post actions ──────────────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 517 | # ── Pinned post assertions ───────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 527 | # ── Load more ─────────────────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 538 | # ── Cloaking ───────────────────────────────────────────────── |
| MEDIUM | spec/system/page_objects/pages/nested_view.rb | 557 | # ── Suggested topics ────────────────────────────────────────── |
| MEDIUM | script/memstats.rb | 6 | #------------------------------------------------------------------------------ |
| MEDIUM | script/memstats.rb | 28 | #------------------------------------------------------------------------------ |
| MEDIUM | lib/discourse_webauthn/registration_service.rb | 85 | #================================================== |
| MEDIUM | lib/discourse_webauthn/registration_service.rb | 89 | #================================================== |
| MEDIUM | lib/discourse_webauthn/registration_service.rb | 98 | #================================================== |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/controllers/list_controller.rb | 430 | # Check if the category slug is incorrect and redirect to a link containing |
| LOW | …discourse-assign/spec/requests/list_controller_spec.rb | 436 | # Assign topics to different users and groups |
| LOW | …discourse-assign/spec/requests/list_controller_spec.rb | 459 | # Assign topics to different users and groups |
| LOW | …ugins/discourse-ai/app/models/llm_credit_allocation.rb | 40 | # Check if association is preloaded to avoid N+1 queries |
| LOW | …ins/discourse-ai/app/jobs/regular/digest_rag_upload.rb | 24 | # Check if this is the first time we process this upload. |
| LOW | plugins/discourse-ai/discourse_automation/llm_tagger.rb | 107 | # Check if we can perform the action before proceeding |
| LOW | …spec/lib/discourse_automation/llm_agent_triage_spec.rb | 207 | # Set up to cause an error |
| LOW | …ugins/discourse-ai/lib/agents/tool_runner/discourse.rb | 229 | # Check if user already exists |
| LOW | plugins/discourse-ai/lib/agents/tools/edit_image.rb | 67 | # Check if upload has access control |
| LOW | plugins/discourse-ai/lib/automation/llm_triage.rb | 194 | # Check if another triage rule already created a reviewable for this post. |
| LOW | plugins/discourse-ai/lib/ai_bot/entry_point.rb | 100 | # Check if the only recipients are bots |
| LOW | …rs/discourse_subscriptions/user/payments_controller.rb | 93 | # Check if the charge is associated with the given email and has no customer ID |
| LOW | …rs/discourse_subscriptions/user/payments_controller.rb | 99 | # Check if there are more charges to fetch |
| LOW | …rs/discourse_subscriptions/user/payments_controller.rb | 102 | # Set starting_after to the last charge's ID for the next batch |
| LOW | spec/requests/admin/themes_controller_spec.rb | 1008 | # Set back to default |
| LOW | …regular/site_setting_update_default_categories_spec.rb | 41 | # Set default_categories_watching to the new value otherwise |
| LOW | script/backport.rb | 78 | # Check if release branch exists |
| LOW | script/bulk_import/uploads_importer.yml | 29 | # Check if files are missing in the upload store and update the database accordingly. |
| LOW | script/bulk_import/uploads_importer.yml | 51 | # Set this to true if the site is a multisite and configure the `multisite_db_name` accordingly |
| LOW | script/import_scripts/friendsmegplus.rb | 38 | # Set this to the base URL for the site; required for importing videos |
| LOW | script/import_scripts/discuz_x.rb | 24 | # Set DISCUZX_BASE_DIR to the base directory of your discuz installation. |
| LOW | script/import_scripts/zoho.rb | 176 | # Check if Zoho's most common form of a code block is present. |
| LOW | .github/workflows/migration-tests.yml | 88 | # Check if generated output matches what's committed |
| LOW | lib/validators/video_conversion_enabled_validator.rb | 13 | # Check if MediaConvert role ARN is provided |
| LOW | lib/validators/video_conversion_enabled_validator.rb | 16 | # Check if S3 credentials are provided (either access keys or IAM profile) |
| LOW | lib/validators/video_conversion_enabled_validator.rb | 37 | # Check if using IAM profile |
| LOW | lib/validators/video_conversion_enabled_validator.rb | 40 | # Check if access key and secret are provided |
| LOW | …rate/20250626090725_add_my_messages_link_to_sidebar.rb | 13 | # Check if "My Messages" link already exists |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/models/category.rb | 782 | # Ideally we can just call .clear here, but it runs SQL, we only want to run it |
| LOW | app/models/theme_field.rb | 464 | self.value_baked = Digest::SHA1.hexdigest(result.join(",")) # We don't use the compiled CSS here, we just use it to |
| LOW | app/models/email_token.rb | 72 | # If the user's email is already taken, just return nil (failure) |
| MEDIUM | app/models/post.rb | 637 | # Ideally we would want a more comprehensive way of saying that certain |
| MEDIUM | …services/video_conversion/aws_media_convert_adapter.rb | 310 | # Create a temporary upload object to leverage FileStore::BaseStore path generation |
| MEDIUM | config/initializers/100-secret_token.rb | 4 | # backwards support of "seamless" upgrade from Rails 3. |
| LOW | …scourse-ai/spec/lib/completions/endpoints/nova_spec.rb | 233 | # lets just return the tool call again, this is about ensuring we encode the prompt right |
| MEDIUM | …ugins/discourse-ai/lib/agents/tool_runner/discourse.rb | 18 | # default to public visibility and only elevate when `with_private: true` |
| MEDIUM | spec/lib/pretty_text_spec.rb | 1455 | <iframe width="640" height="360" src="https://player.vimeo.com/video/1" data-original-href="https://vimeo.co |
| LOW | spec/lib/trashable_spec.rb | 4 | # post is trashable, just use it. |
| MEDIUM | spec/lib/onebox/engine/loom_onebox_spec.rb | 13 | '<iframe class="loom-onebox" src="https://www.loom.com/embed/c9695e5dc084496c80b7d7516d2a569a?sid=e1279914-ecaa-4f |
| MEDIUM | spec/lib/onebox/engine/wistia_onebox_spec.rb | 16 | '<iframe src="https://fast.wistia.net/embed/iframe/26sk4lmiix" width="960" height="540" title="Nice." frameborder= |
| MEDIUM | script/import_scripts/lithium.rb | 8 | # If you have leverage you may get a data dump, in my case it was provided in XML |
| LOW | lib/site_setting_extension.rb | 884 | # a custom getter for it, so we can just use the normal getter |
| LOW | lib/topic_query.rb | 758 | # topics. Otherwise, just use bumped_at. |
| LOW | lib/onebox/engine/youtube_onebox.rb | 178 | # use params.include? so that you can just add "&loop" |
| LOW | lib/onebox/engine/amazon_onebox.rb | 155 | # available and where to find it so just set it all to nil |
| LOW | lib/onebox/engine/amazon_onebox.rb | 198 | # available and where to find it so just set it all to nil |
| LOW | lib/second_factor/actions/discourse_connect_provider.rb | 15 | # 'prompt=none' was requested, so just return a failed authentication |
| LOW | …ate/20250714010001_backfill_themeable_site_settings.rb | 11 | # and theme site settings will just use the default value. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/assets/stylesheets/common/foundation/mixins.scss | 207 | // Example usage: |
| LOW | plugins/discourse-oauth2-basic/plugin.rb | 27 | # Example usage: |
| LOW | spec/support/theme_screenshot_marker.rb | 5 | # Usage: |
| LOW | lib/discourse.rb | 18 | # Usage: |
| LOW | lib/discourse_webauthn.rb | 69 | # Usage: |
| LOW | lib/plugin/instance.rb | 304 | # Example usage: |
| LOW | lib/plugin/instance.rb | 346 | # Example usage: |
| LOW | lib/plugin/instance.rb | 355 | # Example usage: |
| LOW | lib/plugin/instance.rb | 376 | # Example usage: |
| LOW | lib/plugin/instance.rb | 120 | # Example usage: |
| LOW | lib/plugin/instance.rb | 393 | # Example usage: |
| LOW | lib/plugin/instance.rb | 416 | # Example usage: |
| LOW | lib/emoji/regex_generator.rb | 11 | # Usage: |
| LOW | lib/scheduler/thread_pool.rb | 8 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …/lib/discourse_webauthn/authentication_service_spec.rb | 36 | # @params will contain authenticatorData and signature which you can use as is. |
| LOW | script/bulk_import/discourse_merger.rb | 458 | # make sure to get a backup with uploads then convert them to local. |
| LOW | script/import_scripts/mylittleforum.rb | 35 | # If you update the Docker container and perform another import afterwards, make sure to back up these files beforehand. |
| LOW | script/import_scripts/mybbru.rb | 9 | # If your forum has non-English usernames, don't forget to enable Unicode usernames in /admin/site_settings |
| LOW | script/import_scripts/mybbru.rb | 9 | # If your forum has non-English usernames, don't forget to enable Unicode usernames in /admin/site_settings |
| MEDIUM | lib/discourse.rb | 1058 | # you can use Discourse.warn when you want to report custom environment |
| MEDIUM | lib/plugin/instance.rb | 1181 | # We'll include the HTML inside the unsubscribe form, so you can add your fields using the |
| LOW | lib/plugin/instance.rb | 763 | # When using this, make sure to consider the effect on AnonymousCache |
| LOW | lib/email_controller_helper/base_email_unsubscriber.rb | 13 | # Don't forget to call super when extending this method. |
| LOW | lib/email_controller_helper/base_email_unsubscriber.rb | 31 | # Don't forget to call super when extending this method. |
| LOW | …43_ensure_anonymous_and_logged_in_users_auto_groups.rb | 15 | # new auto groups. Also make sure to rebake posts & update group mentions. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | frontend/discourse/app/controllers/topic.js | 1799 | print() { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …lib/ai_tool_scripts/presets/image_generation/custom.js | 4 | const apiKey = "YOUR_API_KEY"; |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | lib/post_action_creator.rb | 128 | # We need to check if the creator exists because it's possible `create_message_creator` returns nil |