discourse/discourse

View on GitHub

Showing 1,669 of 1,669 total issues

Class UsersController has 57 methods (exceeds 20 allowed). Consider refactoring.
Open

class UsersController < ApplicationController

  skip_before_action :authorize_mini_profiler, only: [:avatar]

  requires_login only: [
Severity: Major
Found in app/controllers/users_controller.rb - About 1 day to fix

    Class Guardian has 57 methods (exceeds 20 allowed). Consider refactoring.
    Open

    class Guardian
      include EnsureMagic
      include CategoryGuardian
      include PostGuardian
      include TopicGuardian
    Severity: Major
    Found in lib/guardian.rb - About 1 day to fix

      Method build has 204 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          def build
            return @wizard unless SiteSetting.wizard_enabled? && @wizard.user.try(:staff?)
      
            @wizard.append_step('locale') do |step|
              step.banner = "welcome.png"
      Severity: Major
      Found in lib/wizard/builder.rb - About 1 day to fix

        Method hijack has a Cognitive Complexity of 52 (exceeds 5 allowed). Consider refactoring.
        Open

          def hijack(&blk)
            controller_class = self.class
        
            if hijack = request.env['rack.hijack']
        
        
        Severity: Minor
        Found in lib/hijack.rb - About 1 day to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        File topic_view.rb has 501 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        require_dependency 'guardian'
        require_dependency 'topic_query'
        require_dependency 'filter_best_posts'
        require_dependency 'gaps'
        
        
        Severity: Major
        Found in lib/topic_view.rb - About 1 day to fix

          File post_action.rb has 500 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          require_dependency 'rate_limiter'
          require_dependency 'system_message'
          
          class PostAction < ActiveRecord::Base
            class AlreadyActed < StandardError; end
          Severity: Minor
          Found in app/models/post_action.rb - About 1 day to fix

            Method up has a Cognitive Complexity of 51 (exceeds 5 allowed). Consider refactoring.
            Open

              def up
                # Ensure we don't have duplicate polls
                DB.exec <<~SQL
                  WITH duplicates AS (
                    SELECT id, row_number() OVER (PARTITION BY post_id) r
            Severity: Minor
            Found in plugins/poll/db/post_migrate/20180820080623_migrate_polls_data.rb - About 7 hrs to fix

            Cognitive Complexity

            Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

            A method's cognitive complexity is based on a few simple rules:

            • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
            • Code is considered more complex for each "break in the linear flow of the code"
            • Code is considered more complex when "flow breaking structures are nested"

            Further reading

            Method post_process_oneboxes has a Cognitive Complexity of 51 (exceeds 5 allowed). Consider refactoring.
            Open

              def post_process_oneboxes
                Oneboxer.apply(@doc) do |url|
                  @has_oneboxes = true
                  Oneboxer.onebox(url,
                    invalidate_oneboxes: !!@opts[:invalidate_oneboxes],
            Severity: Minor
            Found in lib/cooked_post_processor.rb - About 7 hrs to fix

            Cognitive Complexity

            Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

            A method's cognitive complexity is based on a few simple rules:

            • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
            • Code is considered more complex for each "break in the linear flow of the code"
            • Code is considered more complex when "flow breaking structures are nested"

            Further reading

            Method resolve has a Cognitive Complexity of 51 (exceeds 5 allowed). Consider refactoring.
            Open

              def resolve
                if @uri && @uri.port == 80 && FinalDestination.is_https_domain?(@uri.hostname)
                  @uri.scheme = "https"
                  @uri = URI(@uri.to_s)
                end
            Severity: Minor
            Found in lib/final_destination.rb - About 7 hrs to fix

            Cognitive Complexity

            Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

            A method's cognitive complexity is based on a few simple rules:

            • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
            • Code is considered more complex for each "break in the linear flow of the code"
            • Code is considered more complex when "flow breaking structures are nested"

            Further reading

            File instance.rb has 494 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            require 'digest/sha1'
            require 'fileutils'
            require_dependency 'plugin/metadata'
            require_dependency 'auth'
            
            
            Severity: Minor
            Found in lib/plugin/instance.rb - About 7 hrs to fix

              Class Report has 55 methods (exceeds 20 allowed). Consider refactoring.
              Open

              class Report
                # Change this line each time report format change
                # and you want to ensure cache is reset
                SCHEMA_VERSION = 3
              
              
              Severity: Major
              Found in app/models/report.rb - About 7 hrs to fix

                Class StaffActionLogger has 55 methods (exceeds 20 allowed). Consider refactoring.
                Open

                class StaffActionLogger
                
                  def self.base_attrs
                    [:topic_id, :post_id, :context, :subject, :ip_address, :previous_value, :new_value]
                  end
                Severity: Major
                Found in app/services/staff_action_logger.rb - About 7 hrs to fix

                  File discourse.rb has 492 lines of code (exceeds 250 allowed). Consider refactoring.
                  Open

                  require 'cache'
                  require 'open3'
                  require_dependency 'route_format'
                  require_dependency 'plugin/instance'
                  require_dependency 'auth/default_current_user_provider'
                  Severity: Minor
                  Found in lib/discourse.rb - About 7 hrs to fix

                    Method execute has a Cognitive Complexity of 50 (exceeds 5 allowed). Consider refactoring.
                    Open

                        def execute(args)
                          return unless SiteSetting.download_remote_images_to_local?
                    
                          post_id = args[:post_id]
                          raise Discourse::InvalidParameters.new(:post_id) unless post_id.present?
                    Severity: Minor
                    Found in app/jobs/regular/pull_hotlinked_images.rb - About 7 hrs to fix

                    Cognitive Complexity

                    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                    A method's cognitive complexity is based on a few simple rules:

                    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                    • Code is considered more complex for each "break in the linear flow of the code"
                    • Code is considered more complex when "flow breaking structures are nested"

                    Further reading

                    File staff_action_logger.rb has 487 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    require_dependency 'staff_message_format'
                    
                    # Responsible for logging the actions of admins and moderators.
                    class StaffActionLogger
                    
                    
                    Severity: Minor
                    Found in app/services/staff_action_logger.rb - About 7 hrs to fix

                      Class Category has 54 methods (exceeds 20 allowed). Consider refactoring.
                      Open

                      class Category < ActiveRecord::Base
                        include Searchable
                        include Positionable
                        include HasCustomFields
                        include CategoryHashtag
                      Severity: Major
                      Found in app/models/category.rb - About 7 hrs to fix

                        Method sso_login has a Cognitive Complexity of 48 (exceeds 5 allowed). Consider refactoring.
                        Open

                          def sso_login
                            raise Discourse::NotFound.new unless SiteSetting.enable_sso
                        
                            params.require(:sso)
                            params.require(:sig)
                        Severity: Minor
                        Found in app/controllers/session_controller.rb - About 7 hrs to fix

                        Cognitive Complexity

                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                        A method's cognitive complexity is based on a few simple rules:

                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                        • Code is considered more complex for each "break in the linear flow of the code"
                        • Code is considered more complex when "flow breaking structures are nested"

                        Further reading

                        File category.rb has 474 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        require_dependency 'distributed_cache'
                        
                        class Category < ActiveRecord::Base
                          include Searchable
                          include Positionable
                        Severity: Minor
                        Found in app/models/category.rb - About 7 hrs to fix

                          Method create has a Cognitive Complexity of 47 (exceeds 5 allowed). Consider refactoring.
                          Open

                            def create
                              params.require(:email)
                              params.permit(:user_fields)
                          
                              unless SiteSetting.allow_new_registrations
                          Severity: Minor
                          Found in app/controllers/users_controller.rb - About 7 hrs to fix

                          Cognitive Complexity

                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                          A method's cognitive complexity is based on a few simple rules:

                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                          • Code is considered more complex for each "break in the linear flow of the code"
                          • Code is considered more complex when "flow breaking structures are nested"

                          Further reading

                          File users_controller.rb has 462 lines of code (exceeds 250 allowed). Consider refactoring.
                          Open

                          require_dependency 'user_destroyer'
                          require_dependency 'admin_user_index_query'
                          require_dependency 'admin_confirmation'
                          
                          class Admin::UsersController < Admin::AdminController
                          Severity: Minor
                          Found in app/controllers/admin/users_controller.rb - About 7 hrs to fix
                            Severity
                            Category
                            Status
                            Source
                            Language