3scale/porta

View on GitHub
app/models/settings.rb

Summary

Maintainability
A
2 hrs
Test Coverage

attr_accessible is recommended over attr_protected
Open

  attr_protected :account_id, :tenant_id, :product, :audit_ids, :sso_key
Severity: Minor
Found in app/models/settings.rb by brakeman

This warning comes up if a model does not limit what attributes can be set through mass assignment.

In particular, this check looks for attr_accessible inside model definitions. If it is not found, this warning will be issued.

Brakeman also warns on use of attr_protected - especially since it was found to be vulnerable to bypass. Warnings for mass assignment on models using attr_protected will be reported, but at a lower confidence level.

Note that disabling mass assignment globally will suppress these warnings.

Class Settings has 22 methods (exceeds 20 allowed). Consider refactoring.
Open

class Settings < ApplicationRecord
  include Symbolize
  belongs_to :account, inverse_of: :settings

  audited allow_mass_assignment: true
Severity: Minor
Found in app/models/settings.rb - About 2 hrs to fix

    Settings has at least 20 methods
    Open

    class Settings < ApplicationRecord
    Severity: Minor
    Found in app/models/settings.rb by reek

    Too Many Methods is a special case of LargeClass.

    Example

    Given this configuration

    TooManyMethods:
      max_methods: 3

    and this code:

    class TooManyMethods
      def one; end
      def two; end
      def three; end
      def four; end
    end

    Reek would emit the following warning:

    test.rb -- 1 warning:
      [1]:TooManyMethods has at least 4 methods (TooManyMethods)

    Settings has missing safe method 'cms_token!'
    Open

      def cms_token!
    Severity: Minor
    Found in app/models/settings.rb by reek

    A candidate method for the Missing Safe Method smell are methods whose names end with an exclamation mark.

    An exclamation mark in method names means (the explanation below is taken from here ):

    The ! in method names that end with ! means, “This method is dangerous”—or, more precisely, this method is the “dangerous” version of an otherwise equivalent method, with the same name minus the !. “Danger” is relative; the ! doesn’t mean anything at all unless the method name it’s in corresponds to a similar but bang-less method name. So, for example, gsub! is the dangerous version of gsub. exit! is the dangerous version of exit. flatten! is the dangerous version of flatten. And so forth.

    Such a method is called Missing Safe Method if and only if her non-bang version does not exist and this method is reported as a smell.

    Example

    Given

    class C
      def foo; end
      def foo!; end
      def bar!; end
    end

    Reek would report bar! as Missing Safe Method smell but not foo!.

    Reek reports this smell only in a class context, not in a module context in order to allow perfectly legit code like this:

    class Parent
      def foo; end
    end
    
    module Dangerous
      def foo!; end
    end
    
    class Son < Parent
      include Dangerous
    end
    
    class Daughter < Parent
    end

    In this example, Reek would not report the Missing Safe Method smell for the method foo of the Dangerous module.

    There are no issues that match your filters.

    Category
    Status