module Motor::BuildSchema::AdjustDeviseModelSchema

Constants

HIDDEN_COLUMNS
READ_ONLY_COLUMNS

Public Instance Methods

add_password_column!(columns) click to toggle source
# File lib/motor/build_schema/adjust_devise_model_schema.rb, line 47
def add_password_column!(columns)
  columns << {
    name: 'password',
    display_name: I18n.t('motor.password'),
    column_type: 'string',
    access_type: 'write_only',
    default_value: nil,
    validators: [],
    virtual: true
  }
end
call(schema, devise_modules) click to toggle source
# File lib/motor/build_schema/adjust_devise_model_schema.rb, line 26
def call(schema, devise_modules)
  modify_column_access_types!(schema[:columns])
  add_password_column!(schema[:columns]) if devise_modules.include?(:database_authenticatable)

  schema
end
modify_column_access_types!(columns) click to toggle source
# File lib/motor/build_schema/adjust_devise_model_schema.rb, line 33
def modify_column_access_types!(columns)
  columns.each do |column|
    column[:access_type] =
      case column[:name]
      when *HIDDEN_COLUMNS
        ColumnAccessTypes::HIDDEN
      when *READ_ONLY_COLUMNS
        ColumnAccessTypes::READ_ONLY
      else
        column[:access_type]
      end
  end
end